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


Next.js 14 telah menjadi standar de‑facto untuk aplikasi React modern. Tutorial ini memberikan langkah‑langkah detail mulai dari instalasi, konfigurasi Tailwind CSS, hingga deployment otomatis ke Vercel, lengkap dengan best practice untuk keamanan dan performa.

1. Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Node.js v20 atau lebih baru (download)
  • npm v10+ atau Yarn v4 (opsional)
  • Akun GitHub (untuk repositori) dan Vercel (untuk deployment)
  • Editor kode modern, misalnya VS Code dengan ekstensi ESLint dan Prettier

2. Instalasi Project Next.js 14

# Buat folder baru dan inisialisasi proyek
mkdir next14‑starter && cd next14‑starter

# Inisialisasi dengan npm (bisa pakai yarn create next-app@latest)
npm create next-app@latest . --use-npm --example "with‑typescript" --experimental-app-dir

# Install dependensi tambahan
npm install

Perintah di atas menghasilkan struktur standar dengan app/ directory (App Router) dan dukungan TypeScript.

3. Menambahkan Tailwind CSS 4

Tailwind CSS versi 4 membawa JIT baru dan dukungan dark mode yang lebih fleksibel.

# Install Tailwind dan peer dependencies
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest

# Inisialisasi konfigurasi
npx tailwindcss init -p

Edit tailwind.config.cjs:

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./app/**/*.{js,ts,jsx,tsx}",
    "./pages/**/*.{js,ts,jsx,tsx}",
    "./components/**/*.{js,ts,jsx,tsx}",
  ],
  darkMode: "class", // atau "media"
  theme: {
    extend: {
      colors: {
        primary: "#2563EB",
      },
    },
  },
  plugins: [],
};

Tambahkan Tailwind directives ke app/globals.css:

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

4. Konfigurasi ESLint & Prettier (Best Practice)

# Install paket linting
npm install -D eslint eslint-config-next prettier eslint-plugin-prettier eslint-config-prettier

# Buat file .eslintrc.json
cat > .eslintrc.json <<'EOF'
{
  "extends": ["next/core-web-vitals", "prettier"],
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error",
    "react/react-in-jsx-scope": "off"
  }
}
EOF

# Buat file .prettierrc
cat > .prettierrc <<'EOF'
{
  "singleQuote": true,
  "trailingComma": "all",
  "printWidth": 100
}
EOF

Integrasikan dengan VS Code lewat settings.json untuk auto‑format saat save.

5. Membuat Halaman Utama dengan App Router

Buat file app/page.tsx sebagai entry point.

import Image from "next/image";

export default function HomePage() {
  return (
    

Selamat Datang di Next.js 14

Ini contoh proyek yang menggunakan App Router, TypeScript, dan Tailwind CSS.

Next.js Logo
); }

Perhatikan penggunaan class utility Tailwind untuk dark mode dan responsif.

6. Menambahkan Middleware untuk Security Headers

Next.js 14 mendukung middleware berbasis Edge Runtime.

// app/middleware.ts
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

export function middleware(request: NextRequest) {
  const response = NextResponse.next();
  // HTTP Security Headers
  response.headers.set("X-Content-Type-Options", "nosniff");
  response.headers.set("X-Frame-Options", "DENY");
  response.headers.set("Referrer-Policy", "strict-origin-when-cross-origin");
  response.headers.set("Permissions-Policy", "interest-cohort=()");
  return response;
}

export const config = {
  matcher: "/((?!api|_next/static|_next/image|favicon.ico).*)",
};

Middleware ini otomatis dijalankan di setiap request, memberikan lapisan keamanan dasar.

7. Optimasi Performansi dengan Image Component & Incremental Static Regeneration (ISR)

Contoh menambahkan halaman produk statis yang di‑re‑generate tiap 10 menit.

// app/products/[id]/page.tsx
import Image from "next/image";
import { notFound } from "next/navigation";

export const revalidate = 600; // 10 menit

async function getProduct(id: string) {
  const res = await fetch(`https://fakestoreapi.com/products/${id}`);
  if (!res.ok) return null;
  return res.json();
}

export default async function ProductPage({ params }: { params: { id: string } }) {
  const product = await getProduct(params.id);
  if (!product) notFound();

  return (
    

{product.title}

{product.title}

{product.description}

); }

ISR memastikan halaman tetap fresh tanpa harus full rebuild.

8. Menyiapkan Git & GitHub Repository

# Inisialisasi repo lokal
git init
git add .
git commit -m "Initial commit – Next.js 14 with Tailwind"

# Buat repo di GitHub (via CLI atau UI)
gh repo create next14-starter --public --source=.

# Push ke remote
git push -u origin main

9. Deploy ke Vercel (Zero‑Config)

Vercel secara otomatis mengenali proyek Next.js.

  1. Login ke vercel.com dengan akun GitHub.
  2. Klik New Project, pilih repository next14-starter.
  3. Biarkan semua setting default (Node.js 20, Build Command npm run build, Output Directory .next).
  4. Tekan Deploy. Vercel akan menjalankan npm install, npm run build, dan menyediakan URL preview.

Setelah deploy berhasil, aktifkan Production Branch dan tambahkan environment variable jika diperlukan (mis. NEXT_PUBLIC_API_URL).

10. Monitoring & Logging

Gunakan Vercel Analytics untuk Core Web Vitals dan next-logger untuk logging server‑side.

# Install logger
npm install next-logger

// app/api/hello/route.ts
import { logger } from "next-logger";

export async function GET() {
  logger.info("Hello endpoint hit");
  return new Response(JSON.stringify({ message: "Hello" }), { status: 200 });
}

Log dapat dilihat di dashboard Vercel > Functions.

11. Best Practice Tambahan

  • Type‑Safety: Manfaatkan TypeScript generics untuk API data.
  • Cache Headers: Tambahkan Cache-Control di middleware untuk asset statis.
  • Accessibility: Selalu gunakan semantic HTML (mis. <main>, <section>) dan ARIA pada komponen custom.
  • CI/CD: Tambahkan GitHub Actions yang menjalankan npm run lint && npm run test sebelum merge.

12. Tambahan: CI dengan GitHub Actions

# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
  lint-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm run lint
      - run: npm test -- --watchAll=false

Pipeline ini memastikan kode selalu dalam kondisi bersih sebelum masuk ke produksi.

13. Kesimpulan

Dengan mengikuti langkah‑langkah di atas, Anda memiliki aplikasi Next.js 14 yang modern, responsif, aman, dan siap di‑scale melalui Vercel. Kombinasi App Router, Tailwind CSS 4, dan praktik CI/CD memberi fondasi kuat untuk proyek Web Development apa pun di tahun 2026.


Next.js 14 terus mengukir posisi sebagai framework React terdepan untuk aplikasi web full‑stack. Tutorial ini tidak hanya menunjukkan cara instalasi, tetapi juga menekankan praktik keamanan, performa, dan otomatisasi yang esensial dalam Software Engineering modern. Terapkan langkah‑langkah ini pada proyek Anda, tambahkan fitur khusus, dan manfaatkan ekosistem Vercel untuk iterasi cepat serta deployment tanpa friction.
Panduan lengkap setup Next.js 14 dengan App Router, Tailwind CSS, middleware security, ISR, CI/CD, dan deployment otomatis ke Vercel. Cocok untuk developer Programming, Software Engineering, dan Web Development tahun 2026.

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

#Programming #SoftwareEngineering #WebDev #Tech #Coding

Posting Komentar

0 Komentar