Jamstack

Architecture

30 Jul 20233 min

Apa itu Jamstack

"Jamstack" yang sebenarnya adalah JAM dan stack dimana JAM adalah akronim dari JavaScript, API & Markup. Sebuah arsitektur yang memisahkan web layer dari data dan business logic.

JavaScript

API

Markup

JAM

  • JavaScript

    Semua fungsionalitas dilakukan oleh JavaScript, seperti request API atau merender halaman statis. Banyak library atau framework yang bisa digunakan sesuai kebutuhan.
  • APIs

    Server side operation seperti koneksi ke database atau terhubung ke third-party services.
  • Markup

    Pre-render halaman statis HTML yang dikirimkan ke borwser, di-generate dari Markdown atau dengan Static Site Generator.

Workflow

Jamstack Workflow

Setiap push ke Version Control System akan trigger build di CDN dimana SSG - Static Site Generator akan dijalankan, proses ini kemudian menghasilkan static asset yang dikirim ke browser. Datasource umumnya menggunakan HeadlessCMS yang memudahkan untuk mengatur content seperti Strapi, Contentful, Sanity.io.

Keuntungan

  • Performance

    Jamstack generate page selama build sehingga hanya static yang terkirim. Layanan CDN dapat menerima request dengan cepat tanpa infrastruktur kompleks
  • Developer Experience

    Sangat banyak variasi teknologi yang bisa digunakan. Developer punya kebebasan untuk memilih framework, trhid-party APIs yang mempercepat proses development dan menyenangkan untuk dilakukan.
  • Security

    Kita tidak perlu khawatir dengan keamanan karena aplikasi terpecah menjadi beberapa layanan.
  • Scalability

    Dengan CDN mudah untuk mengatur traffic

Development

Untuk generate halaman asset HTML banyak cara yang dilakukan.

Hand Coding

Menulis HTML untuk halaman yang sederhana.

Static Site Generator

See more SSG


Deployment

See more Hosting & Deployment


CMS

Secara umum dikenal dengan HeadlessCMS untuk mengatur content.

See more Headless CMS


Static Web Service

List untuk layanan yang bisa digunakan awesome-static-website-services


Referensi

Jamstack org * Jamstack WTF * Contentful * jamstack-architecture-and-scenarios *