Context
Ik wilde mentale belasting zien aankomen in plaats van achteraf ontdekken. Toen mijn zoontje bijna twee jaar geleden werd geboren, liep ik vaker vast. Ik merkte het meestal pas als ik er al dagen in zat, en een rustige avond hielp dan niet meer. Vlak voor die tijd ontdekte ik dat ik autistisch ben en kreeg ik meer begrip voor dat patroon.
Ik wilde weten wanneer ik overbelast raak, wat er aan de voorkant van komt en wat me helpt terug te keren naar evenwicht. En ik wilde die data niet bij een ander hebben liggen, dus moest ik het zelf ontwikkelen.
Vireo: ik ben groen
Vireo komt uit het Latijn en betekent ‘ik ben groen’ of ‘ik bloei’. Groen staat voor een moment waarop je lekker in je vel zit en genoeg ruimte hebt voor de dingen om je heen.
Aanpak
Vanuit die vraagstelling: eerst een concreet productidee, daarna pas code. De UX werkte ik uit in Google Stitch, een AI-ontwerptool, zodat ik de check-ins en de tijdlijn kon zien en testen voordat er een datamodel onder lag. Daarna bouwde ik de app met Claude Code via een eigen skill-werkwijze, waarin elke stap vastligt (datamodel, implementatie, review) in plaats van los te chatten met een model.
De basis kwam uit WhatsNext, mijn eigen starter voor persoonlijke tools (zie het gerelateerde project onderaan): auth, database en projectstructuur stonden er daardoor al, zodat ik direct aan het product kon werken in plaats van aan de setup.
Vanaf het begin één bewuste scope-keuze: ik ben de eerste gebruiker, met mijn eigen data. Geen accounts voor anderen, geen analytics, geen advertenties. Dat hield de techniek klein en liet me snel testen of het concept werkt, voordat ik aan meer gebruikers denk. Die keuze bepaalde later elke technische beslissing.
De app is ondertussen gebruiksvoorwerp én meetinstrument geworden: ik log elke dag, en de app toont me periodiek welke patronen erin zitten.
Idee & scope
Overprikkeling zien aankomen in plaats van achteraf ontdekken. Ik als eerste gebruiker, met mijn eigen data, om het concept snel te testen.Design
De UX uitgewerkt in Google Stitch: check-ins en tijdlijn zien en testen vóór er een datamodel lag.Build
Auth, database en structuur uit WhatsNext, gebouwd met Claude Code via een eigen skill-werkwijze.Release
Uitrol op Vercel.Doorontwikkeling
Dagelijks loggen; de patronen in de app bepalen wat er daarna bij komt.
Technische diepgang
Privacy als uitgangspunt. Next.js, React en TypeScript, met Better Auth voor inlog: magic link of Google SSO, beide begrensd op een e-maildomein. Die beperking wordt op twee plekken gecontroleerd, zodat ze niet te omzeilen is door over te stappen op een andere methode. De database is Postgres via Prisma, met row level security op deny-all: er is geen enkele route waarlangs een client zelf bij de data kan.
Eén score, vier staten. Energie, prikkels, stress en stemming worden elk gewogen en samengebracht tot één belasting-score, vertaald naar vier stappen: in balans, alert, onder druk en overbelast. Die score voedt de tijdlijn met filters. Overprikkelde momenten krijgen een eigen vierstapsformulier met diepere vragen, zodat de oorzaak niet in de dagelijkse check-in verdwijnt maar er wel bij blijft staan. Een losse reflectie later vult aan wat ik toen nog niet kon benoemen.
AI bovenop cijfers, niet ernaast. Een deterministische laag berekent zelf de patronen: trends per weekdag, dagdeel en maand, de triggers die het vaakst voorkomen, het effect van activiteiten op de belasting, hersteltijd na een zwaar moment. De AI krijgt die cijfers en vat ze samen; hij rekent niet en verzint geen verklaringen. Vercel AI SDK met Anthropic, met een CLI-fallback op Claude Code zelf.
Ontzettend in de achtergrond. Herinneringen en waarschuwingen lopen via een eigen jobqueue in de database, met web push als kanaal. De cron-trigger komt externa, de verwerking gebeurt in een eigen route. Een overload-waarschuwing wordt alleen verstuurd als ik op dat moment nog steeds in die zone zit, dus niet op basis van een check-in van drie uur geleden.
Componenten apart getest. De UI staat in Ladle-stories met mockdata, zodat elke component in elke state bekeken kan worden zonder de database. De onzuivere rekenlogica (hersteltijd, patronen, activiteitseffecten) zit in Vitest-tests.
Resultaat
Ik gebruik Vireo dagelijks. Voor mij is dat de echte test, want pas als ik het zelf blijf gebruiken, is het meer dan een experiment. Het heeft me vooral één ding geleerd, dat ik beter in het herkennen van mijn eigen signalen ben dan ik dacht.
Praktisch: ik pak nu eerder rust dan vroeger. Waar ik een overprikkelde periode eerst herkende als ik er al middenin zat, zie ik nu de opbouw in de tijdlijn terug, meestal met herkenbare triggers eronder.
Wat het niet is: een diagnose of een medische tool. Het is een meetinstrument, bewust privé gebouwd: de data blijft van de gebruiker, en de AI krijgt alleen cijfers te zien wanneer de gebruiker daar zelf om vraagt. Nu het voor mij werkt, is de volgende vraag of het ook anderen kan helpen hun mentale belasting eerder te herkennen.



