Less is more
Veel CMS’en zijn gebouwd voor dynamische content en frequente updates, alleen in de praktijk is dit vaak niet nodig. Dit maakt websites vaak onnodig complex. Niet alleen voor de developer, maar ook voor beheerders en schrijvers. Voor veel projecten is een moderne, lichte aanpak een betere keuze. In dit artikel leg ik je graag uit wat onze aanpak is en waarom deze vaak beter past.
Git
Om te begrijpen wat Sveltia CMS is, moet je eigenlijk eerst weten wat Git is.
Waarom Git
Git is een versiebeheertool ontwikkeld door Linus Torvalds, de maker van het besturingssysteem Linux. Eigenlijk heet het GNU/Linux. Tijdens dat hij bezig was met dit gigantische open source-project kwam hij tot de conclusie dat de bestaande tools voor het beheren van code eigenlijk niet goed genoeg waren. Dus hij ging zelf aan de slag, en minder dan een maand later werd Git uitgebracht en geadopteerd door andere open source maintainers die het verder hebben uitgebouwd tot wat het nu is.
Wat doet Git
Git is dus een versiebeheersysteem dat ontwikkeld is voor het bijhouden van veranderingen in code, maar vooral voor het samenwerken met andere developers. Elke keer als je iets aanpast of iets toevoegt, wordt dit opgeslagen en wordt er bijgehouden wat je hebt aangepast, wanneer en niet geheel onbelangrijk wie het heeft aangepast. Daarnaast is het ook mogelijk om te werken in verschillende branches. Dit is heel handig als je met meerdere mensen tegelijk werkt aan een project, zodat iedereen op zijn eigen ‘aftakking’ aan het werk is.
Het is licht, snel en open source en dit maakt het enorm populair. Daarom is het de standaard geworden voor developers. Er zijn een aantal (commerciële) platformen om Git heen gebouwd, zoals GitHub, GitLab of Bitbucket.
Wat is Sveltia CMS
Nu je weet wat Git is, weet je eigenlijk al hoe Sveltia CMS werkt aan de achterkant. Sveltia CMS heeft zelf geen backend, het gebruikt namelijk Git, want het is een Git-based CMS.
Geen backend
Het grootste voordeel van Sveltia CMS is dat je geen eigen backend hoeft te hosten. Zoals je normaal gesproken bij bijvoorbeeld WordPress zou doen. Bij WordPress heb je dus hosting nodig die het systeem draait en bijhoudt welke pagina’s en blogposts je allemaal hebt. En ook wie er allemaal een account heeft en dit opslaat in een database. En dit moet ingesteld worden en dan ook nog veilig en up-to-date blijven. Dit probleem heb je dus niet bij Sveltia.
Hoe werkt Sveltia CMS
Sveltia CMS runt dus alleen in je eigen browser en communiceert met een Git backend. Je logt in, past bestanden aan, en Sveltia geeft het door aan Git. Alles wordt opgeslagen in platte statische tekstbestanden zoals Markdown of YAML in Git, dit maakt het dus super simpel tijdens het ontwikkelen. En het is ook nog eens supersnel.
Static Site Generation (SSG)
Sveltia CMS werkt perfect in combinatie met een SSG-website; wij gebruiken het liefst het Astro framework. De focus van het Astro framework ligt vooral op snelle en lichte websites, maar het is ook super flexibel en uit te breiden met de meeste client side frontend frameworks zoals Svelte, React en Vue. Een SSG website werkt net wat anders dan de meeste websites. Het grootste voordeel is eigenlijk performance en development experience (DX).
Het verschil
Een traditionele WordPress website die wacht tot iemand een webpagina aanvraagt, en genereert dan dynamisch de pagina en geeft deze terug. Dit is dus eigenlijk server side rendered (SSR). Daarnaast heb je ook nog client side rendered (CSR), alleen dit is niet van toepassing bij de meeste websites. Dus neem bijvoorbeeld een blogpagina. Een gebruiker vraagt deze pagina aan, dan ontvangt WordPress deze aanvraag. Vervolgens doet het een databasequery voor de inhoud van de blog voor de titel, categorieën, auteur, etc. Hierna bekijkt hij welke info waar op de pagina moet en zet hij dit om in HTML die je browser kan weergeven. Nu wordt er meestal wel gebruikgemaakt van caching, dit maakt het een stuk efficiënter. Maar er wordt dus bij elke aanvraag redelijk wat code uitgevoerd op de WordPress server om de webpagina terug te geven aan die gebruiker.
Bij static site generation worden alle pagina’s gegenereerd in één keer, nadat je iets hebt aangepast of iets hebt toegevoegd bijvoorbeeld. Het enige probleem is dus wel dat als je iets aanpast, de website opnieuw moet worden gegenereerd. Gelukkig duurt dit meestal niet meer dan een minuutje. Maar het grootste voordeel is dus dat op het moment dat een gebruiker een van de pagina’s wil bekijken, de server niks meer te genereren heeft, want de pagina ligt al klaar.
CDN netwerk & Edge computing
Een CDN, simpel uitgelegd. Content Delivery Network, een grote groep servers die overal op de wereld staan en jouw content of code zo snel mogelijk aan gebruikers serveren. Waar ze ook zijn, er staat altijd een server in de buurt.
Edge computing gebruikt dezelfde aanpak alleen is het ook mogelijk om logica en dus code uit te voeren op die servers. Hierdoor verdeel je het verkeer, en weet je dat je website of API altijd en overal snel is.
Zoals gezegd: alle pagina’s worden bij SSG kant-en-klaar opgeslagen, klaar om verstuurd te worden naar bezoekers. Het zijn dus platte statische bestanden. Precies om die reden is het perfect om te serveren op een CDN of edge network. Dit betekent dat je website van wel honderden edge-locaties wordt geserveerd op de wereld.
Je website wordt dus supersnel geserveerd door de dichtstbijzijnde edge-locatie
Voor- en nadelen
Hieronder zet ik nog eens alles op een rijtje voor Sveltia CMS in combinatie met een SSG framework zoals Astro. Maar zoals iedereen weet, heeft alles voor- en nadelen.
Pro’s
- Geen backend
- Modern UX
- Flexibel en Framework agnostic
- Meertalige ondersteuning (i18n)
- Open source
Con’s
- Aanpassingen zijn na een minuut zichtbaar
- Geen plugins en een kleinere community
- Geen uitgebreide block editor
- Minder goed voor teams
De conclusie
Sveltia en Astro is tegenwoordig de standaard techstack die we aanbieden. Snel, licht en flexibel. Dit maakt het perfect voor ons en veel van onze klanten. We kunnen snel een contentstructuur opzetten en een frontend perfect op maat bouwen met moderne tooling van Astro. Maar wat misschien nog wel het belangrijkst is, is het moderne en simpele interface, zodat onze klanten super simpel zelf hun website kunnen aanpassen.