Hallo, ik ben Monique

Web professional met een passie voor informatie-architectuur, WordPress en leren coderen. Hier deel ik mijn projecten, experimenten en gedachten.

Een kennisbank opbouwen met AI

Een kennisbank opbouwen met AI Vandaag heb ik opgeruimd. Niet mijn bureau (dat is hopeloos), maar mijn projectenmap. Wat begon als “even die losse bestanden consolideren” werd een complete herstructurering van hoe ik kennis bewaar. De situatie Ik werk aan meerdere projecten tegelijk: een Zweedse taal-app, een gezondheids-tracker, een recepten-app, een statische website. Elk project heeft een LEARNINGS.md waar ik vastleg wat ik leer. Safari bugs, iOS quirks, dat soort dingen. ...

December 5, 2025 · 4 min · Monique Dubbelman

De onzichtbare poortwachter

Twee dagen lang werkte hetzelfde veld niet. Ik vulde “lezen” in, klikte opslaan, ging terug - en het vakje was weer leeg. Elke keer opnieuw. Dit is het verhaal van een bug die me leerde dat AI-gegenereerde code zijn eigen valkuilen heeft. En dat mijn samenwerking met Claude nog lang niet vlekkeloos is. De frustratie Het begon simpel. Claude had twee nieuwe velden toegevoegd: “lezen” (een checkbox) en “energie” (een emoji selector). De code zag er goed uit. De tests slaagden. Maar op mijn telefoon verdween de data gewoon. ...

December 5, 2025 · 3 min · Monique Dubbelman

AI agents als virtueel team

AI agents als virtueel team Vandaag deed ik iets raars. Ik stelde een vraag aan een Product Owner, liet een UX Designer wireframes maken, en vroeg een Developer om te implementeren. Niemand van hen bestaat. De situatie Svenska Kat is mijn Zweedse taal-app. Na maanden van feature-toevoegingen was het een rommeltje geworden: te veel klikken, te veel keuzes. Je kent het wel. Tijd om op te ruimen dus. Maar waar begin je? En hoe voorkom je dat je zomaar wat gaat slopen zonder na te denken? ...

December 4, 2025 · 4 min · Monique Dubbelman

Een onderwijskundige in mijn AI-team

Een onderwijskundige in mijn AI-team Vandaag realiseerde ik me dat mijn taalleer-app geen idee heeft hoe mensen leren. Het probleem Ik bouw Svenska Kat, een app om Zweeds te leren. Er zit een “Daily Program” in: elke dag 10 zinnen oefenen. Klinkt logisch. Maar toen ik kritisch keek, zag ik het probleem: 10 willekeurige zinnen, geen didactische logica Alleen typen en uitspraak, geen variatie Grammatica staat los van de oefeningen Geen spaced repetition, geen review Het was alsof ik een fitness-app had gebouwd die zegt “doe elke dag 10 oefeningen” zonder te weten welke spiergroepen je traint. ...

December 3, 2025 · 3 min · Monique Dubbelman

De kunst van bug hunting

Vandaag een korte maar leerzame sessie. Geen nieuwe features, alleen bugs opruimen. En dat bleek verrassend interessant. De lijst Drie issues stonden open: #44: Cafeïne statistieken tonen verkeerde data #45: Energie en habits worden niet opgeslagen #49: Statistieken werken niet goed Klinkt als een ramp. Maar de werkelijkheid was genuanceerder. De echte bugs Issue #44 was legitiem. De app had twee formaten voor cafeïne data: een oud format (caffeineConsumed: true/false) en een nieuw format (caffeineCount: 2). De statistieken snapten alleen het oude format. ...

December 3, 2025 · 2 min · Monique Dubbelman

Mijn AI-team gedraagt zich als mensen

Mijn AI-team gedraagt zich als mensen Gisteren was ik gefrustreerd. Mijn AI-team negeerde de regels. Pushte direct naar main. Sloeg lokaal testen over. Vergat de design principles te checken. Het leken wel echte mensen. Wat er mis ging Twee projecten. Zweedsapp en habittracker. Dezelfde problemen. Features gingen live zonder testen. Functionaliteit die werkte, werkte ineens niet meer. Design principes die ik zorgvuldig had opgeschreven werden genegeerd. De CLAUDE.md bestanden waren uitgebreid. De regels stonden er. Maar ze werden niet gevolgd. ...

December 1, 2025 · 2 min · Monique Dubbelman

Mijn eigen gewoontes

Mijn eigen gewoontes Elke health tracker heeft dezelfde checkboxes. Slaap. Water. Beweging. Maar mijn leven is niet standaard. Vandaag bouwde ik custom habits. Het probleem met standaard trackers Ik wil bijhouden of ik heb gemediteerd. Of ik piano heb gespeeld. Of ik die ene stretching routine heb gedaan. Geen enkele tracker heeft precies die dingen. Je kunt kiezen uit hun lijstje, maar niet je eigen toevoegen. Tot nu. Hoe het werkt In de instellingen staat nu een nieuwe sectie: Custom Habits. Je klikt op “Nieuwe habit toevoegen”, typt een naam, kiest een emoji, klaar. ...

November 30, 2025 · 2 min · Monique Dubbelman

Vijf dingen af in één sessie

Vijf dingen af in één sessie Soms stroomt het gewoon. Je begint met “waar was ik gebleven?” en twee uur later heb je vijf verbeteringen doorgevoerd. Vandaag was zo’n dag. Hulp van een virtuele product owner Ik had een probleem: te veel ideeën, te weinig tijd. Wat moet ik eerst doen? Normaal zou ik gewoon beginnen met wat het leukst lijkt. Maar deze keer vroeg ik het aan Tessa - mijn virtuele product owner. ...

November 29, 2025 · 3 min · Monique Dubbelman

De mens achter de prompt

De mens achter de prompt Na zeven sessies en een werkende app is het tijd voor een eerlijk gesprek. Want de verhalen hiervoor kunnen een verkeerd beeld geven. Het misverstand “De AI bouwde een app in 16 uur.” Dat is wat de cijfers zeggen. Maar het is niet het hele verhaal. Wat ik doe (en waarom het ertoe doet) De juiste vragen stellen De AI kan alles bouwen. Maar alleen als je weet wat je moet vragen. ...

November 29, 2025 · 3 min · Monique Dubbelman

iOS polish - pull-to-refresh & wheel picker

iOS polish “Het moet aanvoelen als een echte app” De app werkt. De app is live. Maar… het voelt nog als een website. Tijd voor native feel. Pull-to-refresh (30 min) Je kent het. Trek naar beneden, de app refresht. Zo simpel, zo verwacht op iOS. Trek naar beneden → Refresh indicator 80px threshold voor trigger Smooth animatie overscroll-behavior voor browser compatibility Feels: Net een native app! De code let startY = 0; let pulling = false; element.addEventListener('touchstart', (e) => { if (window.scrollY === 0) { startY = e.touches[0].pageY; pulling = true; } }); element.addEventListener('touchmove', (e) => { if (!pulling) return; const diff = e.touches[0].pageY - startY; if (diff > 80) { // Show indicator, trigger refresh } }); Simpel. Effectief. Native feel. ...

November 29, 2025 · 2 min · Monique Dubbelman