Projecten/Website · 2022

Vitesse

Een clubsite heeft een verkeerspatroon dat weinig sites hebben: dagen van rust, en dan een uur waarin iedereen tegelijk hetzelfde bericht wil lezen. Dat is een bouwopdracht, geen ontwerpopdracht.

Next.jsWebsiteFrontend
Vitesse

01Rustige dagen, en dan alles tegelijk.

Het verkeer van een club komt in pieken: een aankondiging, een wedstrijddag, een bericht dat rondgaat. Een site die op een gemiddelde dag prima werkt, is precies op die momenten traag.

Daarnaast wordt de site door de club zelf gevuld. Wat de redactie publiceert moet erop komen zonder tussenkomst, en zonder dat een fout in één bericht de rest van de pagina meeneemt.

02Wat er gebouwd is

Gebouwd voor de piek

De pagina’s worden serverside gerenderd en gecachet, zodat een piek geen tien keer hetzelfde werk is. Wie tijdens een aankondiging binnenkomt krijgt een pagina die al klaarstond.

Wat per bezoeker verschilt is bewust klein gehouden. Het meeste van een clubsite is voor iedereen hetzelfde, en dat hoort dan ook maar één keer opgebouwd te worden.

  • Serverside gerenderd
  • Gecachet per pagina
  • Kleine dynamische randen
  • Bestand tegen een piek

De redactie erbuiten houden

De inhoud komt uit het redactiesysteem van de club; de site leest die en rendert hem. Publiceren is daarmee een redactionele handeling en geen deploy.

Wat de redactie invult wordt behandeld als tekst en niet als opmaak, zodat één slordig geplakt bericht de bladspiegel niet verpest.

  • Publiceren zonder deploy
  • Inhoud gescheiden van opmaak
  • Voorspelbare bladspiegel
  • Geen developer nodig per bericht

Getypt tot aan de rand

De hele frontend is TypeScript. Een veld dat de redactie leeg laat is een geval dat het type benoemt, in plaats van een lege plek die pas op de dag van de wedstrijd opvalt.

Dat maakt het aanpassen van een pagina goedkoop: wat er misgaat, gaat mis tijdens het bouwen.

  • Typen tot in de content
  • Lege velden zijn een geval
  • Fouten vóór publicatie
  • Goedkoop aan te passen

03Technische keuzes

Serverside renderen

Een clubsite wordt gelezen, niet bediend. Dan hoort het werk op de server te gebeuren en niet in de telefoon van de bezoeker.

Inhoud is tekst, geen opmaak

Zodra opmaak uit de invoer komt, bepaalt de redactie per ongeluk de bladspiegel. De site geeft vorm; de redactie geeft woorden.

TypeScript tot aan de content

De meeste fouten op een contentsite zijn ontbrekende velden. Een type dat dat benoemt, verplaatst die fout naar het bouwen.

04Een site die het op de drukste dag doet en die de club zelf vult.

Publiceren gaat buiten mij om, en een piek is geen gebeurtenis meer. Wat er verandert aan de site verandert in code die zegt wat hij verwacht.

De volgende stappen zitten in de secties rond het nieuws: meer plek voor wat er speelt op een wedstrijddag.

voorafgerenderd, zodat een piek geen extra werk is
0deploys nodig om een bericht te publiceren
getypttot in de content, zodat lege velden geen verrassing zijn

Vragen die hierbij vaak opkomen.

Zoiets nodig voor jouw organisatie?