Panduan Lengkap Setup Next.js 14 dengan App Router, Turbopack, dan Deploy ke Vercel (2026)


Next.js 14 menjadi standar de‑facto untuk aplikasi React modern. Tutorial ini mengajarkan instalasi, konfigurasi, contoh kode, serta best practice agar proyek Anda siap produksi dalam hitungan menit.

1. Prasyarat

Pastikan Anda memiliki:

  • Node.js v20.12+ (unduh di nodejs.org)
  • Git
  • Akun Vercel (opsional untuk deploy langsung)
  • Editor kode, misalnya VS Code dengan ekstensi ESLint dan Prettier

2. Instalasi Next.js 14

Buka terminal, buat folder proyek, lalu jalankan perintah berikut:

mkdir my-next14-app && cd my-next14-app
npx create-next-app@latest . --ts --app-dir --eslint --src-dir

Parameter yang dipakai:

  • --ts: mengaktifkan TypeScript
  • --app-dir: men‑enable App Router (folder app/)
  • --src-dir: struktur src/ untuk pemisahan jelas
  • --eslint: konfigurasi linting standar

Setelah selesai, instalasi Turbopack (bundler default di Next.js 14) sudah otomatis ter‑aktifkan.

3. Struktur Proyek Baru

my-next14-app/
├─ src/
│  ├─ app/                # App Router
│  │  ├─ layout.tsx        # Root layout
│  │  ├─ page.tsx          # Halaman utama
│  │  └─ dashboard/
│  │     └─ page.tsx
│  ├─ components/         # Komponen UI
│  └─ lib/                # Helper / API client
├─ public/                # Asset static
├─ next.config.mjs        # Konfigurasi Next.js
├─ tsconfig.json
└─ package.json

4. Konfigurasi Dasar di next.config.mjs

import { defineConfig } from 'next';

export default defineConfig({
  // Aktifkan React Server Components otomatis
  experimental: {
    reactRoot: true,
    serverActions: true,
  },
  // Optimasi gambar built‑in
  images: {
    remotePatterns: [{ protocol: 'https', hostname: '**' }],
  },
  // Pengaturan linting TypeScript
  typescript: { ignoreBuildErrors: false },
  // Turbopack custom caching (opsional)
  cache: {
    maxAge: 31536000,
  },
});

Konfigurasi ini mengaktifkan fitur eksperimental React 18+ yang sudah stabil di Next.js 14, serta menyiapkan kebijakan caching untuk asset statis.

5. Membuat Layout Global

File src/app/layout.tsx menjadi kerangka utama aplikasi.

import './globals.css';
import type { Metadata } from 'next';

export const metadata: Metadata = {
  title: 'My Next.js 14 App',
  description: 'Demo Next.js 14 dengan App Router & Turbopack',
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    
      
      
        {children}
      
    
  );
}

Gunakan Tailwind CSS (opsional) dengan menambahkan tailwindcss melalui npm i -D tailwindcss postcss autoprefixer dan jalankan npx tailwindcss init -p. Sesuaikan tailwind.config.ts agar ./src/**/*.{js,ts,jsx,tsx} ter‑scan.

6. Membuat Halaman Dashboard dengan Server Component

// src/app/dashboard/page.tsx
import Card from '@/components/Card';
import { getStats } from '@/lib/api';

export const revalidate = 60; // ISR tiap 60 detik

export default async function DashboardPage() {
  const stats = await getStats(); // fetch di server side
  return (
    
{stats.map((s) => ( ))}
); }

Penjelasan:

  • Fungsi async menandakan ini adalah Server Component, sehingga data di‑fetch sebelum HTML dikirim ke klien.
  • Properti revalidate mengaktifkan Incremental Static Regeneration (ISR) untuk memperbarui cache tiap menit.

7. Membuat Helper API di src/lib/api.ts

import type { Stat } from '@/types';

export async function getStats(): Promise<Stat[]> {
  const res = await fetch('https://api.example.com/v1/stats', {
    next: { revalidate: 60 }, // ISR cache control
    headers: { 'Accept': 'application/json' },
  });
  if (!res.ok) throw new Error('Failed to fetch stats');
  return res.json();
}

Dengan opsi next: { revalidate }, Next.js meng‑cache respons di edge secara otomatis.

8. Menambahkan Linting & Formatting CI

Instal ESLint + Prettier (jika belum ada):

npm i -D eslint prettier eslint-config-prettier eslint-plugin-react eslint-plugin-react-hooks

Tambahkan script di package.json:

"scripts": {
  "dev": "next dev",
  "build": "next build",
  "start": "next start",
  "lint": "eslint . --ext .js,.ts,.tsx",
  "format": "prettier --write ."
}

Untuk CI, buat file .github/workflows/ci.yml:

name: CI
on: [push, pull_request]
jobs:
  lint-build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm run lint
      - run: npm run build

9. Optimasi Performa dengan Image Component dan Font Optimization

Gunakan next/image untuk gambar responsif:

import Image from 'next/image';

Hero image

Untuk font, tambahkan di next.config.mjs:

experimental: { optimizeFonts: true },

10. Deploy ke Vercel

  1. Push repositori ke GitHub.
  2. Buka vercel.com, klik New Project dan pilih repository.
  3. Vercel otomatis mendeteksi next.config.mjs dan meng‑install dependensi.
  4. Set environment variable NEXT_PUBLIC_API_URL jika diperlukan.
  5. Deploy selesai – URL publik tersedia dalam hitungan menit.

Jika ingin men‑enable preview branches, aktifkan Git Integration** pada dashboard Vercel.

11. Best Practice untuk Produksi

  • Static Generation (SSG) untuk konten yang tidak berubah cepat; gunakan export const dynamic = 'force-static'; bila perlu.
  • Server‑Side Rendering (SSR) hanya untuk data yang harus fresh per‑request.
  • Gunakan next/font untuk self‑hosting font, hindari CDN eksternal yang menambah latency.
  • Selalu cek bundle size dengan next build --profile dan optimalkan dengan import() (code‑splitting).
  • Integrasikan Sentry atau LogRocket untuk monitoring runtime error.

12. Debugging di Development Mode

Next.js 14 menambahkan Fast Refresh yang memuat ulang modul tanpa kehilangan state. Untuk debugging server side, jalankan:

npm run dev
# kemudian buka Chrome DevTools → Sources → Node.js

Gunakan console.log normal atau debugger; di dalam Server Component; Next akan menampilkan output di terminal.

13. Ringkasan Langkah

  1. Install Node.js v20+, buat proyek dengan create-next-app + --app-dir.
  2. Konfigurasi next.config.mjs (experimental, images, cache).
  3. Buat layout global & halaman menggunakan Server Component.
  4. Implementasikan data fetching dengan fetch + ISR.
  5. Tambahkan linting, format, dan CI GitHub Actions.
  6. Optimasi gambar, font, dan bundle size.
  7. Deploy ke Vercel, atur variabel lingkungan.
  8. Ikuti best practice security & performance.

Next.js 14 menawarkan developer React sebuah toolbox lengkap—App Router, Turbopack, built‑in image & font optimization, serta integrasi CI/CD yang mulus. Dengan mengikuti langkah‑langkah di atas, Anda dapat membangun aplikasi web yang cepat, scalable, dan siap produksi hanya dalam satu hari. Selalu perbarui dependensi ke versi terbaru, monitor performa di Vercel, dan terapkan best practice security untuk memastikan proyek Anda tetap relevan di tahun 2026.
Panduan step‑by‑step setup Next.js 14 dengan App Router, Turbopack, konfigurasi linting, CI, dan deployment ke Vercel. Tutorial lengkap untuk developer Programming, Software Engineering, dan Web Development tahun 2026.

Programming,Software Engineering,Web Development,Next.js 14,App Router,Turbopack,Vercel

#Programming #SoftwareEngineering #WebDev #Tech #Coding

Posting Komentar

0 Komentar