We hebben onze GDPR-audit afgerond. Dit hebben we daadwerkelijk gesloten.
Enkele weken geleden schreven we dat "GDPR-compliant" op de homepage van een videotool minder betekent dan je denkt — dat GDPR een reeks verplichtingen is voor jou, de verwerkingsverantwoordelijke, die een leverancier óf helpt te behalen, óf stilletjes op je bureau achterlaat. De eerlijke manier om die bewering te staven is het werk aan onze eigen kant te doen en het te tonen, regel voor regel.
Dus dat hebben we gedaan. We hebben een volledige audit van de InterMIND-codebase uitgevoerd tegen de verplichtingen die op ons rusten als verwerker, elk gat met onderliggende code opgelost, en elk ervan geverifieerd tegen het draaiende product. Dit bericht is het afrapport — geen badge, maar een checklist met onze antwoorden.
We claimen bewust niet "100% GDPR-gecertificeerd." GDPR is geen certificaat dat je behaalt — en we zwaaien niet met een ISO-badge dat we nog niet hebben. Wat we wel kunnen zeggen: de architecturale en procesverplichtingen waar een DPO doorheen werkt, hebben nu concrete, verifieerbare antwoorden, elk gecontroleerd tegen de draaiende code.
Wat we hebben gesloten
Recht op vergetelheid (Art. 17) — de cascade werkt daadwerkelijk
Je account verwijderen deactiveert het niet alleen. POST /api/user/delete-account voert een echte cascade uit: het wist je meetings → deelnemers, berichten, conferences, transcripties; het ruimt je opslag-blobs op uit Tigris voordat de database-cascade draait, zodat er niets verweesd achterblijft — chatbijlagen en video-opnamebestanden, beide kolommen; en het annuleert je Stripe-abonnementen en verwijdert de Stripe-klant. On-demand verwijdering is er ook — verwijder een kanaal of bericht via de UI en het is weg. Anonieme (gast)accounts krijgen hun eigen verwijderingsendpoint plus een achtergrondsweep elke 6 uur, onder een gemonitorde cron. De audit bracht hier één gat aan het licht — opname-blobs die de database-cascade wel liet vallen maar de opslag behield — en we hebben het gesloten: verwijdering laat nu niets meer achter in objectopslag.
Bewaartermijn (Art. 5(1)(e)) — een gedocumenteerd criterium
Art. 5(1)(e) vereist geen automatische time-to-live. Het vereist een gedefinieerd bewaarcriterium. Dat van ons is nu vastgelegd in het Privacybeleid: gegevens worden bewaard totdat jij of je teameigenaar ze verwijdert, en het verwijderen van je account wist alles. Dat is hetzelfde model waar samenwerkingstools zoals Slack en Notion op draaien — persistentie is het verwachte gedrag, en jij behoudt de controle daarover. Het criterium is expliciet vermeld, niet geïmpliceerd.
Toestemming voor analytics (Art. 6/7) — standaard opt-out
Een Usercentrics-toestemmingsbanner (getoond aan EU-bezoekers) regelt analytics, en PostHog wordt geleverd met opt_out_capturing_by_default: true — er wordt niets vastgelegd totdat toestemming is gegeven, niet andersom.
Gegevensportabiliteit (Art. 20) — een echte export
GET /api/user/export bouwt een ZIP van je meetings, berichten, opnames en vertalingen, met een downloadvenster van 7 dagen en automatische opschoning. Toegang, verwijdering en portabiliteit zijn tools die werken, geen beloftes in een beleidsdocument.
Geen meeting-inhoud bereikt een in de VS gevestigd model
De grootste stroom aan meeting-inhoud — live voice- en chatvertaling — draait op onze eigen engine in Frankrijk, nooit een LLM van een derde partij. De AI-stappen na de meeting die wel een algemeen model gebruiken (de samenvatting, de generatieve acties van de notitie-editor) draaien op in de EU gehoste Mistral met nul-gegevensretentie, zo strak gepind dat het verzoek faalt liever dan terug te vallen op een non-ZDR of VS-host. We hebben ook deelnemersnamen en uitingstekst uit de conference-browserlogs gehaald die PostHog-sessie-opname anders zou kunnen vastleggen. De volledige kaart per leverancier staat in Waar één InterMIND meeting daadwerkelijk draait.
Transparantie — sub-verwerkers en verwerkingsregisters, gepubliceerd
De sub-verwerkerslijst is live, met wat elke leverancier doet en waar deze is gevestigd — niet "op verzoek beschikbaar." Daarachter zit een Register van Verwerkingsactiviteiten (ROPA) gebouwd vanuit het live schema: 11 verwerkingshandelingen, de beveiligingsmaatregelen voor elk, en de paden voor verwijdering / portabiliteit. Ons Privacybeleid en Voorwaarden draaien nu onder onze eigen rechtspersoon, met de echte verwerkingsketen beschreven.
EU-runtime — gepind, niet beloofd
Elke runtime-hop die een meeting maakt, ligt in de EU: app en API's op Vercel Frankfurt, de meeting-server op Fly Parijs, toepassingsdata in Neon Postgres (AWS Frankfurt), fouten op Sentry EU, analytics op PostHog EU, e-mail via Resend Ierland. Objectopslag op Tigris is nu gepind op EU-regio's (Frankfurt + Amsterdam) — elke nieuwe schrijfactie belandt in de EU, ongeacht waar de gebruiker zich bevindt. De volledige architectuur staat op onze beveiligingspagina.