Tutorial step‑by‑step ini membimbing Anda menginstal Next.js 14, mengintegrasikan Tailwind CSS, mengkonfigurasi lingkungan development, menulis contoh kode, serta menerapkan best practice sebelum akhirnya mem‑deploy ke Vercel dengan zero‑downtime.
1. Prasyarat
Pastikan Anda memiliki:
- Node.js >= 20.10 (LTS) – download di nodejs.org
- npm atau Yarn (npm 10+ direkomendasikan)
- Git client
- Akun Vercel (gratis atau berbayar)
- Editor kode – VS Code dengan ekstensi ESLint dan Prettier
2. Membuat Project Next.js 14
- Inisialisasi proyek dengan template resmi:
Penjelasan:npx create-next-app@latest my-next14-app --ts --eslint --src-dir --app-router--tsmenambahkan TypeScript,--eslintmengaktifkan konfigurasi linting,--src-dirmenempatkan source di foldersrc, dan--app-routermengaktifkan fitur App Router (dirapp/) yang menjadi standar di Next.js 14. - Masuk ke direktori proyek dan jalankan development server:
Aksescd my-next14-app npm run devhttp://localhost:3000– Anda akan melihat halaman starter Next.js.
3. Menambahkan Tailwind CSS (v3.4+)
- Instal dependensi Tailwind, PostCSS, dan autoprefixer:
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest - Inisialisasi konfigurasi Tailwind:
Filenpx tailwindcss init -ptailwind.config.cjsdanpostcss.config.cjsakan dibuat. - Update
tailwind.config.cjsuntuk mendukung App Router:/** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./src/**/*.{js,ts,jsx,tsx}", "./app/**/*.{js,ts,jsx,tsx}" ], theme: { extend: {}, }, plugins: [], }; - Tambahkan direktif Tailwind ke berkas CSS global. Buat atau edit
src/app/globals.css:@tailwind base; @tailwind components; @tailwind utilities; - Pastikan
globals.cssdi‑import disrc/app/layout.tsx:import './globals.css'; - Jalankan kembali
npm run devdan verifikasi bahwa utility class Tailwind berfungsi (contoh:Hello Tailwind).
4. Struktur Project yang Clean (Best Practice)
Gunakan pendekatan Domain‑Driven Folder Layout di dalam src/:
src/
app/ # Next.js App Router (pages, layout, error, loading)
features/ # Fitur terpisah, contoh: auth, products, dashboard
shared/ # Komponen UI, hooks, utils yang dapat dipakai lintas fitur
lib/ # Wrapper API, konfigurasi third‑party (axios, prisma, etc.)
styles/ # Jika masih butuh CSS selain Tailwind
types/ # TypeScript global types
Keuntungan: kode lebih mudah di‑scale, tim dapat bekerja paralel, dan import path relatif tetap singkat.
5. Contoh Implementasi – Halaman Produk dengan Server‑Side Rendering
- Buat API mock di
src/lib/api.tsmenggunakanfetchke JSONPlaceholder (atau endpoint internal):export async function getProducts() { const res = await fetch('https://jsonplaceholder.typicode.com/posts?_limit=10', { next: { revalidate: 60 } // ISR tiap 60 detik }); if (!res.ok) throw new Error('Failed to fetch products'); return res.json(); } - Tambahkan route di
src/app/products/page.tsx:
Penjelasan: fungsiimport { getProducts } from '@/lib/api'; import Image from 'next/image'; export const dynamic = 'force-static'; // optional for ISR export default async function ProductsPage() { const products = await getProducts(); return ( ); }Produk Terbaru
{products.map((p: any) => ( ))}{p.title}
{p.body}
getProductsdijalankan di server, memanfaatkan Incremental Static Regeneration sehingga halaman tetap cepat dan data ter‑update tiap menit. - Gunakan
src/shared/Button.tsxsebagai komponen UI reusable dengan Tailwind:export default function Button({ children, onClick, type = 'button' }: React.ButtonHTMLAttributes) { return ( ); }
6. Konfigurasi Linting, Formatting, dan Git Hooks
- Instal ESLint & Prettier (jika belum ada):
npm install -D eslint prettier eslint-config-prettier eslint-plugin-react eslint-plugin-react-hooks - Buat
.eslintrc.cjsdi root:module.exports = { root: true, parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint', 'react'], extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react/recommended', 'prettier'], settings: { react: { version: 'detect' } }, env: { browser: true, node: true, es2021: true }, }; - Tambahkan script di
package.json:"lint": "eslint . --ext .js,.ts,.tsx", "format": "prettier --write ." - Gunakan
huskyuntuk menolak commit yang gagal linting:npm install -D husky lint-staged npx husky install npx husky add .husky/pre-commit "npx lint-staged"// package.json "lint-staged": { "*.{js,ts,tsx}": "eslint --fix" }
7. Testing dengan Jest & React Testing Library
- Instal dev dependencies:
npm install -D jest @types/jest ts-jest @testing-library/react @testing-library/jest-dom - Inisialisasi Jest:
Pilih TypeScript, coverage, dan gunakannpx jest --initjsdomenvironment. - Contoh test untuk
Button:import { render, screen } from '@testing-library/react'; import Button from '@/shared/Button'; test('renders button with children', () => { render(); expect(screen.getByRole('button')).toHaveTextContent('Click me'); });
8. Optimasi Produksi
- Image Optimization: gunakan
next/imagedenganloader: 'default'atau Cloudflare Images untuk CDN. - Code Splitting & Dynamic Import: contoh lazy‑load komponen chart:
const Chart = dynamic(() => import('@/features/dashboard/Chart'), { ssr: false }); - Security Headers: tambahkan di
next.config.js:module.exports = { async headers() { return [{ source: '/(.*)', headers: [ { key: 'X‑Content‑Type‑Options', value: 'nosniff' }, { key: 'X‑Frame‑Options', value: 'DENY' }, { key: 'Referrer‑Policy', value: 'strict-origin-when-cross-origin' }, ], }]; }, };
9. Deploy ke Vercel (Zero‑Downtime)
- Push kode ke repository GitHub (atau GitLab). Pastikan branch
mainberisipackage.json,next.config.js, danvercel.json(optional). - Login ke Vercel, pilih New Project**, sambungkan repo, dan biarkan Vercel mendeteksi
Next.jssecara otomatis.- Atur environment variables (misalnya
API_URL) di dashboard Vercel → Settings → Environment Variables.- Deploy. Vercel akan menjalankan
npm install && npm run buildsecara otomatis. Hasilnya tersedia di URLhttps://your-project.vercel.app.- Jika ingin Preview Deploys untuk setiap pull request, aktifkan
Vercel Git Integration. Ini memberi tim feedback visual sebelum merge. - Atur environment variables (misalnya
10. Monitoring & Performance After Deploy
- Gunakan Vercel Analytics untuk Core Web Vitals.
- Integrasikan
@sentry/nextjsuntuk error tracking:npm install @sentry/nextjs npx @sentry/wizard -i nextjs - Setup
web-vitalscustom reporting jika ingin mengirim data ke Google Analytics.
Kesimpulan
Dengan mengikuti langkah‑langkah di atas, Anda akan memiliki aplikasi Next.js 14 modern yang terstruktur, ter‑test, di‑optimasi, serta siap di‑deploy ke Vercel dengan praktik CI/CD otomatis. Kombinasi App Router, Tailwind CSS, dan strategi ISR memberikan kecepatan loading di level millisecond, sementara linting, testing, dan monitoring memastikan kualitas kode tetap tinggi seiring skala proyek berkembang.
Next.js 14 bersama Tailwind CSS tetap menjadi stack pilihan utama untuk pengembangan web full‑stack di 2026. Tutorial ini tidak hanya menjelaskan instalasi, tapi juga menekankan arsitektur bersih, testing, security, serta pipeline CI/CD otomatis melalui Vercel. Implementasikan best practice ini pada proyek Anda selanjutnya dan rasakan peningkatan produktivitas serta performa yang signifikan.
Tutorial lengkap 2026 cara setup Next.js 14 dengan App Router, Tailwind CSS, testing, security, dan deploy ke Vercel. Langkah demi langkah, contoh kode, dan best practice untuk Programming, Software Engineering, dan Web Development.
Programming,Software Engineering,Web Development,Next.js,Tailwind CSS,Vercel,DevOps
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar