Episode ini membahas build tooling dengan Turbopack, konfigurasi TypeScript strict, pipeline CI/CD untuk project Next.js dengan GitHub Actions, serta linting, formatting, dan pre-commit hooks untuk otomatisasi kualitas kode.

Developer yang efisien membiarkan mesin mengerjakan tugas berulang. Build, linting, type checking, dan deployment seharusnya berjalan otomatis — konsisten setiap kali, tanpa bergantung pada ingatan manusia.
Episode 19 membahas build tooling dengan Turbopack, konfigurasi TypeScript yang ketat, pipeline CI/CD untuk project Next.js dengan GitHub Actions, serta linting, formatting, dan pre-commit hooks.
Next.js 15 memakai Turbopack sebagai default untuk development server, dengan dukungan untuk production build pada versi stabil terbaru. Turbopack ditulis dalam Rust dan menawarkan pembaruan inkremental yang jauh lebih cepat dibanding pendekatan lama. Verifikasi bundler aktif:
npx next build --turbopackPerintah npx next build --turbopack menjalankan production build memakai Turbopack. Kecepatan kompilasi inkrementalnya terasa jelas di project besar — perubahan kecil hanya dikompilasi ulang seperlunya.
Sebagai perbandingan, Vite adalah bundler populer untuk frontend non-Next.js yang juga dibangun di atas esbuild dan Rollup. Untuk React dengan framework sendiri, Vite adalah pilihan kuat. Di ekosistem Next.js, Turbopack adalah arah resmi ke depan — pelajari konsep bundler umumnya, karena skill ini transferable.
TypeScript dengan mode ketat menangkap bug yang tidak mungkin ditemukan lint. Scaffold create-next-app sudah mengaktifkan strict: true di tsconfig.json — yang meliputi noUncheckedIndexedAccess, noImplicitAny, dan strictNullChecks. Praktik yang dianjurkan:
type atau interface.any; gunakan unknown lalu narrow dengan validasi.z.infer dari Zod untuk tipe form dan API.satisfies untuk memastikan objek memenuhi kontrak.Model data yang ditulis dengan benar membuat seluruh aplikasi lebih aman:
type Article = {
slug: string
title: string
published: boolean
}Tipe Article di atas menjamin bahwa setiap fungsi yang memakainya harus menyediakan ketiga field tersebut. TypeScript adalah dokumentasi yang dieksekusi — selamanya terupdate mengikuti kode.
CI/CD menjalankan pemeriksaan dan deployment secara otomatis saat kode berubah. Pipeline dasar untuk setiap push:
name: CI
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm run lint
- run: npx tsc --noEmit
- run: npm run buildPipeline di atas dijalankan untuk setiap push ke main: install dependency, lint, type check, lalu build. Jika salah satu langkah gagal, PR diblokir — mencegah kode rusak masuk ke branch utama.
Jangan pernah menaruh kredensial langsung di workflow. Simpan nilai di GitHub Secrets dan baca dengan sintaks dari vars dan secrets. Build production yang membutuhkan variabel seperti DATABASE_URL membaca dari secrets, bukan dari file yang dicommit.
Prettier menghilangkan perdebatan format dengan satu konfigurasi, sedangkan ESLint menegakkan aturan kualitas. Kombinasikan keduanya agar format otomatis dan error tertangkap:
{
"semi": false,
"singleQuote": true,
"trailingComma": "all"
}Konfigurasi di atas membuat kode tanpa titik koma, memakai single quote, dan trailing comma. Jalankan npx prettier --write . sebelum commit untuk memformat seluruh codebase.
Dari episode 3, kalian sudah mengenal husky dan lint-staged. Tambahkan commitlint untuk menegakkan conventional commits:
npx lint-stagedMenjalankan npx lint-staged memformat dan me-lint hanya file yang di-staging. Dengan commitlint, commit seperti feat: tambah halaman blog lolos, sedangkan pesan tidak jelas ditolak. Alur ini membuat riwayat Git tetap rapi dan machine-readable — persiapan sempurna untuk deployment di episode 20.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya kita akan membahas deployment dan hosting — deployment di Vercel, Netlify, AWS, dan Cloudflare, perbandingan serverless dan edge deployment, preview environments dan custom domains, serta build output dan production readiness. Aplikasi kalian akan online.