Blog

Directus als alternatief voor Wordpress

Tara
8 minuten

Steeds vaker kiezen we voor een nieuw CMS alternatief voor Wordpress. Met Directus kunnen we namelijk in veel gevallen op een efficiëntere manier, snellere websites bouwen. In dit artikel leggen we uit waarom Directus voor ons een goed alternatief is voor Wordpress.


Wat is Directus?

Directus is een open source headless CMS. Het is gebouwd in Typescript met voornamelijk Node.js en Vue.js, het is modulair en heel goed uit te breiden. Bij het toevoegen van nieuwe functionaliteiten schaalt Directus moeiteloos mee. In tegenstelling tot Wordpress, die een tikje trager wordt bij elke plugin die je installeert.

Directus in onze workflow

Wij hebben inmiddels de nodige websites gebouwd in Wordpress, bij vele klanten nog altijd een geliefd CMS. Om Directus als aantrekkelijk alternatief te bestempelen, moeten er een aantal vragen beantwoord worden. 

Om aan te tonen dat Directus in onze workflow past, hebben we het getest op deze taken:

  • Heeft Directus iets wat lijkt op een CPT (Custom post type)?
  • Heeft Directus aangepaste velden (ACF of ruwe post_meta)?
  • Heeft Directus iets als een repeater veld en een flexibel content type veld?
  • Hoe werken relaties tussen verschillende content types?
  • Hoe gemakkelijk is het om het CMS te gebruiken vanuit redactioneel oogpunt?
  • Hoe werkt media management?
  • Is er ACL?
  • Hoe eenvoudig werkt de API van Directus?
  • Hoe werkt datamigratie?
  • Hoe werken back-ups?
  • Hoe makkelijk is het om Directus in een self-hosted omgeving te draaien?
  • Met welke frontend kan ik Directus gebruiken?
  • Is het snel?

Heeft Directus zoiets als een CPT?

Ja. Ze hebben inhoudstypes die je kunt maken en aanpassen. Het is heel eenvoudig om er een aan te maken en er velden aan toe te voegen.

Dit is het belangrijkste - je inhoudstypes worden precies zo weergegeven als je ze definieert in de database.

Wordpress heeft een enorme generieke tabel (wp_posts bijvoorbeeld) waar alles in gedumpt wordt. Dit maakt het zeer flexibel om aangepaste post types te maken, maar uiteindelijk vertraagt je site omdat je website meerdere wp_posts, wp_posts_meta en andere willekeurige tabellen aan elkaar moet rijgen.

Met Directus wordt je datamodel precies zo weergegeven als je inhoudstype.

Als je bijvoorbeeld een inhoudstype genaamd artikelen maakt en je database controleert, zult je zien dat Directus een artikeltabel heeft aangemaakt met de velden precies zoals je die hebt gedefinieerd. Dit geeft het vertrouwen dat het mee zal schalen als sites groter worden.

Heeft Directus aangepaste velden (ACF of raw post_meta)?

Directus heeft de mogelijkheid om aangepaste velden toe te voegen, dus ja het is mogelijk om velden aan te maken zoals je dat zou doen in een Wordpress website + ACF plugin.

Iets waar wij erg blij van worden, is dat Directus standaard wordt geleverd met een heleboel velden. En er zijn vele manieren om de velden aan te passen, van de manier waarop de gegevens worden opgeslagen, tot hoe ze eruit zien in het CMS (kleuren, pictogrammen, etc. Dit kan allemaal worden bewerkt voor elk individueel veld).

Je kunt ook aangepaste velden toevoegen door community plugins van anderen te gebruiken, of er zelf een maken. Onze developers vinden deze vrijheid heel prettig.

Heeft Directus zoiets als een herhalingsveld en een flexibel inhoudstype veld?

Ja, ze hebben een herhalingsveld. Het werkt eigenlijk net als ACF, maar wel op een veel lager niveau.

Dat betekent dat je voor elk veld het invoertype en de interface moet definiëren. Dit is geen groot probleem, maar het toont aan dat Directus er niet ver op ingaat.

Directus ondersteunt ook zoiets als een flexibel inhoudstype veld. Aan het flexibele inhoudstype veld zitten meer haken en ogen. Directus heeft iets dat een Many-to-All relatie (M2A) heet.

directus-m2a

Deze relatie wordt in je database gemodelleerd als een draaitabel (junction field genoemd in Directus docs) en deze kan linken naar verschillende tabellen in plaats van slechts één (dat is waar M2A verschilt van een many-to-many relatie).

Dit betekent dat je individuele tabellen moet maken voor de intro sectie, content sectie, FAQ sectie, enz.

En het ligt voor de hand om te zeggen, maar deze tabel kan meerdere verschillende velden bevatten (zoals een herhalingsveld bijvoorbeeld).

Hoe werken relaties tussen verschillende inhoudstypes?

Heel eenvoudig. Directus ondersteunt alle belangrijke relaties zoals one-to-many, many-to-one, many-to-many en many-to-any, en maakt alle passende relaties en draaitabellen.

Vanuit UI-perspectief is alles naadloos. Je hebt de mogelijkheid om invoer te beperken, invoer te creëren op het bovenliggende inhoudstype, enz.

Hoe gemakkelijk is het om Directus te gebruiken vanuit redactioneel oogpunt?

directus-content

Als je gewend bent aan Wordpress, dan kan de interface er een beetje saai uitzien voor gebruikers van het CMS.

Maar er is goed over na gedacht en als je hier eenmaal aan gewend bent, raak je de weg kwijt in Wordpress, geloof me.

Er wordt veel witruimte gebruikt, velden en lijstweergaven zijn zeer compact, er zijn kleine details zoals wanneer de gebruiker een pagina verlaat zonder op te slaan, verschijnt er een dialoogvenster met de vraag om de wijzigingen op te slaan.

Ze hebben een extreem schone esthetiek en daar zijn we bij SMIT. groot fan van. 

Directus geeft ook manieren om het CMS aan te passen en te whitelabelen. Voor onze klanten passen we altijd hun huisstijl toe om ze zich thuis te laten voelen in Directus.

Je hebt de mogelijkheid om het logo te veranderen, een achtergrondafbeelding toe te voegen aan de inlogpagina, hier wat tekst toe te voegen en andere kleine plaatsen om je site te whitelabelen. Je kunt ook aangepaste css toevoegen om het CMS verder aan te passen.

Hoe werkt het mediabeheer?

directus-media

Media management lijkt erg op hoe Wordpress het doet. Je hebt bijvoorbeeld een speciaal media content type waar media wordt opgeslagen. Je kunt hier ook kleine bewerkingen uitvoeren.

Heeft het ACL?

directus-roles-permissons

Ja. Directus wordt geleverd met een uitgebreide ACL (Access Control List) setup. Je kunt het aanpassen om een bepaald type gebruiker alleen bepaalde inhoudstypes te laten zien, bewerken, verwijderen, enz.

In Wordpress maken we veelal gebruik van slechts 2 rollen, admin en editor. Directus voldoet volledig aan onze behoeften op dit gebied.

Hoe gemakkelijk werkt de API van Directus?

Directus biedt twee manieren om de API te consumeren. Via de rest API of via GraphQL.

Beide manieren zouden voor ons voldoen aan de wensen die we hebben rondom API's.

Wat kun je doen met de API?

Naast het ophalen van gegevens kun je verrassend veel doen met de API. Je kunt mappen aanmaken, inhoudstypen aanmaken, velden aanmaken, CRUD dingen doen met gegevens, enz.

Wij gebruiken het voornamelijk voor het ophalen van gegevens, maar met de hoeveelheid dingen die je programmatisch met de API kunt doen, zien we mensen het gebruiken als back-ends voor multi tenant SAAS of iets dergelijks.

Hoe werkt auth?

De API van Directus heeft 2 manieren om te auth-en. De ene is een eenvoudige sleutel die je kunt definiëren in je omgeving en die je kunt gebruiken om aan de slag te gaan met de API. Dit is geweldig voor server-to-server communicatie.

Als je meer veiligheid wilt, hebben ze de oAuth set-up hiervoor.

Hoe werkt datamigratie?

Directus slaat alle gegevens van je site op in de database. Het maakt hiervoor Directus specifieke tabellen.

Dus als je je database wilt verplaatsen naar een andere database, kloon je gewoon de database en importeer je deze in je nieuwe database.

Migratie is wat dat betreft een koud kunstje.

Hoe werken back-ups?

Directus heeft geen ingebouwde backup tool. Dat is jammer, maar Wordpress heeft dat ook niet ingebouwd.

Bij Directus zijn back-ups volledig afhankelijk van je database server. Bijvoorbeeld, als je een beheerde MySQL database gebruikt via Digital Ocean of AWS RDS, doen ze automatisch database backups.

En als je een zelf gehoste database set-up hebt, zul je zelf een cron job moeten schrijven die automatisch dagelijkse backups kan maken.

Directus ondersteunt MySQL, PostgreSQL en SQLLite.

 

Hoe gemakkelijk is het om Directus in een self-hosted omgeving te draaien?

Heel gemakkelijk.

In tegenstelling tot andere self-hosted apps waar er een hoop afhankelijkheden zijn (installeer dit, upgrade dat, etc), heeft Directus niets nodig. Gewoon npm install uitvoeren en je kunt aan de slag.

Directus is waanzinnig goed gebouwd en dat is te zien in de installatiefase. Het is gewoon een fluitje van een cent om mee te werken.

Met welke frontend kan ik Directus gebruiken?

Je kunt elk framework gebruiken met Directus. We hebben het gebruikt met Nuxt en het werkt perfect.

Weet dat hun sdk-js geen beperkende factor is. Als je Directus wil verbinden met een PHP site, kan dat heel goed. Gebruik gewoon hun rest API voor verbinding.

Ze hebben ook massa's gidsen over het verbinden met verschillende frontend frameworks. Dit is een gebied dat totaal geen zorg is.

Is het snel?

Ten eerste zijn headless CMS'en per definitie razendsnel, omdat ze alleen maar API requests hoeven af te handelen. Maar er zijn andere gebieden die besproken moeten worden.

Een algemeen probleem met old school CMSen zoals Wordpress is dat schalen moeilijk is vanwege hun rare database structuur. Dit is waar Directus en andere moderne CMS-en aanzienlijk beter presteren. Voeg 1000 berichten toe aan een Wordpress website en zie je site vertragen. Voeg 1000 berichten toe aan je artikelen inhoudstype in Directus en het zal vrolijk draaien omdat Directus een specifieke tabel maakt voor het inhoudstype.

Maar een ander gebied is de admin UI prestaties. Redacteuren willen een snelle UI en dit is waar Directus uitblinkt. Het admin gedeelte gebruikt vue samen met vue router zodat de browser tab niet steeds opnieuw ververst wordt als je tussen verschillende pagina's gaat.

Tot slot: Is het een vervanging voor Wordpress?

Voor kleine websites is Wordpress behoorlijk zwaar. In veel gevallen gebruik je voor dit soort sites niet alle functionaliteiten van Wordpress, en dat is zonde. Stel je maakt een website met maar 5 pagina's, zonder blog module, dan maak je al geen gebruik van een van Wordpress' grootste functionaliteiten. Is het de traagheid het dan waard, als je niet de volledige potentie van Wordpress inzet? 

Omdat Directus zo schaalbaar is, kunnen we wat we bouwen, precies aanpassen op de wensen van de klant. Zonder bijgeleverde functies te laten liggen. 

Dat Wordpress met zoveel ingebouwde (of uit te breiden) functies komt, is natuurlijk ook een voordeel.

Heb je een formulier nodig? Installeer de Gravity forms plugin. Moet je SEO doen? Installeer Yoast.

Directus vereist meer werk, we zullen deze tools zelf moeten ontwerpen of op z'n minst inbouwen. Daar zien we ook de voordelen van in, want we zouden onszelf geen vakmeesters mogen noemen als we onze producten niet afstemmen op de individuele wensen van onze klanten. En daar geeft Directus ons veel meer vrijheid in. 

Conclusie: Wordpress blijft een tool in onze gereedschapskist, mits we het tot zijn volle potentie kunnen inzetten. Met Directus is er een wereld voor ons open gegaan, en daar gaan we dit jaar en de jaren daarop, nog veel gebruik van maken.

We denken graag met je mee!

Neem vrijblijvend contact op en plan een gratis brainstormsessie, gewoon om te kijken of het klikt.