← Kembali
tech

Kenapa Saya Pilih Astro untuk Website Ini

Dari vanilla HTML ke Astro — alasan teknis dan non-teknis di balik keputusan migrasi, dan apa yang saya pelajari dalam prosesnya.

Hilmi Abthahey · · 3 menit baca

Website ini dibangun dengan Astro. Dan saya ingin jujur soal kenapa — bukan sekadar “karena performanya bagus” atau “karena trendy”.

Masalah dengan pendekatan vanilla

Sebelum migrasi, website ini adalah HTML, CSS, dan JavaScript biasa. Tidak ada framework, tidak ada build process yang serius. Dan untuk tahap awal, itu cukup.

Tapi begitu mulai berpikir soal konten jangka panjang — artikel blog, halaman yang berkembang, metadata yang konsisten — keterbatasan vanilla mulai terasa.

Setiap halaman harus disalin ulang. Navbar berubah? Edit semua file. Metadata belum konsisten? Cek satu per satu. Tidak ada content management yang terstruktur.

Ini bukan masalah teknis yang tidak bisa diselesaikan. Tapi ini adalah gesekan yang tidak perlu kalau ada alternatif yang lebih baik.

Kenapa Astro, bukan yang lain?

Saya pertimbangkan beberapa opsi:

Next.js — terlalu besar untuk kebutuhan ini. Overkill untuk website personal yang mostly static.

Hugo atau Jekyll — solid, tapi ekosistemnya terasa dated untuk 2026. Lebih susah kalau mau tambah interaktivitas di masa depan.

Astro — titik tengah yang pas. Output static by default, komponen berbasis file, dukungan Markdown native untuk content collection, dan TypeScript dari awal.

Yang paling menarik dari Astro adalah prinsip “ship zero JavaScript by default”. HTML yang terkirim ke browser itu bersih. JavaScript hanya dimuat kalau memang diperlukan. Untuk website konten seperti ini, itu keuntungan yang sangat nyata.

Proses migrasinya

Migrasi tidak sempurna dari awal. Ada beberapa hal yang menarik:

Content collections adalah fitur Astro yang paling langsung terasa manfaatnya. Setiap artikel adalah file Markdown dengan frontmatter yang divalidasi dengan Zod schema. Kalau frontmatter tidak sesuai, build langsung gagal — bukan diam-diam rusak di production.

Component-based layout membuat semua halaman otomatis konsisten. BaseLayout, Navbar, Footer — tulis sekali, pakai di semua halaman. Kalau ada yang berubah, cukup edit satu file.

Sitemap otomatis via @astrojs/sitemap — satu baris di config, sitemap langsung terbuat setiap build.

Yang belum sempurna

Astro bukan tanpa tradeoff:

  • Build time sedikit lebih lama dari vanilla (tapi masih sangat cepat untuk ukuran project ini)
  • Ada learning curve untuk content collections kalau belum familiar dengan konsepnya
  • Beberapa edge case di TypeScript typing untuk Astro props masih perlu workaround kecil

Tapi untuk kebutuhan website ini — media hub yang akan terus tumbuh dengan konten — Astro adalah pilihan yang saya tidak akan sesali.

Pelajaran utama

Pilih tool yang sesuai dengan scope dan trajectory project, bukan yang paling populer atau paling powerful.

Untuk website personal yang akan tumbuh kontennya secara organik, framework yang mendukung content-first workflow jauh lebih penting dari fitur-fitur yang belum tentu dipakai.

Astro cocok untuk itu. Dan website ini adalah buktinya.