24 januari 2023
Het beste CMS ter wereld
Ik neem je graag mee in mijn gedachten rond mijn persoonlijke top 3 wanneer het neerkomt op ‘het beste CMS ter wereld’.
Vooraf wil ik vast zeggen dat alledrie de CMS systemen in mijn top 3 ‘full-featured’ CMS systemen zijn. Dat betekent dat ze alledrie zaken bevatten als afbeeldingenbeheer, afbeeldingschaling (resizing), formulierafhandeling, statistieken en het beheer van SEO (meta)velden. Geen van deze CMS systemen vereist nog extra diensten om dit soort (basis)functionaliteiten te realiseren.
3. Wordpress
Op plek 3 staat Wordpress. Wordpress is het meest gebruikte CMS ter wereld. Het begon als een ‘monolith’: een CMS dat niet alleen je content opslaat, maar ook tegelijk je website uitspuugt, maar dat is al lang niet meer zo. Wordpress biedt tegenwoordig ook een ingebouwde API aan, zoals je kunt lezen in het Wordpress API handbook. Hiermee kun je data opvragen uit je database, die dan in JSON aan je geretourneerd wordt. Systemen die dit kunnen worden vaak ‘headless’ CMS systemen genoemd. Wordpress is dus een headless CMS en dat is belangrijk wanneer je je data wilt gebruiken voor verschillende toepassingen (bijvoorbeeld een website en een app).
Het grootste nadeel van Wordpress is dat het een open-source CMS is. Hoewel dat betekent dat er geen licentiekosten zijn en dat het relatief gemakkelijk uit te breiden is, betekent dat ook dat elk programmeerfoutje een beveiliginslek kan opleveren. Gebruik je Wordpress, dan moet je je installatie continu bijwerken naar de laatste versie. Doe je dit niet, dan kunnen hackers eenvoudig inbreken en schade aanrichten.
Maar ook dit nadeel is te omzeilen. Wanneer je Wordpress afneemt van Automattic, het bedrijf achter dit open-source CMS, dan zorgen zij dat jouw installatie veilig blijft en leveren ze extra support. Je moet denken aan extra kosten van ongeveer 300 euro per jaar. Besteed je dit uit aan een andere (kleinere) partij, dan betaal je snel het dubbele of meer.
Dan is er nog de techniek achter Wordpress. Wordpress gebruikt een SQL database en PHP. Dit staat in schril contrast met veel moderne CMS systemen uit het Jamstack eco-systeem, die vaak gebruik maken van een ‘flat file system’. PHP en SQL zouden leiden tot veel tragere websites. Dit is echter niet waar, wanneer je gebruik maakt van caching. Wordpress met een goede cache laag is net zo snel als een Jamstack website.
Er is alleen een heel groot nadeel aan Wordpress. Wordpress heeft recent besloten de scheiding tussen content en layout los te laten. Voorheen waren het alleen plugins die je content vervuilden met opmaak, maar tegenwoordig doet Wordpress dit zelf (middels Gutenberg blocks). Dit heeft tot gevolg dat het CMS (in mijn ogen) enorm aan waarde heeft verloren. Je content is na invoer in Wordpress zo goed als waardeloos geworden voor hergebruik. Niet alleen omdat er nu allerlei comments in staan waar een andere weergave weinig aan heeft, maar ook omdat de gebruiker van het CMS mee kan gaan beslissen over het vereiste of gewenste opmaak. Dit maakt per definitie iedere afwijking daarvan fout.
Laat ik een voorbeeld geven. In Wordpress kun je het aantal kolommen waarin een pagina moet worden weergegeven instellen. Dit is natuurlijk in werkelijkheid afhankelijk van het medium, de gekozen lettergrootte en de schermgrootte. Door de gebruiker hiervoor te laten kiezen ontstaat er een rare situatie. De gebruiker ziet een voorbeeld van 3 kolommen op zijn scherm, terwijl in realiteit er vaak maar 1 kolom wordt getoond.
Maar het kan nog veel erger. Je kunt ook een ‘carrousel’ in je content zetten of een ‘cover image’. Dit zijn typisch dingen die in de layout thuis horen en niet ergens (midden) in de content.
Tenslotte kan de vrijheid om allerlei layout variaties te bedenken, ook nog eens leiden tot het minder gestructureerd opslaan van de data. Je kunt immers bepaalde eigenschappen ‘altijd in de rechterkolom’ zetten, waar het veel beter was geweest als je de pagina had verreikt met extra velden.
Kortom… Wordpress is een goed en zeer populair systeem, dat onder bepaalde omstandigheden ook nog best betaalbaar is, maar het gebrek aan scheiding tussen layout en content maakt het niet mijn nummer 1.
2. CloudCannon
CloudCannon heeft een hele strikte scheiding tussen layout en content en heeft daarom mijn voorkeur boven Wordpress.
CloudCannon is een CMS uit dit Jamstack eco-systeem. Het biedt een heel gebruikersvriendelijke interface om de inhoud van zo’n Jamstack website aan te passen. CloudCannon is gebaseerd op verschillende ‘static site generators’ (website generatoren) en begon ooit met de website generator ‘Jekyll’. Zo’n website generator heeft geen cache laag nodig om heel snel te zijn. Daardoor is de complexiteit van een dergelijk oplossing veel lager dan die van een Wordpress website.
De content van zo’n Jamstack website bestaat bovendien uit simpele tekstbestanden. Om hier een website van te maken moet er echter wel een ‘build step’ (bouwstap) uitgevoerd worden. In deze stap wordt de website gegenereerd. Afhankelijk van de website generator en het platform dat je gebruikt gaat dit razendsnel of behoorlijk traag.
In het geval van CloudCannon gaat dit niet erg snel, omdat zij in hoge mate gebruik maken van virtualisatie. Dit betekent dat zij een virtuele computer opstarten voor iedere opdracht die je ze geeft. Dit leidt uiteraard tot enorm veel vertraging. Hierdoor moet je vaak meer dan een minuut wachten op het verschijnen van je wijzigingen op je website. CloudCannon is niet de enige die dat doet, eigenlijk vrijwel elk Jamstack platform is gebaseerd op virtualisatie. Alleen bij Gatsby Cloud hoef je niet eindeloos op refresh te drukken na een wijziging.
Toen CloudCannon begon waren de kosten voor het CloudCannon CMS veel lager dan de kosten voor Wordpress. Dat is logisch, wanneer je je realiseert dat een partij als Github meer dan een miljoen Jekyll websites op een enkele server kan draaien. Zeker wanneer je je realiseert dat de gemiddelde VM al snel bezwijkt onder de druk van een enkele Wordpress installatie. De kosten voor hosting van Jekyll websites zijn vrijwel nihil en dit zag je terug in de prijs voor het CMS. CloudCannon heeft zijn prijzen echter enorm verhoogd en tegenwoordig is CloudCannon qua kosten vergelijkbaar met Wordpress (als niet duurder). Daarmee hebben ze een groot (potentieel) voordeel teniet gedaan.
Een ander pikante feit is dat CloudCannon zijn hosting inkoopt bij Cloudflare. Een klant van ons kreeg plotseling een piek in bezoekers, doordat zijn naam meerdere malen werd genoemd op de nationale televisie. Cloudflare ‘kneep’ vervolgens de verbinding af, waardoor de website feitelijk down ging. Cloudflare staat bekend om zijn DDOS bescherming… maar DDOS bescherming beschermt dus ook tegen succes! Niet uniek voor CloudCannon maar wel goed om te weten. Cloudflare heeft inmiddels zijn excuses gemaakt en beterschap beloofd.
Kortom… CloudCannon is een slim en modern systeem met een nette scheiding tussen layout en content, maar door zijn relatief hoge prijs, trage builds en slechte hosting ook niet mijn nummer 1.
1. Usecue CMS
Wij hebben Usecue CMS zelf gebouwd. Het is gebaseerd op Hugo. Hugo is de snelste website generator van de wereld die pagina’s in minder dan een milliseconde kan bouwen. Een pagina met een paar honderd pagina’s bouw je dus gemakkelijk in minder dan een seconde. De resterende milliseconden gebruiken we voor de ‘deploy’ (het live zetten van de gegenereerde pagina’s). Zo kun je, net als in Wordpress, op publish klikken en het resultaat direct bekijken. Dat klinkt logisch, maar dat is verre van gebruikelijk in het Jamstack eco-systeem. CloudCannon doet daar bijvoorbeeld vaak heel veel langer over.
Toch heeft ons CMS veel meer overeenkomsten met CloudCannon dan met Wordpress. We hebben ook een strikte scheiding tussen layout en content en maken net als CloudCannon gebruik van versiebeheer (Git) en van een ‘flat file system’. Net als in CloudCannon kun je in Usecue CMS je website dagelijks laten herbouwen, waardoor je website niet van een dynamische website te onderscheiden is. Ook gebruiken wij het ‘zero-config’ principe, dat in lijn is met hoe CloudCannon website inleest en wat het koppelen van je website aan ons CMS een fluitje van een cent maakt. Tenslotte kun je JSON output laten genereren, waardoor je Usecue CMS ook perfect als headless CMS kunt gebruiken.
Er zijn ook verschillen. Allereerst dat we geen Cloudflare gebruiken (of aanraden) voor de hosting. Hierdoor is je website altijd online, ongeacht het succes of de geografische locatie van je bezoeker. Daarnaast gebruiken we geen virtualisaties, waardoor je wijzigingen direct live staan. Een leuke extra is onze referentieteller. Hiermee tellen we hoe vaak een afbeelding gebruikt wordt, wat het eindelijk makkelijk maakt om die enorme bak met geuploade afbeeldingen op te ruimen. Tenslotte is ons CMS ‘mobile-first’ gebouwd, wat betekent dat het net zo goed werkt op je mobiel als op je desktop. Hierdoor kun je overal en altijd wijzigingen maken aan je website.
In Usecue CMS hebben we geprobeerd om eenvoud en techniek met elkaar te verenigingen. De eenvoud zie je terug in de layout van het systeem, maar ook in hoe het gebouwd is. De techniek komt terug in het monospace lettertype, maar ook het gebruik van bijvoorbeeld de term commit voor het opslaan van je wijzigingen in het versiebeheer.
Kortom… voor mij is Usecue CMS niet alleen het beste CMS voor Hugo, maar ook het beste CMS ter wereld. Het heeft een strikte scheiding tussen content en layout, levert je lichte hosting op, kan gebruikt worden als headless CMS, het ziet er eenvoudig uit en het is razendsnel. Het is alles wat een modern CMS moet zijn. Usecue CMS is dan ook niet voor niets mijn nummer 1. Maargoed… aangezien ik het zelf gebouwd heb, is het logisch dat ik dat vind. Wat vind jij? Ik hoor het graag.
Meer informatie over Usecue CMS vind je overigens op https://cms.usecue.com/.
() Joost van der Schee