ai-course.be

Een oefening van drie minuten tegen AI-fraude voor werknemers in Belgische organisaties. Ze beoordeelt de handeling die een stemkloon, een deepfake-oproep of een vervalste factuur tegenhoudt, niet het vermogen om er een te herkennen. Ik ontwierp de app in Figma en bouwde en lanceerde de landingspagina in drie talen met Claude Code; de app zelf is nog niet gebouwd

Rol
Oprichter & designer — onderzoek, product, app-ontwerp, design system, landingspagina; gebouwd met Claude Code
Disciplines
Product DesignUX-onderzoekDesign SystemsMobielFront-endToegankelijkheid
Kort
  • Probleem — Fraude in België verhuisde naar de kanalen die bewustmakingstraining nauwelijks behandelt: een vertrouwde stem, een videogesprek, een factuur met één gewijzigde regel. Drie seconden audio volstaan om een stem te klonen, en mensen herkennen deepfakes nauwelijks beter dan bij toeval
  • Inzicht — Herkennen laat zich slecht trainen, een procedure wel. Stoppen, terugbellen op een nummer dat je al had, melden — dat werkt of de stem nu echt is of niet, dus dat is wat de oefening beoordeelt
  • Oplossing — Sessies van drie tot vijf minuten op de telefoon, één regel per sessie, wekelijks en daarna een maand later, in het Nederlands, Frans en Engels, gebouwd rond de Belgische regels voor de ondernemingsraad en artikel 50 van de AI Act
  • Resultaat — 60 hifi-schermen en een design system in Figma, en een landingspagina die sinds 17 september live staat op ai-course.be. De app is nog niet gebouwd en er liep nog geen pilot. Eigen initiatief

Een stem die je kent, die om een betaling vraagt

Belgen verloren in 2025 €93 miljoen aan phishing, verspreid over zo’n 11.000 gevallen, dertig procent meer dan het jaar ervoor; de cijfers komen van de overheid en de banksector. De federale politie waarschuwt dat drie seconden audio volstaan om een stem te klonen. De fraude die vandaag werkt, is een oproep met de stem van de boekhouder, een directeur in een videogesprek, een factuur van een vaste leverancier met een nieuw IBAN erop.

De meeste bewustmakingstraining leert nog altijd herkennen: kijk naar de link, zoek de tikfout, kijk naar het gezicht. Bij AI-vervalsingen is dat een zwakke gok. Een meta-analyse van 56 studies zet het menselijk herkennen van deepfakes op 55,5%, nauwelijks beter dan kop of munt, en in een studie van UCL herkenden luisteraars gekloonde stemmen in 73% van de gevallen, terwijl training “slechts licht” hielp. ai-course vertrekt van de andere kant: hoe de vervalsing er ook uitziet, de juiste zet is dezelfde.

Het is een project op eigen initiatief, geschreven voor het programma We Are Founders van BeCentral, waarvan de inschrijving op 20 september 2026 sloot. Ik ontwierp en bouwde het met Claude Code tussen 2 en 28 september.

ai-course.be — zolang de app nog in ontwerp is, is de landingspagina het publieke gezicht van het product

Het onderwerp, gezet als affiche

De drie cijfers op de landingspagina, elk met zijn bron

De handeling beoordelen, niet het herkennen

De kernregel telt drie stappen: stoppen, controleren via een nummer dat je al had, melden. De oefening beoordeelt welke daarvan een werknemer koos, en niets anders. Een echte e-mail melden telt als juist, en een vals alarm kost niets, want een werknemer die bang is om fout te zitten, stopt met controleren. Hetzelfde onderzoek dat me deed afstappen van herkennen, bepaalde ook de grenzen van de belofte. Ho et al. (IEEE S&P 2025, zo’n 19.500 medewerkers) vonden geen duidelijk voordeel van jaarlijkse training en 1,7 procentpunt van training die verschijnt op het moment van een klik. Lain et al. (IEEE S&P 2022, 14.733 werknemers over 15 maanden) vonden dat zulke training mensen vatbaarder kan maken, en dat melden door de groep wel werkt.

Beide studies testten de pagina die opduikt op het moment dat je klikt, en beide maten kliks op e-mail. ai-course onderbreekt niemand: het is een geplande herhaling van drie tot vijf minuten, één regel per sessie, wekelijks en ongeveer een maand later herhaald, zonder timer. De effecten van opfrissers zijn in deze literatuur klein, d ≈ 0,08–0,38 in één studie bij 19.735 mensen van 45 en ouder, dus de pitch belooft een ingeoefende procedure en een bewijs daarvan, geen groot effect.

De bewering zelf is niet uniek, en de landingspagina doet ook niet alsof. In september 2026 zeiden al verschillende leveranciers dat controleren de vaardigheid is die telt. Wat ik niet vond, was een dashboard dat het meet, dus dat is de zin op de pagina.

Eén situatie in vier schermen: de oefenoproep, het gesprek zelf, vier mogelijke handelingen en een debriefing die de regel benoemt in plaats van de persoon te beoordelen

Dezelfde beslissing op de landingspagina, in drie regels

Een Belgische werkplek heeft regels voor ze gebruikers heeft

Een oefening op het werk raakt aan het toezicht op werknemers, dus het datamodel kwam uit de Belgische cao’s nog voor er één scherm was. Pogingen bewaren een uitkomstcode en een tijdstip, nooit wat een werknemer typte of zei (cao 81). Een organisatie met 50 of meer medewerkers krijgt een sjabloon voor de ondernemingsraad (cao 39). HR ziet wie de oefening afrondde, niet de antwoorden. Het attest zegt wat het is: “attest van deelname, geen wettelijk erkend certificaat”.

Elk synthetisch materiaal draagt het label Oefening / Exercice / Exercise, wat artikel 50 van de AI Act vraagt van gegenereerde inhoud. Ik zette artikel 50 voorop, niet artikel 4: Verordening (EU) 2026/1744 maakte van de geletterdheidsplicht in artikel 4 een inspanningsverbintenis, terwijl artikel 50 ongewijzigd geldt sinds 2 augustus 2026. De inkomende oproep wordt in de app getekend, zonder telefonie en zonder vervalst nummer, wat de Belgische telecomregulator aan banden legt. Banken, eID en bpost verschijnen alleen als verzonnen merken.

Het publiek veranderde één keer. De eerste briefing zei dat de werknemers “vaak 50+” waren. Op 16 september liet ik dat los: een systematische review uit 2022 vond geen aanwijzing dat ouderen oververtegenwoordigd zijn onder slachtoffers van onlinefraude, en Nederlands overheidsonderzoek van november 2025 vond dat jongeren onder 34 vaker op oplichtingslinks klikken dan 55-plussers. Het product is voor werknemers van elke leeftijd, en de tekst van minstens 18 px blijft, omdat dat een toegankelijkheidsbelofte is en geen leeftijdskwestie.

De antwoorden voor de ondernemingsraad op de landingspagina, gestapeld als kaarten op een bureau

Referenties, wireframes, dan 60 hifi-schermen

De app volgde de volgorde die ik in elk project hanteer: eerst referenties, dan wireframes, dan hifi, alles in Figma. IFTTT gaf de beeldtaal, zwart-wit met stevige pillen en stickerletters. Brilliant gaf de lay-out. Ik mat de schermen op in plaats van te gokken, en de schaal van de witruimtes kwam uit die metingen: 0, 4, 8, 16, 20, 24 en 40, met 12 en 14 als constanten van componenten. Er zijn 35 wireframes en 60 hifi-schermen op 402 × 874, van de taalkeuze tot de attesten, plus de toestanden die meestal worden overgeslagen: leeg, laden, fout, offline, te veel pogingen, een code die na vijf keer vervalt.

Het vraagscherm, wireframe en hifi. De vier handelingen werden pillen over de volle breedte; Verify en Report verdwenen uit de onderste balk

Home in vier van zijn acht toestanden: volgende sessie, eerste keer, fout, offline

Daarna gingen de schermen door 25 rondes van controle tegen WCAG 2.2 AA en de Human Interface Guidelines van Apple. Tekst onder het AA-contrast ging van 3 gevallen naar 0, tekst onder 7:1 van 5 naar 0. Lopende tekst is minstens 18 px en tikdoelen zijn 44–48 px, omdat de oefening op een telefoon gelezen wordt tussen twee andere taken door.

Twee dingen die ik van elk scherm haalde

Elk sessiescherm eindigde ooit met een hulpvoettekst, met Verify en Report op één tik afstand. Ik vroeg wanneer een werknemer een trainingsapp zou openen terwijl een oplichter aan de lijn hangt, en het antwoord was: nooit. De voettekst verdween van alle 58 schermen die hem hadden. De veranderingstheorie is geheugen, niet beschikbaarheid: de drie stappen moeten ingeoefend worden tot ze er ook zonder de app zijn.

Report verhuisde naar de navigatiebalk en verloor daarna zijn woord. “Report” las als “meld een fout in deze app”, en het botste met de derde stap van de regel die de oefening aanleert. Vijf presentaties werden gebouwd en vergeleken; een kaal waarschuwingsschild van 24 pt met een tikzone van 44 pt won. Banken met hetzelfde probleem noemen het “Suspected fraud” of “Identify a scam”, nooit “Report”. Het schild staat op de 29 schermen waar een sessie loopt of net is afgelopen; de gesimuleerde oproep en de eerste start hebben er bewust geen.

Verify en Report als bladen. De laatste regel van Report geldt alleen als het geld al weg is, en zegt dat ook

Twee kleuren, één lettertype, elke waarde een variabele

Het design system is bewust klein: inkt #222222 en wit, met grijs alleen voor secundaire tekst. Het telt 104 variabelen in acht collecties en 36 tekststijlen. Elke witruimte op de schermen hangt aan een variabele, en 69% van de knopen op een scherm zijn instanties van componenten, zodat een wijziging in de bibliotheek alle 60 schermen bereikt. Het web gebruikt Neue Haas Grotesk van Adobe Fonts, terwijl het Figma-bestand nog Helvetica Neue gebruikt: dat lettertype zit alleen bij macOS, en Belgische kantoren draaien meestal Windows.

App-componenten. Een wissel die de hoogte en het tikdoel behoudt, is een eigenschap; een andere structuur is een nieuwe component

De stickerletters zijn het enige luide element van het merk: woorden en iconen met een dubbele omlijning, gebruikt voor oefenlabels en op de landingspagina. De eerste versie tekende de omlijning als ringen, en die ringen liepen dicht in de binnenruimtes van letters als o en e. Sinds 8 september bestaat elke sticker uit twee lagen, een massief vlak onder de letters, en elke sticker is omgezet naar contouren, zodat hij overal hetzelfde oogt.

Stickers in drie talen en vier groottes, plus de iconenset

Een landingspagina die zegt wat nog niet gebouwd is

De landingspagina is een aparte site in React en Vite, per taal voorgerenderd op /, /nl/ en /fr/, en uitgerold met Coolify op mijn eigen server. Ze ging live op 17 september, met het Nederlands en het Frans op dezelfde dag. De weblay-out werd in de browser opgemeten op de site van Brilliant, zodat de stap van de telefoonschermen naar desktop gedocumenteerd is en niet verzonnen: de sectiestap gaat van 40 naar 80, terwijl de hoekradius van de kaarten en de knop van 56 px blijven. Lopende tekst is 20 px.

De oefenschermen in een render van een iPhone 17 Pro, het telefoonmodel uit mijn project Decode; het venster heeft de verhoudingen van de schermen van 402 × 874, zodat een echte opname elk stilstaand beeld later kan vervangen

Why now: de drie kanalen worden een voor een uitgedeeld terwijl je door de sectie scrolt

Vier verschillen, elk klein genoeg om na te gaan

Niets op de pagina beweert meer dan er bestaat. De statusregel zegt “In development · pilot places for autumn 2026”, de voettekst zegt dat het product nog niet te koop is, en de prijssectie toont nog geen bedrag: één prijs per organisatie, op papier en zonder verkennend gesprek, indicatief tot de pilot hem vastlegt. Beweringen verouderen, dus de ingetrokken beweringen staan vast in de tests. “Geen enkele concurrent noemt artikel 50 bij nummer” stond op 4 september in mijn notities; een latere controle vond een leverancier die het in juli al had genoemd, en een test faalt nu als die zin terugkomt.

Zetwerk is een regel, geen nabewerking. Een typeset-functie koppelt korte woorden, lidwoorden en voorzetsels aan het volgende woord, houdt getallen bij hun label, zodat “CAO 81” en “a pilot” nooit breken, en houdt een gedachtestreepje weg van het begin van een regel. Een browsertest leest elke gerenderde regelbreuk op vijf breedtes in drie talen. De eerste run vond 47 foute breuken; nu meldt hij er geen.

Nederlands, op /nl/

Frans, op /fr/

De 404 is een klein spel: een raket en zeven vervalsingen om neer te halen. De server geeft nog altijd een echte 404 terug

Twaalf jobs, en geen doelen voor de nulmeting

De productdocumentatie volgt het format van job stories: twaalf jobs over een lus Notice → Act → Return, één set functies per job en hoogstens twee metrieken per job. De North Star is de verandering in het percentage juiste handelingen bij dezelfde werknemer tussen de eerste sessie en de volgende, gemeten uit de tabel met pogingen. Twee soorten metrieken blijven gescheiden. Contractmetrieken zijn invarianten, zoals geen enkel materiaal zonder label of de regel over Fraudstop op elk Report-blad, en een misser is een bug. Gedragsmetrieken krijgen geen doel zolang de pilot geen nulmeting heeft; de belofte is ze te meten en het resultaat te publiceren, ook als het tegenvalt.

Het bord met de jobs. Vetgedrukte rijen zijn sociale of emotionele jobs

Een van de drie lusborden waaruit de jobs zijn gehaald

De schermkaart, gegroepeerd per flow

Wat Claude Code deed, en wat ik besliste

Claude Code schreef de code van de landingspagina: alle 116 commits dragen zijn co-auteursregel. Het voerde ook de metingen, de controlerondes en de audits uit, schreef de eerste versies van het onderzoek, en bouwde de Figma-schermen en -variabelen via de plugin-API. Ik koos het probleem, het publiek en de beoordelingsregel, bepaalde de visuele richting en de volgorde van het werk, besliste wat eruit ging, en aanvaardde of verwierp elk resultaat.

De correcties gingen in beide richtingen, en de mijne staan in het beslissingslogboek van het project. De eerste landingspagina kwam aan als code zonder wireframe, zonder hifi en zonder één referentie; ik hield ze tegen en begon opnieuw in de volgorde van het project. Een meting van de referentieschermen via een script las twee tot vier punten te kort, en mijn meting met de hand werd de referentie. De hulpvoettekst en het woord “Report” verdwenen allebei door vragen die ik stelde over hoe het product echt gebruikt zou worden.

Niemand opent een trainingsapp terwijl een oplichter aan de lijn hangt. De regel moet er ook zonder zijn

Wat nog niet af is

De app is ontworpen, niet gebouwd: er is nog geen scenario gegenereerd en nog geen werknemer heeft een oefening gedaan. Ik heb nog geen gebruikers geïnterviewd, en de teksten zijn nog niet gelezen door de jongere werknemers die het bijgestelde publiek omvat. Het plan is twee maanden bouwen, twaalf scenario’s in het Nederlands en het Frans, en daarna een pilot met drie tot vijf Belgische organisaties van 20 tot 250 mensen. De pilot levert de nulmeting voor de gedragsmetrieken, de prijs en het pakket voor de ondernemingsraad.

De landingspagina heeft haar eigen open punten. De secundaire notities staan op 16 px, onder de 18 px die de pagina belooft voor lopende tekst, en het Figma-bestand moet nog overstappen op Neue Haas Grotesk. De site heeft 246 unittests en 249 browsertests, die controleren wat ze controleren; ze vervangen geen mens die de oefening doet.

ai-course.be — live preview
Live demo
ai-course.be
Openen

Live — ai-course.be

Bronnen

Volgend project
NUX