Memilih Technology Stack untuk Pemula
Pahami frontend, backend, runtime, framework, database, hosting, dan kapan Docker benar-benar diperlukan.
Daftar isi
Technology stack adalah kumpulan teknologi yang dipakai untuk membangun, menjalankan, menyimpan data, dan men-deploy aplikasi. Jangan memilih stack hanya karena populer atau disukai coding agent. Mulai dari kebutuhan produk dan ikuti Technical Foundation jika project berasal dari AI Blueprint.
1. Kenali Lapisan Utama
| Lapisan | Fungsi | Contoh |
|---|---|---|
| Frontend | UI yang dilihat dan digunakan user | HTML, CSS, React |
| Backend | Business rule dan operasi server | Node.js, server routes |
| Runtime | Menjalankan source code | Node.js |
| Framework | Struktur dan conventions aplikasi | Next.js |
| Database | Menyimpan data terstruktur | PostgreSQL |
| Hosting | Menjalankan aplikasi online | Vercel atau platform lain |
| Tooling | Build, test, lint, dan package | npm, TypeScript, test runner |
Satu product dapat menggabungkan lapisan frontend dan backend dalam satu framework. Itu tetap dua tanggung jawab yang berbeda. Jangan menganggap semua code yang berada di repository yang sama aman dijalankan di browser.
2. Source Code, Runtime, dan Package Manager
Source code adalah file yang ditulis developer. Runtime menjalankannya. Package manager memasang dependency dan menjalankan script. Untuk project JavaScript modern, periksa package.json dan lockfile sebelum install:
| Lockfile | Package manager yang biasanya dipakai |
|---|---|
package-lock.json | npm |
pnpm-lock.yaml | pnpm |
yarn.lock | Yarn |
Jangan membuat lockfile kedua. Gunakan versi Node.js yang ditetapkan repository, misalnya melalui .nvmrc, .node-version, atau field engines.
3. Framework Bukan Bahasa Pemrograman
JavaScript dan TypeScript adalah bahasa. React adalah library UI. Next.js adalah framework yang dapat menangani rendering, routing, server code, dan build. PostgreSQL adalah database. Docker adalah platform container.
Menyebut lapisan dengan tepat membantu diagnosis. Error React component berbeda dari error Node runtime, database connection, atau konfigurasi hosting meskipun semuanya terlihat pada satu aplikasi.
4. Pilih Stack dari Requirement
Tanyakan:
- Apakah ini website statis, aplikasi multi-user, atau internal tool?
- Apakah user perlu login dan memiliki permission berbeda?
- Apakah data harus disimpan, dicari, diaudit, atau diisolasi per tenant?
- Apakah ada upload file, background job, email, payment, atau realtime?
- Di mana aplikasi akan di-host?
- Siapa yang akan merawatnya setelah online?
Website profil sederhana mungkin tidak memerlukan database atau Docker. Aplikasi SaaS dengan akun, role, transaksi, dan audit membutuhkan keputusan data dan security yang jauh lebih rinci.
5. Golden Path untuk Latihan
Jalur belajar yang cukup umum adalah Windows atau macOS, VS Code, Git, GitHub, Node.js LTS, package manager dari lockfile, Next.js atau framework project, PostgreSQL, Docker Desktop untuk service lokal, dan Vercel untuk deployment.
Ini bukan stack universal. Dokumentasi repository dan Technical Foundation selalu mengalahkan contoh generik. Jangan mengganti PostgreSQL dengan database lain atau npm dengan pnpm tanpa alasan yang disetujui.
6. Kapan Docker Berguna
Docker membantu menjalankan service seperti PostgreSQL dengan konfigurasi yang dapat diulang. Docker image adalah template, container adalah instance berjalan, port menghubungkan service, volume mempertahankan data, dan Compose mendefinisikan beberapa konfigurasi dalam file.
Docker tidak wajib untuk setiap frontend. Jangan menambahkan container hanya agar project terlihat lebih profesional. Pakai ketika service lokal, parity lingkungan, atau workflow tim memang membutuhkannya.
7. Pisahkan Environment dan Secret
Development, preview, staging, dan production adalah environment berbeda. Masing-masing dapat memiliki database URL, domain, dan credential sendiri. Environment variable adalah mekanisme konfigurasi. Secret adalah nilai sensitif yang tidak boleh masuk Git, screenshot, prompt, atau log.
Gunakan file template seperti .env.example untuk nama variable dan placeholder. Simpan nilai nyata di .env.local atau secret manager platform sesuai dokumentasi project.
8. Hindari Overengineering
Untuk MVP pemula, satu aplikasi, satu database, dan satu deployment pipeline sering cukup. Microservices, Kubernetes, event streaming, banyak database, atau abstraction layer tambahan hanya layak jika requirement dan beban operasional membenarkannya.
Kompleksitas memiliki biaya: lebih banyak konfigurasi, permission, log, failure mode, upgrade, dan pengetahuan yang harus dipelihara.
9. Checklist Keputusan Stack
- Requirement dan non-goals tersedia.
- Setiap lapisan memiliki tanggung jawab jelas.
- Runtime dan package manager mengikuti repository.
- Database dipilih dari kebutuhan data, bukan tren.
- Auth dan permission dirancang sebelum data sensitif dibuat.
- Environment local, preview, dan production terpisah.
- Secret tidak berada di Git.
- Tim mampu menjalankan, menguji, men-deploy, dan memulihkan stack.
Sumber resmi dan referensi
Gunakan sumber berikut untuk memeriksa command, fitur, pricing, atau limit terbaru.
Apakah panduan ini membantu?
Beritahu kami bila langkahnya berhasil atau ada informasi yang perlu diperbarui.