Tutorial step‑by‑step ini membahas cara memulai proyek Next.js 14 terbaru, mengaktifkan App Router, memanfaatkan React Server Components, serta mengintegrasikan Tailwind CSS untuk UI modern. Termasuk konfigurasi, contoh kode, best practice, dan tips debugging.
1. Prasyarat dan Persiapan Lingkungan
Sebelum memulai, pastikan Anda memiliki:
- Node.js ≥ 20.10 (LTS) – dapat diunduh di nodejs.org
- npm atau yarn (npm 10.x direkomendasikan)
- Git untuk version control
- Editor kode – VS Code dengan ekstensi ESLint, Tailwind CSS IntelliSense, dan Next.js sudah terpasang
Verifikasi instalasi:
node -v
npm -v
2. Membuat Proyek Next.js 14
2.1 Inisialisasi dengan create‑next‑app
Jalankan perintah berikut di terminal:
npx create-next-app@latest my-next14-app --typescript --eslint
Opsi --typescript menyiapkan proyek TypeScript secara default, yang kini menjadi standar di komunitas. Pilih yes untuk ESLint dan src directory ketika diminta.
2.2 Memilih App Router
Next.js 14 mengaktifkan App Router secara default ketika struktur src/app ada. Jika Anda menggunakan struktur pages, pindahkan atau buat folder src/app dan hapus pages untuk menghindari konflik.
3. Mengonfigurasi Tailwind CSS
3.1 Instalasi paket
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
3.2 Inisialisasi konfigurasi
npx tailwindcss init -p
File tailwind.config.cjs akan dibuat. Edit seperti berikut untuk mendukung App Router dan TypeScript:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,ts,jsx,tsx}",
"./app/**/*.{js,ts,jsx,tsx}"
],
theme: {
extend: {},
},
plugins: [],
};
3.3 Tambahkan direktif Tailwind ke CSS global
Buat file src/app/globals.css (atau gunakan yang sudah ada) dan isi:
@tailwind base;
@tailwind components;
@tailwind utilities;
3.4 Import globals.css di layout utama
Di src/app/layout.tsx tambahkan import:
import "./globals.css";
4. Membuat Struktur App Router dengan React Server Components (RSC)
4.1 Layout dasar
Buat src/app/layout.tsx sebagai server component (default). Contoh:
export const metadata = {
title: "Next.js 14 Demo",
description: "Next.js 14 dengan App Router, RSC, dan Tailwind",
};
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
{children}
);
}
4.2 Halaman beranda (Server Component)
// src/app/page.tsx (Server Component)
import Link from "next/link";
import Card from "@/components/Card";
export default async function HomePage() {
// Fetch data secara server‑side
const res = await fetch("https://api.github.com/repos/vercel/next.js", { cache: "no-store" });
const repo = await res.json();
return (
Selamat datang di Next.js 14
Tentang Kami
);
}
4.3 Komponen UI (Client Component)
Komponen yang membutuhkan state atau efek harus menjadi client component.
// src/components/Card.tsx
"use client";
import { useState } from "react";
interface CardProps {
title: string;
description: string;
stars: number;
}
export default function Card({ title, description, stars }: CardProps) {
const [liked, setLiked] = useState(false);
return (
{title}
{description}
⭐ {stars}
);
}
5. Konfigurasi TypeScript Strict Mode & ESLint
Next.js 14 sudah menyertakan tsconfig.json dengan strict:true. Pastikan opsi berikut aktif:
{
"compilerOptions": {
"strict": true,
"noImplicitAny": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"esModuleInterop": true,
"jsx": "preserve"
}
}
Untuk ESLint, tambahkan plugin eslint-plugin-next dan eslint-plugin-react bila belum ada:
npm install -D eslint-plugin-next eslint-plugin-react
Berikut contoh .eslintrc.json minimal:
{
"extends": ["next", "next/core-web-vitals", "plugin:react/recommended"],
"plugins": ["react"],
"rules": {
"react/react-in-jsx-scope": "off",
"@next/next/no-img-element": "off"
}
}
6. Menambahkan API Route dengan Edge Runtime
Next.js 14 memungkinkan API di folder src/app/api sebagai Edge Function. Contoh endpoint yang mengembalikan waktu server:
// src/app/api/time/route.ts
export const runtime = "edge"; // optional, gunakan edge runtime
export async function GET() {
return new Response(JSON.stringify({ time: new Date().toISOString() }), {
status: 200,
headers: { "Content-Type": "application/json" },
});
}
7. Deploy ke Vercel (Zero‑Config)
- Push repo ke GitHub.
- Login ke Vercel dan pilih Import Project.
- Vercel otomatis mendeteksi Next.js 14, pilih
Next.jssebagai framework. - Tambahkan variable lingkungan (jika ada) dan klik Deploy.
Setelah selesai, Vercel menyediakan preview URL dan domain production.
8. Best Practice untuk Produksi
- Cache API secara selektif – gunakan
fetch(..., { cache: "force-cache" })untuk data yang jarang berubah. - Gunakan
imagecomponent Next.js untuk optimasi gambar otomatis. - Hindari state di Server Component – jika diperlukan, pindahkan ke client component dengan
"use client". - Audit bundle dengan
next build --profiledan periksa ukuran chunk. - Aktifkan
compressiondi middleware bila Anda menggunakan custom server.
9. Debugging & Monitoring
Gunakan built‑in next dev dengan --turbo untuk hot reload cepat. Untuk logging produksi, integrasikan dengan Sentry melalui SDK @sentry/nextjs:
npm install @sentry/nextjs
npx sentry-wizard -i nextjs
10. Kesimpulan
Dengan mengikuti tutorial ini Anda telah menyiapkan lingkungan Next.js 14 modern, mengaktifkan App Router, memanfaatkan React Server Components, serta mengintegrasikan Tailwind CSS untuk UI yang responsive. Anda juga mendapatkan contoh API Edge, konfigurasi TypeScript/ESLint, serta panduan deploy ke Vercel. Ikuti best practice di atas untuk menjaga performa dan keamanan aplikasi saat skalabilitas meningkat.
Next.js 14 menawarkan kombinasi App Router, React Server Components, dan dukungan penuh Tailwind CSS yang mempermudah pembuatan aplikasi web modern. Memahami alur setup, konfigurasi, dan deployment kini menjadi investasi berharga bagi developer yang ingin tetap kompetitif di ekosistem JavaScript pada 2026.
Tutorial step-by-step Next.js 14 dengan App Router, React Server Components, dan Tailwind CSS. Instalasi, konfigurasi, contoh kode, best practice, dan deployment ke Vercel untuk developer Web Development modern.
Programming,Software Engineering,Web Development
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar