Svelte.js: ketika “framework” justru memilih jadi compiler
Svelte memindahkan kerja berat framework ke tahap build, hasilnya runtime kecil, start cepat, dan update DOM yang jujur—tanpa VDOM dan hook dance.
Aku pertama kali jatuh hati ke Svelte bukan karena demo yang flashy, tapi karena satu ide sederhana: bagaimana kalau kerjaan berat framework dipindahkan ke tahap build? Di React atau Vue, kamu membawa mesin besar ke browser: runtime, virtual DOM, diffing tree, reconciliation, semua ikut. Di Svelte, komponenmu dibaca, dianalisis, lalu "dipecah-pecah" menjadi JavaScript imperatif yang tepat sasaran. Hasilnya? Bundle yang lebih kecil, start lebih cepat, dan update DOM yang terasa… jujur.
Ceritanya begini
Kamu menulis:
<script>
let count = 0;
</script>
<button on:click={() => count++}>Klik {count}</button>
Waktu build, Svelte menghasilkan fungsi kecil yang tahu persis node mana yang harus disentuh saat count berubah. Tak ada VDOM, tak ada diff global—hanya perubahan minimal ke text node pada tombol. Kalau kamu pernah mengoptimasi performa dengan useMemo atau shouldComponentUpdate, di sini sebagian besar "keribetan" itu tak lagi relevan: Svelte sudah memotong jalan untukmu.
Reaktivitas yang Natural
Di Svelte, reaktivitas terasa natural: assignment adalah sinyal. count++ berarti "UI, tolong sinkron ya." Jika ingin komputasi turunan, cukup $: total = a + b. Tidak ada hook dance, tidak ada dependency array yang salah satu elemennya ketinggalan bikin bug hantu.
SvelteKit: Tukang Jahit yang Rapi
Di level aplikasi, SvelteKit seperti tukang jahit yang rapi: SSR, prefetch link, form actions, hingga adapter ke Node/Edge/Static. Migrasi dari SPA ke SSR bukan lagi proyek sampingan yang bikin migrain. Dan bila kamu peduli soal CSS, scoping terjadi otomatis; selector diberi hash, tak perlu takut bentrok global. Transisi? Ada bawaan (fade, fly, scale) yang bisa kamu sematkan langsung di markup.
Perbandingan dengan React/Vue
Apakah React/Vue kalah total? Nggak juga. React memenangi kategori ekosistem: UI kit segudang, tooling matang, dan community support yang masif. Vue punya kombo template + reactivity yang elegan. Tapi kalau prioritasmu adalah kecepatan muat, jejak runtime kecil, dan DX yang no nonsense, Svelte menggoda. Ia mengingatkan kita bahwa banyak "abstraksi besar" di frontend bisa diselesaikan lebih awal—di compiler—bukan ditinggalkan untuk ditanggung browser.
Kapan Svelte Paling "Klik"?
- Landing page yang ngebut
- Dashboard ringan dengan interaksi tajam
- Widget yang disisipkan di halaman lain
- PWA yang butuh TTI kilat
Kapan menahan diri? Saat timmu hidup-mati di ekosistem React (misalnya depend pada komponen enterprise khusus) atau kamu butuh plugin eksotik yang hanya ada di sana.
Kesimpulan
Pada akhirnya, Svelte bukan sekadar proyek keren; ini adalah argumen berani bahwa masa depan frontend mungkin lebih compiler-first daripada runtime-first. Dan buatku, argumen itu terasa sangat masuk akal.