Mattias Desmet
Voor psycholoog en auteur Mattias Desmet bouwden we een tweetalige site die zo ingetogen oogt als een getypte brief — met daaronder een shop en een systeem dat de hele workshopadministratie overneemt: inschrijven, online betalen via Stripe, BTW over de grens, facturen en Peppol via Billit.
Bekijk de site
Mattias Desmet is professor klinische psychologie aan de UGent, spreker en auteur van De Psychologie van Totalitarisme — een boek dat intussen in een indrukwekkend rijtje talen verscheen, van het Koreaans tot het Hebreeuws. Daarnaast geeft hij workshops in België en Nederland rond wat hij The Act of Speech noemt: de kunst van het oprechte, vrijmoedige spreken.
De vraag was dubbel. Enerzijds een site die zijn werk en zijn stem een rustige, waardige plek geeft: workshops, events, publicaties, boeken, Substack. Anderzijds een motor eronder die de administratie van al die workshops overneemt — van de eerste klik op “inschrijven” tot de factuur in de boekhouding, over de landsgrens heen en met de BTW-regels die daarbij horen.
We deden het allebei, van het eerste ontwerp tot de laatste Peppol-regel.
Het ontwerp: papier, inkt en één rode draad
Wie over het gesproken woord schrijft, verdient een site die niet schreeuwt. We vertrokken van het beeld van een getypte brief: gebroken wit papier, diepzwarte inkt en titels in Special Elite, een letter met de lichte onregelmatigheid van een oude typemachine. De leestekst staat in een cursieve Lora — de stem van Mattias zelf — en een sobere Helvetica houdt labels en structuur op hun plaats.
Er is precies één kleur. Rood is voorbehouden aan TAoS, de afkorting van The Act of Speech, en komt terug als rode draad door de hele site.
De intro. Wie de site opent, ziet over een portret van Selina De Maeyer de woorden “The Act of Speech” zich letter per letter uittikken. De beginletters kleuren rood, de rest vervaagt, en de vier rode letters schuiven samen tot TAoS terwijl het beeld naar wit overgaat. Daarna typt het menu zich in. Het speelt één keer per bezoek — wie het nog eens wil zien, klikt op het kleine replay-icoontje.
Tweetalig, en in eigen handen. De site is volledig Nederlands en Engels. De homepage is geen klassieke hero, maar het menu zelf, groot gezet als een inhoudstafel; welke pagina’s daarin staan, bepaalt Mattias in het paneel. Workshops, events en boeken krijgen elk een overzicht met filters — eigen organisatie of gastoptreden, themadag, lezing of reis, of per taal.
Inschrijven zonder omwegen
Elke workshop is een reeks met eigen data, locatie, prijs en een maximum aantal plaatsen. Is dat bereikt, dan maakt het formulier vanzelf plaats voor “Volzet”; Mattias kan een reeks ook met één schakelaar sluiten.
Niet elke reeks staat meteen voor iedereen open. Een workshop kan aangekondigd worden met een openingsdatum, terwijl wie een voorrang-link krijgt al kan inschrijven. Een vervolgreeks gaat zelfs nooit publiek open: bezoekers stellen zich kandidaat, en pas na goedkeuring krijgen ze de link waarmee ze wél binnen kunnen.
Het formulier zelf denkt mee. Schrijf je in namens een onderneming, dan verschijnen de bedrijfsvelden en past het label zich aan je land aan: ondernemingsnummer in België, KVK in Nederland. De prijs wordt live opgesplitst in bedrag, BTW en totaal, zodat er aan de kassa geen verrassingen zijn.
De shop: online betalen via Stripe
Achter de site zit een volwaardige shop. Workshops, events en vrije giften worden allemaal online afgerekend via Stripe Checkout, met Bancontact, iDEAL en kaart. Na het formulier gaat de deelnemer er rechtstreeks naartoe, en een afgebroken betaling is geen verloren inschrijving: dezelfde link hervat ze gewoon.
We vertrouwen niet op een terugkeer naar de site om te weten dat er betaald is. Pas wanneer Stripe de betaling via een ondertekende webhook bevestigt, gaat de inschrijving op “bevestigd” — en rolt de rest van de keten vanzelf verder.
Facturatie die de boekhouder geruststelt
Een factuur is geen gewone pdf. Nummers moeten doorlopend zijn, zonder gaten, ook als twee mensen op exact hetzelfde moment betalen. Daarom wordt elk factuurnummer atomair uitgegeven: de teller per jaar wordt vergrendeld, de pdf eerst in een wachtruimte opgebouwd en pas daarna definitief weggeschreven. Elke stap belandt in een audit-log.
De factuur zelf is opgemaakt in de huisstijl en vertrekt meteen naar de deelnemer. Voorvoegsel, startnummer, bedrijfsgegevens en een BCC voor de boekhouding beheert Mattias in het paneel; facturatie, Billit en de BTW-controle hebben elk hun eigen hoofdschakelaar.
BTW over de grens. Het lastigste stuk zat niet in de code, maar in de regels. Een particulier betaalt de getoonde prijs inclusief BTW; een bedrijf ziet ze erbovenop komen. Voor een workshop in Nederland rekent een particulier Nederlandse BTW via OSS, en krijgt een Nederlands bedrijf met een geldig BTW-nummer de BTW verlegd — na een live VIES-controle. Een Nederlands bedrijf op een Belgische workshop betaalt dan weer gewoon Belgische BTW, want toegang tot een evenement wordt belast waar het plaatsvindt.
En waar een automatische factuur fout zou zijn — een Belgisch bedrijf op een Nederlandse workshop — blokkeert het formulier de online inschrijving en legt het uit waarom. Mattias maakt die ene factuur dan zelf in Billit.
Billit & Peppol
Sinds 2026 is elektronisch factureren tussen Belgische bedrijven verplicht. Naast elke pdf bouwt de site daarom ook een UBL-bestand volgens Peppol BIS 3.0 en stuurt dat rechtstreeks naar Billit. Zo staat elke factuur automatisch in de boekhouding, en voor bedrijven met een Peppol-adres verstuurt Billit ze meteen via het Peppol-netwerk.
BTW-nummers worden onderweg gevalideerd via Vatly, met een cache zodat een trage of haperende VIES-dienst nooit een inschrijving tegenhoudt. En faalt de verzending naar Billit ooit, dan blijft de factuur gewoon bestaan en staat de fout netjes in het log.
Beheer in eigen handen
Alle inschrijvingen komen samen in één overzicht, enkel bereikbaar na login in het paneel. Status wijzigen, een betaling markeren, een factuur manueel aanmaken of een inschrijving van de wachtlijst halen gebeurt met één keuze per regel. Per workshop of voor alles samen exporteert Mattias de lijst als CSV of als echt Excel-bestand, gebouwd met een eigen, lichte generator.
Onder de motorkap staan inschrijvingen en facturen als afzonderlijke bestanden, los van de pagina’s van de site. Dat maakt de opslag robuust — en onze deploys raken die boekhoudkundige data nooit aan.
Boeken en steun
Elke editie van elk boek heeft een eigen pagina met cover, uitgever, jaartal en ISBN, en het overzicht filtert per taal. Een bestelknop per editie leidt naar de juiste uitgever of winkel, en een voorraadstatus — pre-order, uitverkocht of binnenkort — houdt bezoekers eerlijk op de hoogte. De catalogus is zo opgebouwd dat een eigen webshop er later zonder verbouwing in past.
Wie het werk van Mattias wil steunen, kan dat met een vrije gift. Die loopt ook via Stripe, maar bewust volledig los van de inschrijvingen: geen factuur, geen plaatsentelling, gewoon een bedrag en een bedankje.
Nieuwsbrief & Substack
Onderaan elke pagina staat één veld: je e-mailadres. Het formulier praat rechtstreeks met Laposta, geeft zonder te herladen meteen antwoord — ook als je al ingeschreven bent — en werkt nog steeds wanneer JavaScript uitstaat. Spambots vangen we op met een onzichtbaar lokveld.
De langere essays schrijft Mattias op Substack, in drie talen. De site verwijst naar de Nederlandse, Engelse en Franse publicatie, zodat elke lezer meteen in de juiste taal terechtkomt.
Het resultaat
Een site die klinkt zoals Mattias spreekt: ingetogen, precies en met één rode draad. En daaronder een systeem dat een hele administratie stilletjes overneemt. Sinds de lancering rollen de facturen er vanzelf uit — doorlopend genummerd, BTW-correct over twee landen en automatisch geboekt in Billit — zonder dat er één cijfer is overgetypt.
Zoekmachines krijgen elke workshop en elk event als gestructureerde data, bezoekers worden privacyvriendelijk geteld, en nieuwe reeksen zet Mattias zelf online. Moet er iets bijgestuurd worden, dan weet hij waar hij ons vindt.
Een website met zwarte gordel
Website, community & AI →