Next.js 14 menjadi standar de‑facto untuk pengembangan web modern. Tutorial ini memandu Anda step‑by‑step mulai dari instalasi, konfigurasi TypeScript, integrasi Tailwind CSS, hingga deployment otomatis di Vercel, lengkap dengan best practice untuk performa dan keamanan.
1. Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Node.js v20.12 atau lebih baru (
node -v) - npm v10 atau Yarn v4 (pilih salah satu)
- Akun Vercel dengan akses ke GitHub
- Editor kode (VS Code sangat direkomendasikan)
2. Membuat Project Next.js 14
2.1 Instalasi via create-next-app
npx create-next-app@latest my-next14-app \
--ts \
--eslint \
--tailwind \
--app
Parameter:
--ts: menambahkan TypeScript--eslint: konfigurasi linting standar--tailwind: menyiapkan Tailwind CSS--app: mengaktifkan App Router (folderapp/)
2.2 Verifikasi Struktur
my-next14-app/
├─ app/ # App Router
│ ├─ layout.tsx
│ └─ page.tsx
├─ public/
├─ src/
│ └─ ...
├─ tailwind.config.ts
├─ tsconfig.json
└─ package.json
3. Menjalankan Development Server
cd my-next14-app
npm run dev
# atau yarn dev
Buka http://localhost:3000 dan pastikan halaman “Welcome to Next.js!” muncul.
4. Konfigurasi TypeScript & ESLint
4.1 Strict Mode
Buka tsconfig.json dan pastikan opsi berikut di‑enable:
{
"compilerOptions": {
"strict": true,
"noImplicitAny": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"moduleResolution": "node",
"target": "es2022",
"module": "esnext",
"jsx": "preserve"
}
}
4.2 ESLint Rules
Tambahkan aturan keamanan dan performa di .eslintrc.json:
{
"extends": ["next/core-web-vitals", "plugin:@typescript-eslint/recommended"],
"rules": {
"@typescript-eslint/no-floating-promises": "error",
"react/react-in-jsx-scope": "off",
"no-console": "warn"
}
}
5. Integrasi Tailwind CSS (Sudah ada, tapi kita optimalkan)
5.1 Mengaktifkan JIT & Purge
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./app/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}"
],
theme: {
extend: {}
},
plugins: []
};
5.2 Membuat Komponen UI Reusable
export const Button = ({children, onClick, variant = 'primary'}) => (
);
6. Menambahkan API Route dengan Edge Runtime
6.1 Buat File app/api/hello/route.ts
import { NextResponse } from 'next/server';
export const runtime = 'edge'; // Menjalankan di Vercel Edge Network
export async function GET(request) {
const { searchParams } = new URL(request.url);
const name = searchParams.get('name') ?? 'World';
return NextResponse.json({ greeting: `Hello, ${name}!` });
}
6.2 Menguji Endpoint
Buka http://localhost:3000/api/hello?name=Next. Respons JSON harus muncul dalam milidetik karena runtime edge.
7. Optimasi Performa
- Image Optimization: gunakan
next/imagedenganloader: 'vercel'(default). - Static Rendering: Pastikan semua halaman yang tidak memerlukan data dinamis menggunakan
export const revalidate = 60;untuk ISR. - Prefetching:
<Link prefetch={true} ...>otomatis diaktifkan pada client‑side navigation. - Font Loading: tambahkan
next/font/googleuntuk meng‑inline font‑display‑swap.
8. Keamanan & Best Practices
- Aktifkan
Content‑Security‑Policydinext.config.jsdenganheaders. - Gunakan
env.localuntuk secret dan setserverRuntimeConfiguntuk variabel yang hanya tersedia di server. - Hindari mengekspor data sensitif di
public/. - Gunakan
next-authatauClerkuntuk otentikasi berbasis JWT.
9. Deployment ke Vercel
9.1 Push ke GitHub
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/username/my-next14-app.git
git push -u origin main
9.2 Import Project di Vercel
- Login ke Vercel, klik New Project.
- Pilih repository GitHub yang baru dipush.
- Pastikan framework terdeteksi sebagai
Next.jsdanNode.js 20.xdipilih. - Tambahkan environment variables (mis.
NEXT_PUBLIC_API_KEY) di Settings → Environment Variables. - Deploy.
Vercel otomatis menjalankan npm run build → next build dan men-deploy ke Edge Network.
10. Monitoring & Logging
Gunakan Vercel Analytics untuk Core Web Vitals dan next-logger untuk log server‑side (termasuk edge function). Contoh:
import logger from 'next-logger';
export async function GET() {
logger.info('Edge function invoked');
return NextResponse.json({status:'ok'});
}
11. Studi Kasus: Migrasi dari Next.js 12 ke 14
Seorang tim fintech mengupgrade aplikasi dari pages/ ke app/. Langkah utama:
- Ganti
pages/_app.tsxmenjadiapp/layout.tsxdan migrasi global CSS. - Ubah semua
getStaticProps / getServerSidePropsmenjadifetchdi server components atauawaitdi route handlers. - Aktifkan
output: 'standalone'dinext.config.jsuntuk Docker‑friendly build. - Setelah 2 minggu observasi, LCP turun 27% dan biaya CDN berkurang 15% berkat edge functions.
12. Penutup
Dengan mengikuti tutorial ini, Anda mendapatkan proyek Next.js 14 yang siap produksi, teroptimasi untuk performa, aman, dan ter‑deploy otomatis ke Vercel. Selalu pantau rilis resmi Next.js (biasanya tiap kuartal) untuk fitur baru seperti Streaming Server Components atau AI‑generated Routes yang akan memperluas kemampuan aplikasi Anda.
Next.js 14 menggabungkan kemudahan pengembangan dengan performa kelas dunia melalui App Router, Edge Runtime, dan integrasi Vercel yang seamless. Mengikuti langkah‑langkah di atas memberi Anda fondasi solid untuk membangun aplikasi Web Development modern yang skalabel, aman, dan cepat—kunci sukses dalam dunia Programming dan Software Engineering saat ini.
Tutorial lengkap setup Next.js 14 dengan TypeScript, Tailwind, Edge API, dan deployment otomatis di Vercel. Langkah demi langkah, best practice, dan studi kasus migrasi.
Programming,Software Engineering,Web Development,Next.js 14,TypeScript,Vercel,Edge Runtime
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar