We bouwden de assistent als één samenhangend platform in plaats van als losse AI-functies bovenop bestaande tools. Na ongeveer zeven maanden doorlopende ontwikkeling staat er circa 341.000 regels TypeScript, verdeeld over 77 databasemodellen en 56 API-routers, met 298 testbestanden en releases via een CI/CD-pijplijn met rollback-workflow. Het draait in productie en wordt intern dagelijks gebruikt, in twee werkruimtes: een zakelijke en een persoonlijke.
De kern is een planner die taken zelf inroostert op basis van deadline, prioriteit en werkelijk beschikbare tijd. Hij vult dus geen lijst, maar een kalender. Daaromheen zit een feedback-loop: het systeem registreert welke voorgestelde planningen worden geaccepteerd, welke worden aangepast en welke worden afgewezen, en gebruikt dat om volgende voorstellen bij te sturen. Een blok dat je zelf hebt verplaatst wordt gelockt en daarna niet meer automatisch verzet — de assistent overschrijft geen menselijke beslissing.
“
Ontwerpdoel van deze feedback-loop: de planning moet beter aansluiten op hoe er in de praktijk gewerkt wordt naarmate hij langer draait. Dat is het gestelde ontwerpdoel; we hebben geen gemeten leercurve of productiviteitscijfer om dat mee te onderbouwen.
Eromheen zit volwaardig projectmanagement: Kanban, een Gantt-/timelineweergave, milestones, terugkerende taken en tijdregistratie met planned-versus-actual-rapportage. Die laatste is belangrijk voor de planner zelf: geregistreerde tijd is het enige eerlijke tegenwicht tegen optimistische inschattingen.
Een planner die de agenda niet kent, plant naast de werkelijkheid. Daarom synchroniseert het platform in twee richtingen met Google Calendar en Microsoft Outlook, elke vijftien minuten via jobqueues. Afspraken uit beide agenda's zijn zo bezette tijd voor de planner, en ingeplande blokken verschijnen omgekeerd in de agenda.
De boekhouding is gekoppeld via Invoice Ninja: klanten, facturen, betalingen en uitgaven stromen naar de kennisbank van de assistent, zodat financiële context onderdeel is van elk antwoord in plaats van een apart tabblad. Op die koppeling draait ook een automatische herinneringsstroom voor openstaande facturen, met escalatietrappen op 0, 7, 14, 30 en 45 dagen — van een vriendelijke herinnering tot een aankondiging van incasso. Dat is precies het type opvolgwerk dat in een klein bedrijf structureel blijft liggen.
De assistent is bereikbaar waar het werk toch al gebeurt: via Slack, Microsoft Teams, Discord en Telegram, aangevuld met realtime notificaties en web-push. Taakbeheer gaat in natuurlijke taal via een orchestrator met tools voor taken, CRM, doelen, rapporten, zoeken en analyse; je beschrijft wat er moet gebeuren en de assistent kiest de bijbehorende actie.
De inhoudelijke laag is een kennisbank op PostgreSQL met pgvector: semantisch zoeken met een full-text fallback, over bedrijfsmodellen voor klanten, producten, financiën, doelen en processen. Dat is de RAG-component (retrieval-augmented generation): niet het taalmodel bepaalt wat het over dit bedrijf weet, maar de zoekstap die eraan voorafgaat. Wie een klant hernoemt of een doel bijstelt, verandert daarmee direct wat de assistent antwoordt — zonder dat er iets aan het model verandert.
Daarop draaien advisory-rapporten die meerdere AI-perspectieven combineren: een dagelijkse briefing, een weekrapport en meeting-voorbereidingen, met topprioriteiten, risico-alerts en concrete action-items. Die action-items zijn geen tekst maar objecten met een opvolg-workflow, zodat een advies niet doodloopt in een document dat niemand herleest.
De laatste stap is de stap waar de meeste AI-implementaties stoppen. Het platform draait AI-agents in een sandbox, met een sessie-lifecycle, capaciteitsrouting en geheugen per werkruimte. De assistent kan daardoor zelf werk uitvoeren in plaats van er alleen over te adviseren. Wie wil weten hoe zo'n agent technisch in elkaar zit, leest hoe je een AI-agent bouwt; wat wij daarvan voor opdrachtgevers bouwen staat op AI Agents.
De AI-laag is bewust multi-provider met automatische fallback: er lopen onder meer de Claude-modellen van Anthropic in mee, plus lokale modellen voor embeddings, en het tokenverbruik wordt per werkruimte bijgehouden. Valt één provider weg, dan blijft het platform werken — een eis die zwaarder weegt naarmate je bedrijfsvoering er echt van afhangt.
Het platform is tweetalig (Nederlands en Engels), waarbij de taal van de werkruimte ook de gegenereerde rapporten stuurt. De stack: Next.js (App Router), TypeScript en React aan de voorkant; PostgreSQL met pgvector, Prisma en tRPC eronder; BullMQ met Redis voor de jobqueues en Socket.io voor realtime updates; Playwright en Vitest voor de tests; Docker voor uitrol; authenticatie via Microsoft Entra ID.
Wat hier staat is de gebouwde functionaliteit en de omvang van een codebase die we zelf dagelijks gebruiken — 799 commits en ruim 438 pull requests sinds januari 2026. Wat er niet staat, zijn gebruikscijfers: hoeveel taken er zijn ingepland, hoeveel tijd het scheelt of hoe hoog de beschikbaarheid is. Die data verzamelen we niet gestructureerd, dus claimen we hem ook niet. De boodschap van deze case is smaller en eerlijker: dit niveau van integratie tussen AI, planning, agenda, administratie en uitvoering is bouwbaar, en wij hebben het op onszelf uitgeprobeerd voordat we het aan een opdrachtgever voorstellen.