19 juli 2022


6 minuten lezen

Wat is jamstack?

Door Ton Koop

wat is jamstack

Jamstack is de laatste tijd erg populair geworden onder de developers community. Heb je mensen er over horen praten en vraag je jezelf af wat het betekent of waar het over gaat? Lees dan deze blog om erachter te komen wat het is.

In deze blog zullen we je uitleggen wat Jamstack is en hoe je er je voordeel mee kunt doen.

Definitie Jamstack

De definitie van Jamstack

Jamstack is een manier van het samenstellen van de architectuur van de software. Het is gebaseerd op client-side JavaScript, herbruikbare API's, en pre-built Markup (JAM). Deze aanpak is bedacht om websites en applicaties te bouwen die verschillen van een website met een traditioneel CMS. Maar waarom is dit belangrijk?

In de traditionele vorm van web development wordt alles - de inhoud, het ontwerp, en de database, samen beheerd. En als gevolg daarvan is elk onderdeel van de website onderling afhankelijk.

De backend interface is waar de inhoud van de website wordt gemaakt en beheerd, terwijl de database de plek is waar de code op de server wordt opgeslagen. Telkens als de website bezocht wordt, wordt de pagina door de server in elkaar gezet en aan de gebruiker getoond.

Hoewel er fundamenteel niets mis is met deze aanpak (want hij is meestal nuttig), kent hij beperkingen op het gebied van functionaliteit en prestaties. Om dat op te lossen is Jamstack bedacht.

Jamstack biedt betere prestaties, beveiliging, en schaalbaarheid van websites in vergelijking met de traditionele aanpak. Het is gebouwd op veel bestaande tools en biedt een betere productiviteit voor de gebruikers. Jamstack websites maken bovendien geen gebruik van servers om de pagina's bij elke request van de client op te bouwen. In plaats daarvan gebruikt het in de cache opgeslagen pagina's/inhoud.

Een statische website generator wordt gebruikt om de opmaak van de site klaar te zetten in de vorm van sterk geoptimaliseerde statische pagina's en elementen. Dan wordt het naar een Content Delivery Network (CDN) gestuurd, waar de inhoud geserveerd wordt. En als zodanig hoeft de server alleen iets te doen als er nieuwe wijzigingen in de inhoud of bestanden worden aangebracht.

Jamstack Architectuur

De architectuur van Jamstack

Jamstack is geen specifiek framework of technologie, maar eerder een vorm van of benadering voor het bouwen van webapplicaties. Bij Jamstack websites zijn de code (JavaScript), de site infrastructuur (API's), en de inhoud (Markup) gescheiden.

Toen Jamstack werd bedacht, werd het ontworpen om web development zonder servers mogelijk te maken. Dat wil zeggen, om zoveel mogelijk taken van server-side naar de client-side te verschuiven en het aantal server-requests drastisch te verminderen.

Uiteindelijk resulteerde dit in betere prestaties en minder laadtijden wat door de server-requests veroorzaakt wordt.

Zoals we hierboven schreven zijn er drie componenten waarop Jamstack gebaseerd is. Hieronder bespreken we deze componenten:

Javascript

Als je developer bent, zul je bekend zijn met Javascript en wat het doet. Javascript is een programmeertaal die gebruikt wordt om webpagina's interactief te maken. Zonder Javascript kunnen we geen interacties aan onze websites toevoegen, zoals het klikken op een knop, het verzenden van een formulier, enz.

In Jamstack is Javascript, in tegenstelling tot traditionele web-development, losgekoppeld van de inhoud. Daardoor heeft het alle vrijheid voor het optimaliseren van de prestaties. Bovendien kunnen Jamstack apps Javascript gebruiken om met achterliggende services te communiceren (via API's), wat de gebruikerservaring ten goede komt.

API's

Application programming interfaces (API's) worden gebruikt om te communiceren tussen 2 software componenten. Aanvankelijk waren API's ontworpen om tussen server-side toepassingen te worden gebruikt. Met de vooruitgang van Javascript werden web API's ontwikkeld. Met web-API's worden alle activiteiten naar de client-side verplaatst. Developers kunnen nu complexere apps bouwen dan vroeger. Er komen steeds meer retailers die hun producten en diensten via web-API's aanbieden.

Met deze vooruitgang kunnen developers nu diensten als betalingen, authenticatie, beheer en gegevens bij andere tools neerleggen zodat ze niet alles meer zelf hoeven te doen.

Markup

Markup is het eerste deel van je website dat aan de klant wordt geserveerd. Het kan handgeschreven of gecompileerde HTML code zijn. Bij Jamstack websites wordt de HTML niet vanaf een server gerenderd, maar statisch geserveerd.

Statische site generatoren zoals Gatsby, Next.js, Hugo, Jekyll, enz., genereren statische HTML bestanden tijdens het 'build' proces. Dit proces verlaagt de kosten, complexiteit, en risico's van dynamische servers.

Afkorting JAM

Met Jamstack wordt de inhoud aan een Content Delivery Network (CDN) geleverd en dynamisch gemaakt met API's en serverless functies. De technologieën en tools die betrokken zijn bij het opzetten van Jamstack applicaties zijn CDNs, headless CMSs, static site generators, en JavaScript frameworks.

Jamstack de naam

Matt Biilmann en Chris Bach bedachten de naam "Jamstack" (aanvankelijk JAMstack) omdat ze een naam wilden geven aan een andere aanpak voor het bouwen van statische websites. De naam werd bedacht tijdens het ontwikkelen van moderne web-development-workflows en functies bij Netlify. Om het gemakkelijker te maken de architectonische aanpak te bespreken waarin verschillende reeds bestaande web tools zijn geïntegreerd, bedachten ze het woord Jamstack.

Wat zijn de voordelen van Jamstack?

Jamstack websites hebben verschillende voordelen ten opzichte van de traditioneel gebouwde websites. Hier zijn er een paar:

Veiligheid: Omdat de client-side en server-side gescheiden zijn, zullen eventuele beveiligingsproblemen in de frontend code niet leiden tot een inbreuk in de backend. Daarnaast hoef je je geen zorgen te maken over kwetsbaarheden in de database of op de server omdat je website server-loos is.

Schaalbaarheid: Met Jamstack is schaalbaarheid gemakkelijk en betaalbaar. Je web inhoud wordt geserveerd via CDN, en je hoeft weinig rekening te houden met servers of databases. Er ontstaan dus geen problemen, zelfs niet als er massaal verkeer naar je website komt.

Verbeterde prestaties: Websites die met Jamstack gebouwd zijn bieden bezoekers supersnelle laadtijden. Dit omdat ze niet afhankelijk zijn van servers of databases. De meeste dingen die normaal nodig zijn bij het genereren van een webpagina worden omzeild omdat de inhoud in de cache van een CDN staat.

Onderhoudbaarheid: Bij Jamstack websites hoef je geen server te onderhouden omdat je bestanden er niet worden opgeslagen. Je statische website wordt zonder gedoe voor je onderhouden.

Verbeterde ervaring voor ontwikkelaars: Ontwikkelaars kunnen hun favoriete tech stack kiezen zonder tot een bepaalde technologie beperkt te zijn.

Jamstack voor e-commerce oplossingen

Als gevolg daarvan worden ze geconfronteerd met zorgen over hoe ze een betere klantervaring kunnen bieden, hun verkeer kunnen vergroten, nieuwe functies kunnen inbouwen, en nog veel meer. Gelukkig kunnen deze problemen opgelost worden met Jamstack e-commerce.

Met het toenemend aantal online winkels moeten retailers concurreren om relevant te blijven en aan de niet aflatende eisen van hun klanten te voldoen. Als gevolg daarvan worden ze geconfronteerd met zorgen over hoe ze een betere klantervaring kunnen bieden, hun verkeer kunnen vergroten, nieuwe functies kunnen inbouwen, en nog veel meer. Gelukkig kunnen deze problemen opgelost worden met Jamstack e-commerce.

Hieronder staan een paar oplossingen die Jamstack biedt voor online winkeliers:

Flexibiliteit: Omdat de client en server kanten gescheiden zijn in een Jamstack e-commerce app, is er de vrijheid om je goederen op meerdere e-commerce platforms tegelijk te verkopen.

Unieke winkelervaring: Met Jamstack kun je gepersonaliseerde winkelervaringen voor je kopers creëren, zodat je uniek kunt zijn. Shopify biedt bijvoorbeeld Javascript SDK's die gebruikt kunnen worden om een gebruiksvriendelijke ervaring te creëren.

Verbeterde developer experience: Ontwikkelaars hoeven geen full-stack experts te zijn om Jamstack e-commerce toepassingen te bouwen. Ze kunnen API's van e-commerce oplossingen als Shopify gebruiken terwijl ze zich concentreren op het ontwerpen van de websites. Er is dus minder kosten en tijd nodig voor de ontwikkeling.

Jamstack tools om mee aan de slag te gaan

Hieronder staan de tools die je kunt gebruiken om je Jamstack toepassingen te bouwen:

Static Site Generators (SSG's): Deze hulpmiddelen worden gebruikt om statische HTML pagina's te genereren. Voorbeelden van populaire SSG's zijn - GatsbyHugoJekyllNext.js, and Eleventy.

Hosting diensten: Deze diensten stellen je in staat je applicatie op het internet te publiceren - FirebaseNetlifyAWS AmplifyGitHub PagesHeroku.

Headless CMS: Headless CMS tools zijn content beheersystemen waarmee je je inhoud op één plek kunt beheren en die over je gewenste frontend interface kunt inzetten. Voorbeelden zijn StrapiContentfulGetPlateNetlify CMS, and CloudCanoon.

No-code formulieren: Maak interactieve formulieren zonder een stukje code te schrijven met Google FormsFormstackJotForm, and Typeform.

User authenticatie: Je kunt de volgende websites gebruiken om gebruikers op je Jamstack websites te authenticeren: Auth0FirebaseNetlify Identity, and Cloudflare Access.

E-commerce: Je kunt de volgende tools gebruiken om een e-commerce shop op te zetten: ShopifySnipcartand Afosto.

Jamstack Sites / Voorbeelden

Hieronder staan voorbeelden van websites die volgens het Jamstack architectuurpatroon zijn gebouwd.

Vragen over Jamstack

Jamstack is een manier van het samenstellen van de architectuur van de software. Het is gebaseerd op client-side JavaScript, herbruikbare API's, en pre-built Markup (JAM). Deze drie componenten kunnen onafhankelijk van elkaar opereren en daardoor verschilt dit van architectuur met een traditioneel CMS.

Wordpress is een traditioneel CMS en Jamstack is een moderne manier van het samenstellen van je softwarepakket. Met Jamstack ben je niet afhankelijk van 1 systeem zoals met Wordpress. Met de Jamstack filosofie wordt content via Javascript en API's opgehaald en klaargezet als pre-built Markup.

Geschreven door
Ton Koop

Mijn naam is Ton, mede-eigenaar van Afosto en in het bezit van een masterdiploma in International Business and Management. Bij Afosto fungeer ik als een stuwende kracht achter het ondernemerssucces van onze klanten. Mijn diepgaande expertise in e-commerce en mijn passie voor het uitbouwen van bedrijven zijn fundamenteel in mijn werkwijze om retailers te ondersteunen. Met het geavanceerde headless commerce platform van Afosto bied ik inventieve oplossingen die niet alleen de efficiëntie verhogen, maar ook de groei van bedrijven stimuleren. Ik hou er van om mijn kennis te delen zodat we samen succes kunnen hebben.

Meer van Ton Koop