Static Site Generators

Static site generator atau SSG adalah alat yang menggabungkan konten, data, konfigurasi, dan template saat build untuk menghasilkan HTML serta aset siap deploy. Server produksi umumnya hanya menyajikan artifact tersebut, bukan merender halaman setiap kali ada request.

Cloudflare menjelaskan SSG sebagai kompromi antara penulisan HTML manual dan CMS dinamis. Template tetap dapat digunakan kembali, tetapi halaman dibuat sebelum pengunjung memintanya.

Alur kerja

Konten biasanya ditulis dalam Markdown, HTML, atau format data. Generator membaca frontmatter, layout, include, collection, dan konfigurasi, lalu menulis halaman serta aset ke direktori output.

Build dapat berjalan secara lokal atau melalui CI. Artifact kemudian dikirim ke GitHub Pages, Netlify, Vercel, object storage, CDN, atau server web biasa. Perubahan konten memerlukan build baru agar output ikut berubah.

Contoh

Jekyll memakai Ruby, Liquid, markup, dan layout. Dokumentasi Jekyll menempatkannya sebagai generator blog-aware yang membentuk situs statis dari teks.

Hugo ditulis dalam Go dan menyediakan template, taxonomy, multilingual content, serta pipeline aset. Quick start Hugo menunjukkan artifact publikasi ditulis ke direktori public.

Eleventy berbasis JavaScript dan mendukung banyak template language. Dokumentasi Eleventy menulis keluaran statis ke _site, sedangkan runtime JavaScript browser tidak disisipkan secara bawaan.

Kecocokan

SSG cocok untuk blog, dokumentasi, portofolio, landing page, dan situs konten yang dapat diketahui sebelum deployment. Model ini juga baik ketika perubahan melalui Git dan review lebih penting daripada editing langsung di database.

SSG kurang memadai sebagai satu-satunya lapisan untuk dashboard privat, personalisasi per request, inventaris sangat volatil, autentikasi server, atau transaksi. Fitur tersebut memerlukan JavaScript browser, API, function, CMS, SSR, atau kombinasi hybrid.

Performa, keamanan, dan hosting

HTML siap kirim dapat mengurangi compute request dan mempermudah cache CDN. Namun, output statis tidak otomatis cepat. JavaScript besar, gambar buruk, font, CSS, dan script pihak ketiga tetap menentukan pengalaman nyata.

Tidak adanya database dan renderer pada request memperkecil sebagian runtime surface. Risiko frontend, supply chain, pipeline deployment, secret, form, API, serta konfigurasi header tetap harus dikendalikan.

GitHub Pages dapat menerbitkan berkas statis atau artifact dari custom Actions. Dokumentasinya menegaskan bahwa runtime PHP, Ruby, dan Python tidak tersedia, meskipun bahasa tersebut dapat dipakai selama build.

Batas

Sumber utama berasal dari dokumentasi vendor dan platform. Bukti mendukung mekanisme umum, bukan klaim bahwa satu generator selalu tercepat, paling aman, atau terbaik untuk semua situs.

Atomik Evergreen