Panduan Lengkap Setup Next.js 14 dengan App Router dan Server Components (2026)


Tutorial step‑by‑step untuk menginstal, mengkonfigurasi, dan mengoptimalkan proyek Next.js 14 terbaru, lengkap dengan contoh kode, best practice, dan tips keamanan serta performa.

1. Prasyarat dan Persiapan Lingkungan

Pastikan Anda memiliki Node.js versi 20.12 atau lebih tinggi dan npm atau pnpm terbaru. Kami menggunakan pnpm karena lebih cepat dan hemat ruang.

node -v
# v20.12.0
pnpm -v
# 9.5.0

2. Membuat Proyek Next.js 14 Baru

  1. Jalankan perintah berikut untuk membuat aplikasi dengan template app (App Router):
pnpm create next-app@latest my-next14-app --ts --app-dir

Opsi --ts menyiapkan TypeScript, yang kini menjadi standar di komunitas Next.js.

3. Struktur Direktori Dasar

Setelah proses selesai, periksa struktur folder utama:

my-next14-app/
├─ app/               # App Router (pages digantikan) 
│   ├─ layout.tsx    # Root layout
│   ├─ page.tsx      # Halaman beranda
│   └─ api/          # Route handler API
├─ public/            # Aset statis
├─ styles/            # CSS/SCSS
├─ next.config.mjs    # Konfigurasi Next.js
└─ tsconfig.json      # TypeScript config

4. Instalasi Dependency Tambahan

Untuk contoh real‑world, tambahkan beberapa library populer:

pnpm add @tanstack/react-query@5 @headlessui/react@2 tailwindcss@3 postcss@8 autoprefixer@10

Instalasi tailwindcss memudahkan styling utility‑first yang kini terintegrasi langsung dengan Next.js 14.

5. Mengkonfigurasi TailwindCSS

  1. Inisialisasi Tailwind:
pnpm tailwindcss init -p

File tailwind.config.js akan dibuat. Sesuaikan content agar mencakup folder app:

module.exports = {
  content: ["./app/**/*.{js,ts,jsx,tsx}", "./components/**/*.{js,ts,jsx,tsx}"],
  theme: { extend: {} },
  plugins: [],
};
  1. Tambahkan Tailwind ke app/layout.tsx:
import "../styles/globals.css";

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

6. Membuat Server Component Pertama

Server Components dijalankan sepenuhnya di server, mengurangi bundle JavaScript. Buat file app/components/QuoteServer.tsx:

import fetch from "node-fetch";

type Quote = { text: string; author: string };

export default async function QuoteServer() {
  const res = await fetch("https://api.quotable.io/random");
  const data: Quote = await res.json();
  return (
    
“{data.text}”
— {data.author}
); }

Catatan: Karena ini Server Component, tidak perlu use client directive.

7. Menggabungkan dengan Client Component

Buat app/components/RefreshButton.tsx sebagai Client Component untuk meng‑refresh kutipan:

"use client";
import { useState, useTransition } from "react";

export default function RefreshButton() {
  const [isPending, startTransition] = useTransition();
  const [key, setKey] = useState(0);

  const refresh = () => startTransition(() => setKey(prev => prev + 1));

  return (
    <>
      
      {/* Force remount QuoteServer dengan key baru */}
      
    
  );
}

8. Menyusun Halaman Utama

Update app/page.tsx untuk menampilkan komponen di atas:

import RefreshButton from "./components/RefreshButton";

export default function Home() {
  return (
    

Next.js 14 Demo

); }

9. Konfigurasi API Routes dengan Edge Runtime

Next.js 14 mendukung Edge Functions secara native. Buat file app/api/hello/route.ts:

export const runtime = "edge"; // menargetkan Vercel Edge atau Cloudflare Workers

export async function GET() {
  return new Response(JSON.stringify({ message: "Hello from Edge!" }), {
    headers: { "Content-Type": "application/json" },
  });
}

10. Optimasi Build dan Caching

Tambahkan flag experimental di next.config.mjs untuk memanfaatkan Next.js Middleware Caching dan TurboPack (bundler default sejak v13):

export default defineConfig({
  reactStrictMode: true,
  experimental: {
    appDir: true,
    serverComponentsExternalPackages: ["node-fetch"],
    turbo: { loader: true },
  },
  images: { remotePatterns: [{ protocol: "https", hostname: "**" }] },
});

11. Menyiapkan CI/CD dengan GitHub Actions

File .github/workflows/deploy.yml:

name: Deploy to Vercel
on:
  push:
    branches: [main]
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: pnpm
      - run: pnpm install --frozen-lockfile
      - run: pnpm run build
      - name: Deploy
        uses: amondnet/vercel-action@v20
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
          vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
          working-directory: .
          prod: true

12. Best Practice Keamanan & Performance

  • Env vars: Simpan API key di .env.local dan gunakan process.env.MY_KEY hanya di Server Components.
  • Header Security: Tambahkan helmet pada middleware.ts untuk set CSP, X‑Frame‑Options, dll.
  • Image Optimization: Manfaatkan next/image dengan loader: "default" untuk format WebP otomatis.
  • Lazy Loading: Gunakan loading="lazy" pada gambar dan dynamic() untuk code‑splitting komponen berat.
  • Cache Control: Atur Cache‑Control header pada API Edge Routes untuk respon statis hingga 1 hour.

13. Deploy ke Vercel (atau alternatif Cloudflare Pages)

  1. Push repo ke GitHub.
  2. Buka dashboard Vercel, pilih New Project → import repo.
  3. Pastikan Framework Preset terdeteksi sebagai Next.js.
  4. Set environment variables jika ada, lalu deploy.

Deploy selesai dalam beberapa menit, dan aplikasi akan tersedia di URL https://my-next14-app.vercel.app.

14. Debugging & Monitoring

Gunakan next dev untuk hot‑reload lokal. Untuk produksi, integrasikan Vercel Analytics atau LogRocket untuk tracing performance.

# Jalankan mode development
pnpm dev

15. Penutup

Dengan mengikuti langkah‑langkah di atas, Anda memiliki proyek Next.js 14 yang modern, menggunakan App Router, Server Components, TailwindCSS, dan siap di‑deploy dengan CI/CD otomatis. Terapkan best practice keamanan dan performa untuk memastikan aplikasi tetap cepat, aman, dan mudah dipelihara.


Next.js 14 memperkenalkan paradigma baru lewat App Router dan Server Components yang secara signifikan mengurangi ukuran bundle dan meningkatkan SEO. Menggabungkan TailwindCSS, React Query, serta CI/CD berbasis GitHub Actions memberikan workflow yang efisien dan siap produksi. Ikuti tutorial ini, sesuaikan dengan kebutuhan bisnis Anda, dan manfaatkan ekosistem Vercel atau edge platform lain untuk performa optimal.
Tutorial lengkap setup Next.js 14 dengan App Router, Server Components, TailwindCSS, dan CI/CD. Langkah demi langkah, contoh kode, best practice keamanan dan performa untuk Web Development modern.

Programming,Software Engineering,Web Development,Next.js,App Router,Server Components

#Programming #SoftwareEngineering #WebDev #Tech #Coding

Posting Komentar

0 Komentar