Next.js 14 menjadi standar baru untuk pengembangan web React full‑stack. Tutorial ini mengulas instalasi, konfigurasi, contoh kode, dan best practice agar proyek Anda siap produksi dalam hitungan menit.
1. Persyaratan Sistem
- Node.js >= 20.10 (LTS)
- npm atau pnpm (disarankan pnpm 9.x)
- Git
- Akun GitHub (opsional untuk deployment)
2. Membuat Project Baru
# Menggunakan pnpm (lebih cepat)
pnpm create next-app@latest my-next14-app -- --experimental-app --typescript
# Jika menggunakan npm
npx create-next-app@latest my-next14-app --experimental-app --typescript
Perintah di atas membuat struktur folder dengan app directory (App Router) dan dukungan TypeScript.
3. Instalasi Tailwind CSS 3.4
# Masuk ke folder proyek
cd my-next14-app
# Instal dependensi Tailwind, PostCSS, dan autoprefixer
pnpm add -D tailwindcss@latest postcss@latest autoprefixer@latest
# Inisialisasi konfigurasi
pnpm tailwindcss init -p
Sesuaikan tailwind.config.js:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./app/**/*.{js,ts,jsx,tsx}",
"./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
};
Lalu edit styles/globals.css dan tambahkan direktif Tailwind:
@tailwind base;
@tailwind components;
@tailwind utilities;
4. Menjalankan Development Server
pnpm dev
Server akan tersedia di http://localhost:3000. Buka browser, Anda harus melihat halaman beranda standar Next.js.
5. Membuat Halaman dengan Server Actions
Server Actions memungkinkan Anda mengeksekusi kode server langsung dari komponen React tanpa API route terpisah.
// app/contact/page.tsx
"use server";
import { revalidatePath } from "next/cache";
export async function submitContact(formData: FormData) {
const name = formData.get("name") as string;
const email = formData.get("email") as string;
const message = formData.get("message") as string;
// Simulasi penyimpanan ke database (contoh dengan Prisma)
// await prisma.contact.create({ data: { name, email, message } });
// Revalidasi cache halaman terhubung (opsional)
revalidatePath("/contact");
return { success: true };
}
export default function ContactPage() {
return (
);
}
Catatan:
- Tambahkan
"use server"di paling atas file untuk menandakan bahwa fungsi ini dijalankan di server. - Server Actions secara otomatis menangani parsing
FormDatadan mengembalikan respons JSON.
6. Mengintegrasikan Prisma 2 (ORM) dengan PostgreSQL
# Instal paket Prisma
pnpm add prisma @prisma/client
# Inisialisasi schema
pnpm prisma init --datasource-provider postgresql
Ubah prisma/schema.prisma:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Contact {
id Int @id @default(autoincrement())
name String
email String @unique
message String
createdAt DateTime @default(now())
}
Jalankan migrasi:
pnpm prisma migrate dev --name init
Set environment variable DATABASE_URL di .env (contoh: postgresql://user:pass@localhost:5432/next14db).
7. Deploy ke Vercel (Free Tier)
- Buat repository GitHub dan push kode.
- Kunjungi vercel.com, login dengan GitHub, dan pilih repository.
- Vercel otomatis mendeteksi Next.js 14, pilih opsi "App Router" dan aktifkan
Environment VariablesuntukDATABASE_URL. - Deploy selesai, URL production muncul dalam hitungan menit.
Tips: Aktifkan Preview Deployments pada pull request untuk testing CI/CD otomatis.
8. Best Practice untuk Production
- TypeScript strict mode: Pastikan
"strict": trueditsconfig.jsonuntuk meminimalkan runtime error. - Image Optimization: Gunakan built‑in
next/imagedenganloader: 'default'untuk CDN otomatis. - Cache Control: Manfaatkan
revalidatepadafetchAPI ataurevalidatePathpada Server Actions untuk ISR (Incremental Static Regeneration). - Security Headers: Tambahkan middleware
next-secure-headersatau set header manual dinext.config.js.module.exports = { async headers() { return [{ source: '/(.*)', headers: [ { key: 'Content-Security-Policy', value: "default-src 'self'; script-src 'self' 'unsafe-inline'" }, { key: 'X-Content-Type-Options', value: 'nosniff' }, { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' }, ], }]; }, }; - Linting & Formatting: Instal
eslint-config-nextdanprettierserta tambahkan hookhuskyuntuk enforce before commit.
9. Debugging & Performance Monitoring
Gunakan next dev dengan --inspect untuk attach debugger di Chrome DevTools. Untuk produksi, integrasikan Vercel Analytics atau Sentry dengan @sentry/nextjs.
10. Automasi CI/CD dengan GitHub Actions
# .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.x'
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- run: pnpm run build
- name: Deploy to Vercel
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: .
alias-domains: ''
Dengan workflow di atas, setiap push ke main otomatis membangun dan deploy ke Vercel.
11. Ringkasan Langkah
- Install Node 20+ & pnpm.
- Create Next.js 14 project dengan App Router & TypeScript.
- Tambahkan Tailwind CSS 3.4.
- Bangun halaman menggunakan Server Actions.
- Integrasikan Prisma + PostgreSQL untuk penyimpanan.
- Deploy ke Vercel dan atur variabel environment.
- Ikuti best practice keamanan, caching, dan linting.
- Setup monitoring & CI/CD.
Setelah mengikuti semua langkah, Anda memiliki aplikasi React full‑stack modern yang siap skala, aman, dan mudah dipelihara.
Next.js 14 memperkenalkan paradigma baru yang menyatukan UI dan logika server lewat App Router dan Server Actions. Dengan kombinasi Tailwind CSS, Prisma, dan pipeline CI/CD otomatis, tim development dapat memproduksi aplikasi web yang cepat, aman, dan mudah di‑deploy. Ikuti tutorial ini, sesuaikan dengan kebutuhan bisnis Anda, dan manfaatkan ekosistem Vercel untuk skalabilitas tanpa batas.
Panduan lengkap step‑by‑step setup Next.js 14 dengan App Router, Server Actions, Tailwind CSS, Prisma, dan deployment Vercel. Termasuk best practice, CI/CD, dan keamanan.
Programming,Software Engineering,Web Development
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar