Kenapa Saya Pindahin gookkis.com dari Laravel ke Astro

gookkis.com dulu jalan di atas Laravel 13, PostgreSQL di Supabase, plus admin panel sendiri buat nulis blog dan portfolio — lengkap sama fitur AI content generation yang saya bikin sendiri waktu itu. Kedengeran keren di atas kertas. Prakteknya? Situs personal yang cuma saya urus sendiri, di sela-sela kerjaan client, ternyata punya server yang harus dipantau, database yang harus di-backup, dan container Docker yang kadang bikin saya kebangun jam 2 pagi gara-gara notifikasi VPS kehabisan memory.
Titik baliknya bukan momen dramatis. Suatu malam saya mau nambahin satu post blog doang, dan ternyata admin panel-nya lagi error gara-gara migration yang belum jalan sejak update terakhir. Butuh 20 menit cuma buat debug kenapa halaman login-nya nge-500. Buat nulis satu paragraf. Itu momen saya mikir: ini effort-nya nggak sepadan sama sekali buat situs yang isinya cuma tulisan dan portfolio.
Cara saya nulis konten juga udah berubah duluan sebelum saya sadar. Saya udah terbiasa brainstorming draft sama AI terus ngedit manual di editor teks biasa — bukan lewat rich text editor di admin panel. Jadi sebenarnya saya udah pakai workflow berbasis file dari awal, cuma file-nya nggak sengaja disimpen di git, dia disimpen di database lewat form upload. Itu langkah ekstra yang nggak perlu.
Astro jadi pilihan karena tiga hal konkret: content collections-nya bisa baca langsung dari folder Markdown tanpa perlu database (src/content.config.ts yang define schema-nya), build-nya keluar HTML/CSS/JS statis murni jadi nggak ada PHP-FPM atau container yang perlu dipantau, dan dia punya i18n routing built-in yang cukup buat kebutuhan dwibahasa situs ini tanpa saya harus bikin sistem locale sendiri kayak yang saya bikin manual di Laravel dulu pakai session cookie.
Migrasinya sendiri makan waktu sekitar seminggu kerja sore-sore, kebanyakan waktunya abis buat mindahin konten lama dari database ke file Markdown (nulis satu script sekali pakai buat export), bukan buat belajar Astro-nya — dokumentasinya cukup jelas dan konsepnya nggak asing buat orang yang udah biasa sama static site generator.
Yang berubah setelah pindah:
- Nggak ada database atau CMS lagi. Semua post dan portfolio itu file Markdown di
src/content, dua folder per collection (id/danen/), commit ke git kayak kode biasa. - Nggak ada Docker/PHP-FPM buat situs ini. Deploy-nya sekarang
npm run buildterus sync folderdist/ke VPS lewat GitHub Actions — nggak ada moving part yang bisa down di tengah malam. - Tetap dwibahasa, tapi sekarang lewat URL prefix (
/en/...) bukan session cookie yang gampang bikin bingung pas di-share linknya ke orang lain.
Riwayat Laravel-nya nggak saya hapus — masih ada di branch gookkis-web-laravel-old kalau suatu saat saya butuh liat lagi caranya. Tapi main sekarang udah nggak butuh satu baris pun dari situ.
Kalau kamu juga lagi ngurus situs personal yang overengineered kayak gitu, coba itung ulang berapa jam per bulan yang beneran kepake buat “ngurus infrastruktur” dibanding nulis konten beneran. Buat saya, angkanya kebalik banget dari yang seharusnya.