Project Design + bouw Herbouw

Een complianceplatform helemaal opnieuw opbouwen

De eerste versie van Nitra Academy bouwde ik op low-code (Zoho Creator), de juiste keuze om snel een werkend systeem live te krijgen, en ze draait al jaren in productie. Maar Nitra groeide eruit: nieuwe functionaliteit bouwen ging traag, en multi-tenant beveiliging was moeilijk af te dwingen op het platform van iemand anders. Dus nam ik de architectuurbeslissing om low-code achter me te laten, en herbouw ik het platform van nul als een EU-gehoste, multi-tenant webapp: datamodel, backend, beveiliging, infrastructuur en de migratie, één persoon. Het staat op een stagingomgeving en zit nu in testfase; productie en de datamigratie zijn de volgende stap.

Mijn rol
Design Engineerontworpen en gebouwd, AI-ondersteund
Wanneer
2026in testfase
Met
NitraValderas
Resultaat
Nu in testfase met het teamNext.js en Postgres, self-hosted in de EU
In testfase · staging live · productie volgt
13
Modules herbouwd tot pariteit
EU
Data blijft in de EU
1
Persoon: design → deployment

Waarom weg van low-code

Low-code was het juiste gereedschap voor versie één, en die keuze verdedig ik nog altijd: Nitra kreeg er een echt, werkend systeem mee in weken in plaats van een jaar, op een budget dat enterprisesoftware uitsloot. Maar op hun schaal werden twee beperkingen structureel. Nieuwe functionaliteit bouwen ging traag en onhandig binnen het model van het platform. En wat het zwaarst weegt voor een multi-tenant complianceplatform, strikte en afdwingbare data-isolatie tussen klantbedrijven, hing af van wat het platform aanbood, niet van wat ik kon garanderen. De stack zelf in handen hebben lost allebei op.

De architectuur

Ik koos een stack rond drie randvoorwaarden: EU-soevereiniteit over persoonsgegevens, weinig onderhoud, en iets dat ik zelf kan blijven laten groeien. Het is één TypeScript-codebase, geen aparte API-server, op een Postgres-database waar de tenant-isolatie in de database wordt afgedwongen:

  • Next.js (App Router, TypeScript), server components en server actions voor de logica.
  • PostgreSQL met row-level security (EU-regio), data-isolatie tussen bedrijven is een garantie van de database, geen formulierregel. Onderbouwd met een reeks RLS-tests.
  • Geversioneerde migraties als enige bron van waarheid, alleen vooruit, lokaal getest, identiek doorgeduwd naar staging en productie.
  • PDF-certificaten server-side met een QR-code naar een publieke verificatiepagina en API.
  • Overal EU-diensten: Brevo voor transactionele e-mail, de Vlaamse Geolocatie-API voor geocodering, EU-objectopslag voor bestanden.
  • Docker en een Git-gebaseerde deploy-pipeline, een slanke standalone productie-image, self-hosted op EU-cloud (Scaleway), met aparte omgevingen voor development, staging en productie.

De grootste winst op vlak van beveiliging tegenover het low-code origineel: data-isolatie wordt nu afgedwongen door Postgres zelf, expliciet en testbaar, niet verspreid over formulierregels die ik niet volledig in de hand had.

Wat ik gebouwd heb

De MVP is bewust afgebakend op pariteit: exact doen wat het huidige platform doet, en pas daarna uitbreiden. Dat betekent bedrijven en gebruikersrollen over meerdere bedrijven heen, een opleidingsaanbod, sessieplanning met geocodering op kaart, individuele en bulkinschrijvingen, aanwezigheden en scores met automatisch geslaagd of niet, certificaten in vier types met automatische generatie en publieke verificatie, compliance-herinneringen, audit logging, rolspecifieke dashboards en een globale zoekfunctie via een command palette, allemaal achter rolgebaseerde toegang die door RLS wordt afgedwongen. De designkant staat niet los van de bouw: het draait op een Nitra design-tokensysteem en een gedeelde componentenbibliotheek die ik in dezelfde repo ontworpen en gecodeerd heb.

De migratie

Een systeem vervangen dat live staat en de certificaten van mensen bijhoudt, is geen big-bang omschakeling, het is een plan. Ik bracht het bestaande datamodel uit de live app in kaart, schreef een herhaalbare import die het omzet en valideert (aantallen records, controles op unieke btw-nummers en e-mailadressen, herberekende vervaldata van certificaten, Belgische datumnotatie), en tekende een gefaseerde overstap uit: bouwen tot pariteit, data migreren naar staging, een korte parallelle periode draaien met het oude systeem read-only als vangnet, dan de DNS omzetten en het oude platform bevriezen, met een rollback en een verse back-up die maanden bewaard blijft. Tot en met de communicatie naar gebruikers: wie wat te horen krijgt, en wanneer.

Waarom dit telt voor hoe ik werk

Dit is het duidelijkste bewijs van wat “design én build” op volle diepte betekent. Eén persoon nam de beslissing om low-code te verlaten, ontwierp het datamodel en de interface, schreef de backend en de row-level security, zette de infrastructuur en de pipelines op, en plande de migratie en de omschakeling. Als hetzelfde brein de hele keten in handen heeft, blijven de beslissingen coherent van het schema tot het scherm.

Nitra Academy 2.0 is in actieve ontwikkeling voor Nitra, via Valderas. Het zit momenteel in testfase op een stagingomgeving; de productiedeployment, de datamigratie van het oude platform en het overzetten van de gebruikers zijn de volgende stappen.

Volgende case

Payflip

12 tot 15 uur begeleid werk, terug naar zo'n 2 →

Iets te bouwen?

Dit is het soort werk dat ik van begin tot eind ontwerp en bouw, aan een vaste prijs.

Projecten