Panduan Lengkap Setup Next.js 14 dengan App Router, Tailwind CSS, dan Deployment ke Vercel (Mei 2026)


Next.js 14 menjadi standar de‑facto untuk aplikasi React modern. Tutorial ini mengajarkan cara meng‑instal, meng‑konfigurasi, menulis kode contoh, serta menerapkan best practice keamanan dan performa, lengkap dengan deployment otomatis ke Vercel.

1. Prasyarat dan Persiapan Lingkungan

Pastikan Anda memiliki:

  • Node.js >= 20.9 LTS (download di sini)
  • npm atau yarn (npm sudah menyertakan dengan Node)
  • Akun Vercel (gratis dapat dibuat di sini)
  • Git terinstal untuk version control

2. Inisialisasi Proyek Next.js 14

npx create-next-app@latest my-next14-app --ts --experimental-app
cd my-next14-app

Opsi --experimental-app mengaktifkan App Router (folder app/) yang menjadi default pada Next.js 14. Tambahkan flag --ts untuk TypeScript—ini disarankan dalam Software Engineering modern.

3. Instalasi Tailwind CSS 3.4

# Install dependencies
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
# Inisialisasi config file
npx tailwindcss init -p

File tailwind.config.cjs akan dibuat. Sesuaikan content agar Tailwind memindai semua komponen React:

module.exports = {
  content: [
    "./app/**/*.{js,ts,jsx,tsx}",
    "./pages/**/*.{js,ts,jsx,tsx}",
    "./components/**/*.{js,ts,jsx,tsx}"
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};

Selanjutnya, buat ./styles/globals.css dan tambahkan direktif Tailwind:

@tailwind base;
@tailwind components;
@tailwind utilities;

Import file CSS ini di ./app/layout.tsx:

import "./styles/globals.css";

4. Struktur Dasar App Router

Folder app/ menggantikan pages/. Berikut contoh struktur minimal:

app/
├─ layout.tsx          # Root layout
├─ page.tsx            # Home page
├─ about/
│   └─ page.tsx       # /about route
├─ dashboard/
│   ├─ layout.tsx     # Layout khusus dashboard
│   └─ page.tsx       # /dashboard
└─ api/
    └─ hello/route.ts # API route (Next 14 style)

4.1. root layout (app/layout.tsx)

import "./styles/globals.css";
import type { ReactNode } from "react";

export const metadata = {
  title: "Next.js 14 + Tailwind Demo",
  description: "Tutorial step‑by‑step yang up to date pada Mei 2026",
};

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

4.2. Home page (app/page.tsx)

export default function Home() {
  return (
    

Selamat Datang di Next.js 14

Aplikasi ini menunjukkan integrasi App Router, Tailwind CSS, dan best practice untuk performance & security.

); }

5. Menambahkan API Route dengan Edge Runtime

Next.js 14 memungkinkan API route berbasis Edge Functions yang lebih cepat dan scalable.

// app/api/hello/route.ts
import { NextResponse } from "next/server";

export const runtime = "edge"; // gunakan Edge Runtime

export async function GET() {
  return NextResponse.json({ message: "Hello from Edge!" });
}

Uji dengan curl http://localhost:3000/api/hello setelah npm run dev.

6. Optimasi Performance – Image & Font

Next.js 14 menyertakan next/image yang otomatis meng‑optimasi gambar. Contoh penggunaan:

import Image from "next/image";

export default function Hero() {
  return (
    
Hero Banner
); }

Letakkan hero.jpg di public/. Aktifkan Google Fonts lewat next/font/google untuk meng‑hindari FOIT:

import { Inter } from "next/font/google";
const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });

export default function RootLayout({ children }) {
  return (
    
      {/* … */}
    
  );
}

7. Keamanan – CSP & Sanitasi Input

Tambahkan Header Content‑Security‑Policy lewat next.config.js:

module.exports = {
  async headers() {
    return [
      {
        source: "/(.*)",
        headers: [
          {
            key: "Content‑Security‑Policy",
            value: "default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self';",
          },
        ],
      },
    ];
  },
};

Untuk sanitasi data yang masuk, gunakan library zod (versi terbaru 3.23). Contoh pada API route:

import { z } from "zod";
import { NextResponse } from "next/server";

const schema = z.object({
  email: z.string().email(),
  name: z.string().min(2).max(50),
});

export async function POST(req: Request) {
  const data = await req.json();
  const result = schema.safeParse(data);
  if (!result.success) {
    return NextResponse.json({ error: result.error.format() }, { status: 400 });
  }
  // proses selanjutnya …
  return NextResponse.json({ ok: true });
}

8. CI/CD dengan GitHub Actions ke Vercel

File .github/workflows/deploy.yml berikut otomatis membangun dan deploy setiap push ke branch main:

name: Deploy to Vercel
on:
  push:
    branches: ["main"]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node
        uses: actions/setup-node@v4
        with:
          node-version: "20"
      - run: npm ci
      - run: npm run build
      - name: Deploy
        uses: amondnet/vercel-action@v20
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-args: "--prod"
          working-directory: .
          github-token: ${{ secrets.GITHUB_TOKEN }}

Anda harus menambahkan VERCEL_TOKEN (API token dari dashboard Vercel) ke Repository Secrets.

9. Best Practice Tambahan

  • TypeScript Strict Mode: aktifkan "strict": true di tsconfig.json untuk meminimalkan bug.
  • Incremental Static Regeneration (ISR): gunakan revalidate pada fetch di server component untuk konten yang berubah tiap 60 detik.
  • Linting & Formatting: pasang eslint dengan plugin eslint-plugin-next dan prettier untuk konsistensi kode.
  • Testing: integrasikan jest dan @testing-library/react untuk unit dan integration test.

10. Verifikasi Produksi

Setelah deployment selesai, lakukan audit Lighthouse (Chrome DevTools) untuk memastikan skor >90 pada Performance, Accessibility, Best Practices, dan SEO. Perbaiki warning yang muncul, misalnya lazy‑load gambar atau menambahkan rel="preload" untuk font penting.

11. Penutup

Dengan langkah‑langkah di atas, Anda memiliki aplikasi Next.js 14 yang modern, cepat, aman, dan siap skala. Kombinasi App Router, Tailwind CSS, dan Vercel memberikan workflow developer yang efisien—ideal untuk project startup atau produk enterprise.


Next.js 14 bersama App Router dan Tailwind CSS menawarkan fondasi yang kuat untuk aplikasi web modern. Ikuti tutorial ini untuk membangun, mengamankan, mengoptimalkan, dan mendepoy secara otomatis ke Vercel. Dengan menerapkan best practice seperti TypeScript strict, CSP, dan CI/CD, proyek Anda tidak hanya cepat tetapi juga tahan lama dalam konteks Software Engineering profesional.
Tutorial step‑by‑step cara setup Next.js 14 dengan App Router, Tailwind CSS, keamanan CSP, dan deployment otomatis ke Vercel. Cocok untuk developer Programming, Software Engineering, dan Web Development pada Mei 2026.

Programming,Software Engineering,Web Development,Next.js,Tailwind CSS,Vercel,CI/CD

#Programming #SoftwareEngineering #WebDev #Tech #Coding

Posting Komentar

0 Komentar