Migrasi dari Next.js ke Laravel: Panduan untuk Developer JavaScript

Ariska HidayatAriska Hidayat
3 min read

Developer yang sudah terbiasa dengan Next.js sering kali bertanya-tanya, "Bagaimana cara saya bermigrasi ke Laravel dengan mulus, terutama jika saya ingin membuat aplikasi yang lebih fleksibel seperti backend API untuk mobile app atau SPA?" Artikel ini akan membahas perbandingan konsep antara Next.js dan Laravel, serta memberikan panduan praktis untuk migrasi.


1. Mengapa Migrasi dari Next.js ke Laravel?

Beberapa alasan umum mengapa developer bermigrasi dari Next.js ke Laravel:

  • Butuh struktur backend yang kuat dan mature

  • Ingin membuat backend API yang bisa digunakan oleh mobile app

  • Laravel menawarkan banyak fitur built-in: autentikasi, validasi, ORM, dll

  • Lebih cocok untuk tim atau proyek yang ingin memisahkan frontend dan backend


2. Perbandingan Konsep: Next.js vs Laravel

KonsepNext.jsLaravel
RoutingFolder-basedFile routes/web.php dan api.php
APIFile di pages/apiController dengan route API
Server-side renderinggetServerSidePropsBlade / JSON response
State managementReact state / Tanstack / ReduxVue (jika pakai Inertia) / JSON API
Database ORMPrisma / CustomEloquent ORM
Middlewaremiddleware.tsMiddleware Laravel
AuthNextAuth, CustomLaravel Sanctum, Breeze, Jetstream
ValidationZod, YupBuilt-in request validation

3. Setup Laravel sebagai Backend API

Jika kamu ingin Laravel hanya sebagai backend:

  1. Buat project Laravel
composer create-project laravel/laravel backend-api
  1. Buat route di routes/api.php
Route::get('/users', [UserController::class, 'index']);
  1. Buat controller:
php artisan make:controller Api/UserController
  1. Isi controllernya:
public function index() {
    return response()->json(User::all());
}
  1. Test via Postman atau frontend app

4. Autentikasi API dengan Laravel Sanctum

Laravel Sanctum sangat cocok untuk API:

Instalasi

composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate

Setup Middleware

Tambahkan ke grup api di app/Http/Kernel.php:

\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class

Endpoint Login

public function login(Request $request) {
    $credentials = $request->validate([
        'email' => 'required|email',
        'password' => 'required',
    ]);

    if (!auth()->attempt($credentials)) {
        return response()->json(['message' => 'Invalid credentials'], 401);
    }

    $token = auth()->user()->createToken('api-token')->plainTextToken;

    return response()->json(['token' => $token]);
}

5. Contoh: Migrasi Halaman Next.js ke Laravel API + Frontend

Next.js

export async function getServerSideProps() {
  const res = await fetch('http://localhost:8000/api/users');
  const users = await res.json();
  return { props: { users } };
}

Laravel + Vue/React (frontend bebas)

// routes/api.php
Route::get('/users', fn() => User::all());

Frontend tinggal fetch ke API http://localhost:8000/api/users


6. Tips Migrasi

  • Pisahkan logic frontend dan backend dengan jelas

  • Buat dokumentasi API sejak awal

  • Gunakan Laravel Resource untuk response JSON yang rapi

  • Gunakan Postman untuk testing endpoint

  • Bisa kombinasikan Laravel dengan Vue (tanpa Inertia) atau React


Kesimpulan

Migrasi dari Next.js ke Laravel bukan berarti meninggalkan semua yang telah dipelajari, tapi memperluas kemampuan. Laravel memberi kamu kekuatan backend yang solid, sementara kamu tetap bisa pakai frontend favoritmu seperti Next.js atau Flutter.

Jika kamu sudah nyaman dengan JavaScript, Laravel akan terasa familiar karena banyak konsep serupa — hanya saja ditulis dalam PHP. Selamat mencoba!

0
Subscribe to my newsletter

Read articles from Ariska Hidayat directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ariska Hidayat
Ariska Hidayat

I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.