W40 | Tunnel: een correctietool voor de werkplek waar AI niet mag

Build AI. Run AI. Own AI. — Week W40 · 28 september-4 oktober 2026

Build AI. Run AI. Own AI.

Ik bouw dit niet in een lab, maar middenin mijn eigen leven als zzp'er en vader — en toch ontwerp ik elke keuze alsof er een enterprise-klant op leunt: multi-tenant vanaf dag 1, secrets die nooit een mens ziet, migraties die nooit terug kunnen. Dit is het logboek van die combinatie: zelf bouwen, zelf draaiend houden, zelf eigenaar blijven — inclusief de aanname, de misser en de prijs van elke keuze.

In de W00-terugblik beschreef ik de frictie waar dit platform ooit mee begon: dicteren dat vloeiend werkt op mijn eigen werkplek, en volledig stilvalt op de Citrix-omgeving van een opdrachtgever. Acht maanden later kwam diezelfde frictie terug — niet als anekdote, maar als een feature die ik daadwerkelijk gebouwd heb: Tunnel.

Het probleem dat opdook

1 oktober 2026: zzp'ers die op een beheerde werkplek bij een opdrachtgever werken, hebben daar vaak geen veilige AI-tools. Ze willen wel snel iets kunnen dicteren of intikken, gecorrigeerd terugkrijgen, en plakken in de mail of het communicatiekanaal van de opdrachtgever. Er was nergens in mijn platform een plek om dat te doen — ik had wel een volwaardige chat, maar geen klein "tunneltje" tussen de onveilige werkplek en de buitenwereld.

De makkelijke weg die ik had kunnen nemen

De voor de hand liggende aanname was: er zit al een microfoonknop in de bestaande chat, dus bouw daar gewoon spraakinvoer op voort. Tijdens het uitzoeken bleek die knop helemaal geen spraak-naar-tekst te doen — hij nam audio op en stuurde het bestand als bijlage door een beeldherkenningsroute die geen audio kan verwerken. Er bestond wél een werkende transcriptie-capability (Scaleway Whisper, Nederlandstalig), maar die werd alleen door een heel andere, generieke invoerroute gebruikt, niet door de web-app. Ik had dat gat kunnen negeren en gewoon meteen een volledige spraak-naar-tekst-ervaring erbovenop kunnen bouwen. Dat heb ik niet gedaan.

De keuze die ik maakte en de strategie erachter

Ik bouwde iets bewust kleins. Tunnel toont altijd maar één zichtbare uitwisseling — geen groeiende conversatiegeschiedenis, want bij een nieuw bericht verdwijnt het vorige automatisch. Dat is geen beperking die ik later moet oplossen; het is het hele punt. Een eigen, strikte correctie-capability doet precies één ding: grammatica en spelling corrigeren, niet samenvatten of herschrijven. En het doorsturen van een gecorrigeerd bericht naar mijn notities loopt niet via een directe databaseschrijving, maar via exact dezelfde invoerpijplijn die elk ander bericht in het platform ook doorloopt — bewust, voor consistentie, niet voor snelheid.

Wat het kostte

Het taalmodel bleek, zonder duidelijke instructie, spontaan "Gecorrigeerde tekst:" plus een wijzigingslijstje toe te voegen in plaats van alleen de kale tekst. Dat moest ik expliciet afdwingen in de capability zelf. En tijdens het testen liep ik tegen iets heel anders aan: de n8n-omgeving van mijn eigen agent-checkout stond vast op een oude workflowversie, waardoor een al bestaande, ongerelateerde capability stilletjes lege resultaten teruggaf die tóch als "geslaagd" werden gelogd. Niet een Tunnel-bug — maar wel mijn tijd, voordat ik kon verifiëren dat Tunnel zelf werkte.

Wat het nu oplevert en wat ik ervan leerde

Een directe, concrete oplossing voor de frictie uit aflevering 0 — acht maanden later, niet vergeten. En een scope die ik bewust klein hield: spraakinvoer in de tool zelf en het opruimen van losse kopieerknoppen elders in de app staan met naam genoemd als "niet nu, bewust later." Dat is dezelfde discipline die door deze hele reeks terugkomt: een klein, afgebakend probleem oplossen in plaats van het meteen groter te maken dan nodig.