Context
Elke keer dat ik een nieuw persoonlijk project begon, deed ik dezelfde setup opnieuw: auth, database, basisstructuur. Dat wilde ik één keer goed oplossen.
Aanpak
Een Next.js-starter waarin elke optionele module (auth-methode, database, integraties als Slack/GitHub/Notion) al klaarstaat maar uitgecommentarieerd is. In een webwizard beschrijf ik wat de tool moet doen en beantwoord ik een korte vragenlijst. Daar komt een spec uit, en een AI-agent activeert precies de juiste modules, verwijdert de rest en bouwt de tool af. De map die je kloont, wórdt de tool, in plaats van dat er iets nieuws gegenereerd wordt.
Idee & scope
Niet bij elk project dezelfde setup opnieuw doen: één keer een starter bouwen waar een AI-agent direct mee verder kan.Starter & modules
Next.js-basis met auth, database, e-mail, jobs, realtime, AI en zes integraties als geteste, uitgecommentarieerde modules.Wizard
Een webwizard met AI-voorstellen die de spec schrijft en de build start, zonder dat ik de terminal in hoef.Gebruik & doorontwikkeling
De wizard
Alles begint in de webwizard. Ik beschrijf in één of twee zinnen wat de tool moet doen en de AI schrijft dan een voorstel voor álle antwoorden. Bij elke vraag staat een aanbevolen keuze met een korte toelichting, die ik kan overnemen of aanpassen. Wat me niet interesseert, laat ik op de standaardwaarden staan. Als voorbeeld nam ik een simpele notitie-app: QuickNotes.
Basis & scope
Wat ik bouw, voor wie, en wat bewust buiten scope valt.Toegang & data
Wie erbij mag (openbaar, gedeeld wachtwoord of eigen login) en of er een database nodig is.Mogelijkheden
Externe integraties, AI-calls, realtime updates en achtergrondtaken.Ontwerp & talen
Uiterlijk, navigatie, hoofdweergave (tabel, formulier of dashboard) en taalondersteuning.Context & aanvullingen
Alles wat de bouwer nog moet weten, plus een paar door de AI aangescherpte vragen.Review & genereren
De gegenereerde spec nalopen en bijstellen, en daarna de build starten.
Van spec naar app
Het resultaat van de wizard is een docs/SPEC.md: de blauwdruk die ik kan
lezen, kopiëren, downloaden of bijstellen, inclusief openstaande vragen en
aannames. Met "Build tool" kies ik waar de tool komt (de huidige of een nieuwe
map) en start de build automatisch tegen de goedgekeurde spec.
De build zelf draait zonder mij, maar ik kan live meekijken. De agent zet eerst git op als terugvalpunt, haalt weg wat de tool niet nodig heeft, past de rest aan en controleert zijn eigen werk met typecheck, lint, tests en een draaiende dev-server. Daarna commit hij het resultaat.
Technische diepgang
Next.js, React, Tailwind en shadcn/ui. Auth-opties: geen, gedeeld wachtwoord, of per-gebruiker (Better Auth: magic-link, e-mail-OTP of SSO), met optionele 2FA en domein-allowlist. Database: geen of SQLite via Prisma. Integraties draaien in "globale" modus (één gedeelde API-sleutel) of "connector"-modus (per-gebruiker OAuth, tokens AES-256-GCM versleuteld). Door alles als uitgecommentarieerde, al-geteste code te behandelen in plaats van iets te laten genereren, blijft de output altijd type-safe en lint-clean, ook de delen die (nog) niet aanstaan.
Optioneel: skills. Wie liever in de terminal werkt, doet dezelfde route in
Claude Code of Cursor: /new-tool stelt de vragen in de chat en /build-tool
bouwt de spec om. Voor daarna zijn er /add-feature, /health-check en
/improve.
Resultaat
- van spec tot werkende app
- <15m
- stappen door de agent
- ~150
- integraties klaar voor gebruik
- 6
Ik gebruik 'm actief telkens als ik een nieuwe persoonlijke tool start, een gestandaardiseerde stack waar ik op vertrouw, makkelijk te onderhouden naast mijn andere projecten. Taskly en Vireo zijn er daadwerkelijk mee gebootstrapt. Ik gebruik mijn eigen starter dus niet alleen in theorie. Het ontwikkelen van een nieuwe app gaat er zo'n 100x sneller door.
Het voorbeeld uit de wizard liet dat goed zien: in 14 minuten en 30 seconden (149 stappen) stond er een complete notitie-app met aanmaken, bewerken, zoeken, favorieten, Markdown-voorbeeld en een prullenbak. Inclusief werkende tests, een doorlopen API en een commit.


