Medewerkers van Netvlies bekijken het Vanafhier platform.

Dit is hoe we voor ASN Bank een Drupal website met een app look and feel bouwden

Een ongebruikelijke combinatie

Voor het nieuwe inspiratieplatform van ASN Bank, Vanafhier.nl, hebben we een Drupal website gebouwd met een app-achtige look and feel. Door de animerende componenten, beweging tussen componenten en pagina transities voelt de homepage aan als een tijdlijn met oneindige inspiratie aan de vingertoppen van de bezoeker. Een ‘webapplicatie’ in Drupal met een app-achtige look and feel, is op het eerste oog een ongebruikelijke combinatie, waarbij de vindbaarheid in zoekmachines ook nog eens een doorslaggevend rol speelt. Waarom hebben we deze keuze gemaakt en hoe hebben we dit technisch gerealiseerd?

Medewerkers van Netvlies bekijken het VanafHier platform.

De aanleiding: nieuwe UX inzichten en wensen

1 op de 3 Nederlanders wil duurzame keuzes maken, maar weet niet waar te beginnen of vindt het teveel moeite. ASN Bank vindt dat dit anders moet en startte ruim 16 jaar geleden het initiatief Voor De Wereld van Morgen. Op dit contentplatform bood ASN Bank duurzame startups een podium om zich te presenteren en publiceerde de redactie wekelijks nieuws artikelen over duurzame trends en ontwikkelingen. De werking van het platform, alsmede het design, voldeden niet meer aan de wensen van ASN Bank én de grote groep (licht)groene Nederlanders die ze wilden aanspreken. Samen met Digital Branding Agency Born05 heeft ASN Bank opnieuw naar het verhaal en de strategie achter het platform gekeken. Met de nieuwe strategie op zak zijn we samen met ASN Bank teruggegaan naar de technische tekentafel. 

Waar Voor de Wereld van Morgen een inspiratieplatform én een ondernemer community was, focust VanafHier zich enkel op het publiceren van content over duurzaamheid. Uit strategische sessies bleek dat hier andere verwachtingen, op het gebied van gebruikersinteractie, bij horen. Geen statische homepage, maar een homepage die aanvoelt als een tijdlijn waar je eindeloos tussen verschillende soorten content kunt scrollen: van beeldverhaal tot longread en van video tot short copy. De UX vertaling hiervan was een website met een app achtige look and feel met onder andere motion van componenten en pagina transities. 

Aan de realisatie van het nieuwe platform stelde ASN Bank twee belangrijke voorwaarden: 

  1. het Content Management Systeem (CMS) moest Drupal blijven;
  2. en het platform moest technisch zo in elkaar zitten dat de artikelen goed vindbaar zijn in zoekmachines als Google. 

Frontend techniek kiezen

Na technisch onderzoek hebben we besloten een Drupal website met de frontend techniek Nuxt.js te bouwen. Drupal leent zich goed voor een contentplatform, maar heeft geen mogelijkheden tot bijvoorbeeld een Single Page Application (SPA), waarbij de pagina één keer op ‘traditionele wijze’ wordt ingeladen. Vraag je nieuwe data op, dan wordt bij een SPA alleen deze data (opnieuw) ingeladen in de frontend. Op deze manier zou je het oneindige scrollen of het gebruik van pagina transities mogelijk kunnen maken. 

Pagina transities

Een pagina transitie is eigenlijk een animatie: de bezoeker ziet hoe de ene pagina in de andere pagina overgaat. Dit kun je op verschillende manieren realiseren. Een bekende manier is het ‘schuiven’ van rechts naar links alsof de pagina’s ‘digitaal’ naast elkaar liggen. Dit effect is iets wat je in veel apps terug ziet komen, maar is op een normale website (nog) niet mogelijk. De website kan de nieuwe pagina pas tonen en inladen als de bezoeker deze heeft aangeklikt. Voor een pagina transitie heb je informatie over de toekomstige pagina vooraf nodig, zodat de browser de overgang tussen de pagina’s soepel kan animeren en bijvoorbeeld beide pagina’s naast elkaar kan leggen.

Headless oplossing

Vanwege de duidelijke wens van ASN Bank voor een website met het CMS-systeem Drupal zochten wij de oplossing in de frontend en kozen we voor een headless oplossing met een losse backend en frontend. De backend data uit Drupal wordt over een Application Programming Interface (API) naar een onafhankelijke frontend gestuurd. De frontend zet de data om in de juiste pagina’s en componenten. In principe zijn hier verschillende frontend oplossingen voor, maar vanwege de transities en het ophalen van de backend data is het gebruik van een JavaScript framework de beste optie. 

JavaScript framework

Binnen het  frontend team van Netvlies werken we vaak met het JavaScript framework Vue.js. Met Vue kun je onder andere SPA’s bouwen, waarbij alle data via een API wordt opgehaald in de frontend. De website kan leven op één url, vandaar de naam ‘Single Page’. Doordat alle data op die ene pagina beschikbaar is, kun je makkelijk transities tussen pagina’s maken. 

In principe een goede oplossing voor paginaovergangen, maar voor zoekmachine optimalisatie (SEO) brengt dit nieuwe uitdagingen met zich mee. Hoe gaat Google pagina’s indexeren als deze pas op pagina-laad met content worden gevuld? Hoe maakt Google onderscheid tussen een artikel en de hompage als alles op dezelfde url leeft? Hoe zorg je dat pagina’s waarop je oneindig kunt scrollen snel worden geladen voor de gebruiker?

Universal App met Nuxt.js

Een technische opbouw die bijdraagt aan een goede vindbaarheid in zoekmachines was doorslaggevend in de keuze voor de frontend opzet. We gingen namelijk niet zomaar een frontend webapplicatie bouwen, maar een SEO-proof platform met deelfunctionaliteiten voor social media. Een SPA viel daarom af.

We kozen voor een Universal App. Dit is een app die Javascript code, zowel aan de gebruiker (client) als server kant kan uitvoeren. In tegenstelling tot een SPA zorgt een Universal App dat de pagina aan de server kant wordt opgebouwd (ook wel Server Side rendering genoemd), waardoor bezoekers direct content te zien krijgen. De opbouw van de pagina wordt door de losse frontend server direct vertaald naar HTML. Nog vóór de bezoeker de pagina te zien krijgt. De website is hierdoor sneller en pagina’s zijn leesbaar en indexeerbaar voor Google en andere robots. De browser heeft de HTML namelijk al van de server ontvangen en hoeft geen JavaScript om te zetten tot een werkbare website.

Om bovenstaande situatie te realiseren, volstaat alleen het JavaScript Framework Vue.js niet. Gelukkig is Nuxt.js dé Vue.js oplossing voor Universal Apps. Dit frontend framework biedt een laagdrempelige oplossing voor het opbouwen van de structuur van de website, ook wel routing van de frontend genoemd: welke pagina en content is de homepage, wat zijn overzichtspagina’s, wat zijn artikel detailpagina’s en hoe zijn deze aan elkaar gerelateerd. 

Bovendien past Nuxt.js automatisch de url balk van je browser aan, waardoor paginering op de homepage mogelijk is. Zonder dat de pagina, om nieuwe content te tonen, opnieuw geladen moet worden. Door de pagina transities lijkt het voor de bezoeker alsof je op dezelfde pagina bent gebleven, maar de url is wel degelijk veranderd. Alle artikelen hebben hierdoor een unieke url die bezoekers kunnen doorsturen naar en delen met anderen. Dit heeft een positieve impact op de vindbaarheid van de website, omdat elk artikel een unieke url heeft zonder dat dit ten koste gaat van de gebruikservaring. Daarnaast is het met Nuxt.js mogelijk om metatags, zoals meta title en description, mee te geven, een functionaliteit die ook al in Drupal zit. 

Gebruiksvriendelijk headless CMS

De frontend en backend hebben we los van elkaar opgezet. Om een headless Drupal CMS soepel werkend te krijgen, hebben we een aantal optimalisaties doorgevoerd. Content aanpassingen die webredacteuren in Drupal doen, worden in een API gegoten en naar de frontend doorgezet. Vanwege de headless oplossing is sprake van twee losse servers en ontstaan twee losse urls: één voor de backend en één voor de frontend. Door aanpassingen in het Drupal CMS hebben we ervoor gezorgd dat beide omgevingen naadloos op elkaar aansluiten. Redacteuren van VanafHier hebben amper door dat ze tussen twee omgevingen switchen, zo blijft de werkwijze die zij voor het vorige platform hanteerden vrijwel gelijk. Redacteuren kunnen bijvoorbeeld direct via Drupal een voorbeeldweergave in de frontend bekijken en vanuit de frontend weer direct terugkeren naar het bewerken van een pagina in het CMS. Een feature die de gebruiksvriendelijkheid voor redacteuren voorop stelt.

Future-proof platform

Ik ben trots op het platform dat we met het team hebben weggezet. We hebben niet alleen een futureproof platform ontwikkeld, maar ook een klant ontzettend blij kunnen maken met onze oplossing. Bovendien scoort de website goed in Google PageSpeed door onder andere de Server Side Rendering oplossing en zijn de redacteuren tevreden. Neem een kijkje op het platform om onze technische oplossing te ervaren en om je te laten inspireren door concrete duurzaamheidstips. 

Het team van Netvlies heeft creatief meegedacht over de beste oplossing voor onze websitebezoekers én onze redacteuren. Daarnaast moet het platform aan strenge veiligheidseisen voldoen en zowel op mobiel als desktop een geweldige ervaring voor de bezoeker bieden. Dat ze dat allemaal is gelukt, is iets waar ze terecht heel trots op mogen zijn. - Maartje Maas, Hoofdredacteur bij Vanafhier

Heb jij een soortgelijke wens of ben je benieuwd hoe wij jouw technische wens zouden realiseren? Neem contact met ons op. Wij zoeken graag samen met jou naar de beste technische mogelijkheden!