Een goed CMS kiezen? Ontdek hoe wij dit deden voor onze klant!

In het digitale tijdperk is een website zonder contentmanagementsysteem, afgekort CMS, onmisbaar. Dit soort systemen bieden immers de gebruiksvriendelijkheid en de mogelijkheid om zelf aan de slag te gaan. En dat is nodig, want met een dynamische website oogst je beduidend meer succes dan met een statische website. Recent maakten we bij een klant de vergelijking tussen een aantal contentmanagementsystemen (CMS). Met deze vergelijking was het de bedoeling een future-proof CMS te kiezen om hun web platform optimaal te ondersteunen.

De eerste selectie contentmanagementsystemen

De belangrijkste factor bij het selecteren van een gepast CMS voor onze klant was dat dit een headless systeem was. Ben je niet helemaal bekend met dit type CMS? Lees dan zeker onze blogpost om je kennis aan te vullen!

De markt bestaat uit een variëteit aan headless Content Management Systemen. Wij namen vier van deze onder de loep. We maakten deze shortlist op basis van aanbevelingen, research, eigen kennis en een sessie die we bijwoonden tijdens de React Live Conference. Aan de start van onze selectie bestond onze shortlist uit de volgende vier CMS platformen:

  • Prismic
  • Strapi
  • Contentful
  • Sanity

Een vergelijking van onze top 4 contentmanagementsystemen

Prismic

Prismic is een Cloud hosted contentmanagementsysteem dat het mogelijk maakt om content op te halen met een REST- of GraphQL API. Ze bieden automatische image optimalisatie, een “no server maintenance omgeving” en een groeiend ecosysteem aan. Daarnaast geniet je met Prismic van vele features zoals een ongelimiteerd aantal locales, API-calls, assets, image optimalisaties, documenten & content types met 100 GB built-in CDN-ruimte. Het is mogelijk om een persoon in de free tier Prismic te laten gebruiken. Voor zo’n 7 Dollar/maand heb je drie gebruikers en voor maar 15 Dollar stel je maar liefst 7 gebruikers in. Als er nood is aan geavanceerd rechten en rollenbeheer, moet je een wat duurder pakket aanschaffen van 100 Dollar/maand. Tenslotte bieden ze ook webhooks aan.

Een zeer groot voordeel was dat onze klant reeds bekend en ervaren was met het Prismic CMS. De User interface van Prismic is eerder eenvoudig, maar dit heeft zeker zijn voordelen. Omdat het rollenbeheer binnen een eerder dure subscriptie valt, is er wel een kans dat gebruikers aanpassingen doorvoeren die niet in het content type creatie zijn. De Prismic omgeving verder optimaliseren of personaliseren met Third Party Plug-Ins is naar onze observatie geen mogelijkheid.

De referenties op de website van Prismic zijn alvast wel heel sterk. Zo is o.a. Netflix, McDondalds, Raspberry Pi & Spotify gebruiker en klant bij hen.

Strapi

Strapi is een open-source personaliseerbaar CMS. Helaas is Strapi niet beschikbaar als SaaS oplossing, dus je moet zelf voorzien in de hosting. De integratie met het CMS kan op basis van een REST API en GraphQl API. Net zoals Prismic biedt Strapi ook webhooks en ongelimiteerd gebruik van bijvoorbeeld entries, API-calls, assets, locales etc.. Daarbovenop is het mogelijk om tot 3 default roles van de CMS af te schermen voor onbevoegden. Enkele andere opties zijn:

  • Ongelimiteerd aantal users
  • Een grote community van developers die je te hulp staan bij mogelijke problemen
  • Een heel flexibele content structuur.

Een extra voordeel van Strapi is dat hun API aanpasbaar is in de code editor. Zo is het CMS afgestemd op de noden van de eindgebruiker. Voorbeelden van deze personalisaties zijn: custom of extra endpoints om specifieke content op te halen en te sorteren naar wens. Sinds Strapi 4 is het nodig om je eigen database te koppelen aan het systeem (enkel met een PostgreSQL & MySQL database en niet meer met een MongoDB of MariaDB).

De User Interface die Strapi aanbiedt is volgens ons intuïtiever en moderner. Er zijn weinig verschillen tussen het gratis community plan en het bronze plan dat voor 9 dollar/maand beschikbaar is.

In hun portfolio zitten bedrijven als Toyota, IBM, NASA, Walmart, Accenture, Orion health etc.

Contentful

Contentful is een grotere speler op de CMS-markt die een eerder beperkte free tier aanbiedt met 2 gebruikers, tot 5 active users en 2 locales. Ze hebben een ongelimiteerd aantal API-calls, tot 25.000 asset records en .75 TB bandwidth. Contentful CMS kan gebruikt worden met REST & GraphQL. Als je naar het volgende tier wil gaan betaal je al snel 489 dollar/maand. Een hoge som die niet voor elke klant even aantrekkelijk is. Helaas ook de reden voor ons om niet verder te kijken naar de optes.

Contentful wordt onder andere al gebruikt door: Danone, Atlassian, ShiSeido, Equinox, GoodRx, Staples etc.

Sanity

Sanity hebben we ontdekt via een conferentie die we met enkele van onze developers bijwoonden in Amsterdam (React Live). Het is een open-source CMS met de mogelijkheid om real-time content aan te passen met andere users. Met Sanity kan je data types en UI te personaliseren met third-party plugins en dat maakt dit CMS heel vergelijkbaar met Strapi. In tegenstelling tot Strapi is Sanity volledig cloud-hosted. Dit maakt de gebruikservaring eenvoudiger en werken ook minder ervaren gebruikers zonder problemen in dit CMS. Hiernaast bieden ze ook een advanced version control aan, zo kan je alle aanpassingen opvolgen en reviewen wanneer nodig. Helaas is het ophalen van data enkel mogelijk met GraphQL of hun eigen GROQ API.

In hun free tier zit:

  • Een ongelimiteerd aantal admin users
  • 3 non-admin users
  • Een ongelimiteerd aantal locales
  • 100.000 API-calls per maand
  • 5GB Asset storage
  • 500.000 CDN requests/maand
  • 10GB bandwidth/maand.

Overschrijden van het quota betekent gelukkig niet dat er direct opgeschaald moet worden naar het volgende plan. Dat is het voordeel van het pay-as-you-go model van Sanity. Afhankelijk van welke quota overschreden is, rekent Sanity 1 dollar per extra request aan.

Ook het portfolio van Sanity bestaat uit enkele zeer mooie klanten zoals: Netlify, Nike, Figma, Sonos, Flex, Movember, reMarkable etc.


Het juiste CMS kiezen

Om de meest optimale keuze te maken voor onze klant, namen we al de functionaliteiten van de bovenstaande contentmanagementsystemen onder de loep.

De stack van onze klant werkt met een REST API en dit maakt het niet ideaal om beide te combineren. Sanity was dus geen optimale optie vanwege het feit dat zij enkel GraphQL en hun eigen API aanbieden. Desondanks was dit CMS een waardige tegenstander in de selectie van headless contentmanagementsystemen.

Wegens de hoge kost werd ook Contentful niet gekozen. Het is de bedoeling om naar de toekomst toe schaalbaar te blijven. Ook Prismic was niet de beste keuze voor onze klant. Zij werken namelijk met developers, marketeers en copywriters. Dat maakt dat ze graag de bevoegdheid van bepaalde gebruikers limiteren.

Op basis van eliminatie komen we dan uit bij Strapi. Het CMS waar we alle nodige features in terugvinden in een aantrekkelijk geheel.

Onze ervaring met Strapi

Ondertussen hebben we Strapi ook al vlot geïmplementeerd bij onze klant. De hosting gebeurt via Digital Ocean. Het grootste pluspunt dat we opmerken is dat Strapi heel flexibele content types kan aanmaken en zo heel dynamische pagina’s kan opzetten. De mogelijkheden om je systeem uit te breiden of te personaliseren zijn ook bijna eindeloos. Er komen trouwens vrij frequent nieuwe plug-ins op hun plug-in market. Toen we begonnen met Strapi bevonden we ons nog in een vroege versie van hun nieuwe major release 4.0. hierdoor waren er wel wat kleine bugs hier en daar, maar ondertussen merken we hier niets meer van. Ook updaten naar een nieuwe versie gaat momenteel vlekkeloos. Hetgeen fijn is voor zowel ons als de klant is dat het CMS een eigen CLI en backend code heeft. Daarmee is het mogelijk alles naar eigen wens te customizen. De projectstructuur gebruikt het MVC patroon (Model-view-controller) en is geschreven in Javascript/Typescript gebaseerd op Koa, een backend JavaScript framework. Tenslotte heeft Strapi ook een leuke bijkomstigheid en dat is de community. Deze is zeer actief waardoor je met vragen of issues snel terecht kan op het Strapi forum of op hun actieve Github pagina.

Uit onze ervaring met het ophalen van de data hebben we gemerkt dat een API handiger zou werken in samenwerking met GraphQL API, in plaats van een REST API. Waarom is dit onze ervaring? Dat leggen we uit aan de hand van een voorbeeld:
Stel: In een blogging applicatie, moet een app de artikels van een specifieke gebruiker weergeven. Zo'n artikel bevat een title (tekst), omschrijving (tekst), foto (foto object) en een publicatie datum (tekst). Met een REST API spreek je een end-point aan zoals: https://api-url.be/blog/jens. Via deze URL krijg je dan een JSON object waarin je titel, omschrijving en publicatie datum staan. Wil je ook de foto terugkrijgen? Dan moet je dit manueel gaan opvragen en je end-point aanpassen. Deze zal er dan als volgt uitzien voor de foto URL: https://api-url.be/blog/jens?populate=foto.url voor 1 extra veld is dit nog overzichtelijk, maar dit wordt al snel lang en veel naar gelang je content/data complexer wordt. Met GraphQL moet je sowieso in je query alle velden meegeven die je wil ophalen, hierdoor heb je meer controle over de het JSON object dat je terug krijgt en blijft je code ook meer leesbaar.

Ben je als onderneming zelf nog op zoek naar de beste manier om jouw website en content online te zetten? Het development team van Unikoo helpt je graag verder! Contacteer ons hier!


logo's CMS