Strapi: het open-source headless Content Management Systeem

Blog

In de snel veranderende wereld van Front-End development is er behoefte aan flexibele en schaalbare oplossingen. Een nauw met elkaar verworven systeem is niet altijd schaalbaar en flexibel en kan daardoor moeilijk meebewegen met business requirements en development-behoeften.

Om deze flexibiliteit te bieden, kan gebruik worden gemaakt van een headless oplossing: een architectuur waarbij de Front-End applicatie losgekoppeld wordt van de Back-End. Omdat de content op deze manier losstaat, kunnen ontwikkelaars elk gewenst framework gebruiken. Dit maakt development flexibel en toekomstbestendig.

Strapi is zo’n headless content management systeem (CMS) dat is ontworpen om de ontwikkeling en distributie van content te versimpelen. Strapi is open-source, wat inhoudt dat het gratis te gebruiken en aan te passen is zonder licenties. Vanwege de API-first benadering van Strapi, kan het naadloos worden geïntegreerd met andere systemen en technologieën en dit is tevens één van de redenen waarom wij bij ShareValue deze tool zijn gaan inzetten voor onze eigen website. De afgelopen maanden heb samen met mijn teamgenoten Divan, Dylan, Jacques, Johan, Raymon en Wietze dit cms goed leren kennen en daarmee de website waar je je nu op bevindt gebouwd. Graag vertel ik over dit proces en onze learnings.

strapi content editor.png Figuur 1: de content editor van Strapi

Kernfuncties

Headless architectuur

Zoals hierboven al kort is benoemd, is Strapi een headless oplossing. Headless duidt op een architectuur waarbij de Front-End applicatie is losgekoppeld van de Back-End. Dit kan daardoor ook eenvoudig op verschillende machines gehost worden. Bij traditionele CMS’en zijn de Back-End en Front-End vaak nauw met elkaar verbonden. Bij een headless CMS is deze Front-End volledig verwijderd. In plaats daarvan biedt het CMS manieren om de content te distribueren, zoals door het gebruik van een REST API of GraphQL.

Omdat de content losstaat van de presentatie, kunnen applicaties in elk gewenst Front-End framework worden opgezet en gemakkelijk gebruik maken van de data. Hierdoor kunnen bijvoorbeeld zowel web-applicaties als mobiele applicaties gebruik maken van dezelfde databron zonder dat dit afhankelijk is van elkaar. Zonder de overhead van een vooraf bepaalde Front-End komt dit de performance van dergelijke applicaties ook weer ten goede. Daarnaast is het opzetten van een headless oplossing ook zeer toekomstbestendig. Als de Front-End technologie veroudert, hoef je alleen de Front-End aan te passen en geen compleet nieuwe software stack op te zetten.

Self-hosted vs. Cloud-hosted

Strapi biedt zowel de mogelijkheid om de applicatie zelf te hosten als een cloud-hosted variant te nemen. Beide hebben hun eigen voor- en nadelen. Wanneer Strapi zelf gehost wordt, heeft de organisatie de volledige controle over de software en de configuratie. Op deze manier zijn aanpassingen aan Strapi eenvoudiger te doen en zijn er geen terugkerende kosten die men bij een cloud-hosted variant wel heeft. Het nadeel van een self-hosted oplossing is dat hierbij het beheer en onderhoud volledig in eigen handen valt. Dit maakt de schaalbaarheid minder eenvoudig en kan mogelijk meer kosten met zich meebrengen.

De cloud-hosted oplossing die Strapi biedt is erg eenvoudig opgezet en biedt tevens support (mate van support afhankelijk van het hosting-abonnement). De cloud-dienst kan eenvoudig worden opgeschaald en vergt weinig onderhoud vanuit de organisatie.

Flexibiliteit en aanpasbaarheid

Strapi is aanpasbaar naar de behoeften van de organisatie. Ondanks dat de kern van Strapi de meeste benodigdheden bevat voor een functionerende applicatie, kan het zijn dat er bepaalde aanvullende pakketten gewenst zijn om extra functionaliteit aan het CMS toe te voegen. Hiervoor heeft Strapi plug-ins die eenvoudig kunnen worden toegevoegd. Strapi ondersteunt built-in plug-ins, ontwikkeld door het team van Strapi zelf, maar kent ook een marktplaats aan third-party plug-ins waarmee nieuwe functionaliteit kan worden toegevoegd. Denk hierbij bijvoorbeeld aan SEO, versiebeheer voor content, Google Authenticatie en nog veel meer.

Screenshot strapi plugins.png Figuur 2: verschillende plug-ins om met Strapi te gebruiken

Gebruikersrollen en -rechten

Om de content in het CMS goed te kunnen beheren, dienen verschillende gebruikers gebruik te kunnen maken van het admin panel van Strapi. Hierin kunnen zij content toevoegen, bewerken, verwijderen en plug-ins instellen. Om dit beheer in goede banen te leiden, kan er gebruik worden gemaakt van rollen met rechten. Zo kan een gebruiker met admin-rechten andere gebruikers rechten verschaffen en onttrekken, maar kan iemand met een rol “Editor” enkel content beheren. Door middel van deze rollen blijft het CMS beheersbaar.

Voor- en nadelen

Voordelen

Hierboven ben ik al kort ingegaan op een aantal van de voordelen van Strapi, maar hieronder som ik ze nog even kort voor je op:

  • Snelheid en efficiëntie Vanwege zijn headless architectuur kan in Strapi snel nieuwe contenttypes worden toegevoegd die daarna direct beschikbaar is voor iedere applicatie. Dit maakt het ontwikkelproces snel en efficiënt en kan iedere ontwikkelaar zich op zijn eigen werkzaamheden focussen.
  • Flexibiliteit in design en Front-End Door de headless architectuur kent Strapi geen thema-beperkingen en is de keuze voor het Front-End framework flexibel. Blijkt de gekozen Front-End na een tijd achterhaald? Dan is het switchen naar een nieuwe omgeving gemakkelijk gedaan zonder dat de hele Back-End architectuur opnieuw opgebouwd moet worden.
  • Schaalbaarheid en prestaties Vanwege de moderne architectuur kan Strapi snelle responsetijden bieden bij het ophalen van data uit de API. Daarnaast is het CMS zeer schaalbaar door bijvoorbeeld hun cloud-oplossing.
  • Support Strapi biedt goede support in het geval er wordt gekozen voor de cloud-hosted variant.

Nadelen

  • Leercurve en community Hoewel Strapi is ontworpen om gebruiksvriendelijk te zijn, kan het voor sommige gebruikers een grote leercurve hebben. Zeker wanneer zij niet bekend zijn met het headless concept en het werken met moderne JavaScript-ecosystemen. Doordat Strapi nog relatief jong is, is de community nog niet zo groot als bijvoorbeeld voor WordPress. Toch lijkt de community de laatste jaren sterk te groeien.
  • Updates en verandering Mede omdat Strapi nog relatief nieuw is, is het nog een snel veranderend platform. Hierdoor zijn er frequente updates en veranderingen wat kan leiden tot compatibiliteitsproblemen. Het is daarom belangrijk alert te zijn op zulke brekende veranderingen.

Strapi.full.logo.dark.png

Conclusie

In de dynamische wereld van Front-End development is het essentieel om te beschikken over systemen die flexibel en schaalbaar zijn. Strapi kan vanwege zijn losgekoppelde architectuur die een scheiding aanbrengt tussen de Front-End en Back-End een hele goede tool zijn om in te zetten voor jouw applicatie. Deze aanpak biedt namelijk de vrijheid om elk gewenst framework te kiezen, wat de ontwikkeling toekomstbestendig maakt.

Het feit dat Strapi zowel self-hosted als cloud-hosted oplossingen biedt, geeft organisaties de mogelijkheid om te kiezen wat het beste bij hun behoeften past. Bovendien staat aanpasbaarheid centraal bij Strapi, wat zichtbaar is in de uitgebreide plug-in-mogelijkheden en het beheer van gebruikersrollen en -rechten. Hoewel er talrijke voordelen zijn, zoals snelheid, flexibiliteit, schaalbaarheid en support, zijn er ook uitdagingen, zoals de leercurve voor nieuwe gebruikers en de frequente updates die compatibiliteitsproblemen kunnen veroorzaken. Desondanks blijft Strapi een veelbelovend CMS voor moderne web-ontwikkeling, met een groeiende community die steeds meer bijdraagt aan zijn evolutie en stabiliteit.

Ben je geïnteresseerd geraakt in Strapi? Ik zou iedereen willen aanraden om het CMS eens te gebruiken. Strapi is gemakkelijk op je lokale machine op te zetten en biedt out-of-the-box veel mogelijkheden om snel een leuk project te beginnen. Ik kan je zeker aanraden de documentatie van Strapi eens te bekijken en mocht je daarnaast toch nog vragen hebben, neem dan gerust contact met ons op!

Deel deze pagina:
Sem
Auteur
Sem
Developer

Heb je vragen over dit onderwerp of zou je Sem willen inhuren voor een vergelijkbare opdracht?

Neem contact met ons op

Kan je onze hulp hiermee gebruiken?

Neem contact op om de mogelijkheden te bespreken

Waar zijn onze collega's goed in?

Lees hier al onze blogs
Cookies beheren