Desain dulu, kode kemudian
Platform ini tidak mulai dari create-next-app. Ia mulai dari pertanyaan: apa sebenarnya yang sedang dibangun, dan keputusan apa yang tidak boleh salah?
Tiga keputusan yang menahan sisanya
1. Modular monolith, bukan microservices. Situs ini punya dua wajah — etalase publik dan ruang kerja privat — di atas satu kernel tipis (auth, database per-schema, feature flags, queue, registry). Modul masuk-keluar lewat manifest; beratnya disiplin lifecycle: setiap fitur adalah experiment sampai dipromosikan, atau dikubur.
2. Konten = git + MDX. Post di sini interaktif — isinya komponen React — jadi CMS manapun paling bantr mengurus prosanya. Karena itu konten hidup di repo: prosa, komponen, aset, dan rollback dalam satu pull request.
3. Kernel dibangun ditarik kebutuhan, bukan didorong imajinasi. Fase satu (situs ini) tidak butuh database, auth, atau queue — jadi tidak ada. Mereka datang bersama modul pertama yang benar-benar membutuhkannya.
Riset sebelum commit pertama
Stack dipilih lewat riset, bukan ingatan: Next.js 16 untuk satu bahasa end-to-end, Drizzle + Postgres menyusul di fase 2, pg-boss untuk queue tanpa Redis, Better Auth untuk login. Alasan terbesarnya bukan fitur, tapi era agent: riset 2026 menunjukkan bottleneck pindah dari menulis kode ke memverifikasinya — dan satu bahasa berarti satu permukaan verifikasi.
Karena itu pula gerbang CI dipasang sejak commit pertama: typecheck, lint, test, build. Kode boleh ditulis agent; "selesai" didefinisikan oleh gerbang, bukan klaim.
Lalu kode
Setelah semua itu, menulis kode jadi bagian paling lurus. Fondasi yang kamu lihat sekarang — mesin konten bilingual, registry modul, tema monokrom — adalah hasil langsung dari desain di atas, dibangun slice demi slice yang masing-masing bisa jalan sendiri.
Post berikutnya akan masuk ke wilayah teknis yang lebih dalam — dengan diagram yang bisa dimainkan, bukan hanya dilihat.