Jamstack is een moderne architectuur voor het bouwen van websites en webapplicaties die zich kenmerkt door een fundamenteel andere aanpak dan traditionele webontwikkeling. De naam Jamstack is een acroniem dat staat voor JavaScript, API's en Markup, de drie kerncomponenten van deze architectuur.
In tegenstelling tot traditionele websites waarbij de pagina's dynamisch worden gegenereerd op het moment dat een bezoeker ze opvraagt, worden Jamstack-sites vooraf gebouwd (pre-rendered) en geserveerd als statische bestanden. Dit betekent dat alle HTML-pagina's al klaarstaan voordat iemand ze bezoekt, wat resulteert in extreem snelle laadtijden.
De drie pijlers van Jamstack
JavaScript zorgt voor alle dynamische functionaliteit en interactieve elementen aan de clientzijde. Dit kan vanilla JavaScript zijn of moderne frameworks zoals React, Vue of Svelte.
API's worden gebruikt voor alle server-side operaties en database-acties. In plaats van een monolithische backend, communiceert de frontend via API's met verschillende services zoals headless CMS-systemen, e-commerce platforms, of authenticatiediensten.
Markup verwijst naar de vooraf gegenereerde HTML die tijdens de build-tijd wordt gecreëerd. Deze statische bestanden vormen de basis van de website en kunnen worden gegenereerd uit templates, Markdown-bestanden of een headless CMS.
Belangrijkste kenmerken
De Jamstack-architectuur onderscheidt zich door volledige ontkoppeling van frontend en backend. De presentatielaag (wat gebruikers zien) is volledig gescheiden van de data en business logic. Dit biedt ontwikkelaars meer flexibiliteit in de keuze van tools en technologieën.
Jamstack-sites worden gehost op Content Delivery Networks (CDN's), waardoor de bestanden vanaf servers over de hele wereld kunnen worden geserveerd. Dit zorgt voor snellere laadtijden, ongeacht waar de bezoeker zich bevindt.
Door gebruik te maken van moderne build-tools en static site generators zoals Next.js, Gatsby, Hugo of Eleventy, kunnen ontwikkelaars krachtige, performante websites bouwen met een uitstekende developer experience.
