Van Hobby naar Project
Je prototype werkt. Mensen gebruiken het. Nu wordt het serieus. Hoe maak je van een vibe code experiment een professioneel product?
Het moment dat het serieus wordt
Er is een moment waarop je vibe code project stopt met een experiment te zijn. Misschien krijg je je eerste betalende klant. Misschien hangt je eigen werk ervan af. Misschien beginnen mensen het door te sturen naar anderen. Dat moment is spannend, maar het brengt ook een realisatie: wat je hebt gebouwd is niet klaar voor de druk die eraan komt.
Dit is geen reden voor paniek. Het is een teken van succes. Je hebt iets gebouwd dat waarde levert. Nu is de vraag: hoe maak je het robuust genoeg om die waarde te blijven leveren?
In deze afsluitende module nemen we je mee door de stappen die je project van hobbymatig naar professioneel brengen. Niet door alles weg te gooien en opnieuw te beginnen, maar door gericht te versterken waar het ertoe doet.
Herken je deze signalen?
Er zijn vijf duidelijke signalen dat je project de hobbyfase ontgroeit. Herken je er een of meer? Dan is deze module voor jou.
1. Mensen betalen ervoor
Zodra er geld in het spel komt, veranderen de verwachtingen. Betalende gebruikers accepteren geen downtime, dataverlies of onbetrouwbaar gedrag. Als je geld aanneemt, lever je een belofte.
2. Anderen zijn afhankelijk van je app
Je team gebruikt de tool dagelijks. Klanten plannen hun werk eromheen. Als je app een ochtend offline is, heeft dat directe impact. Die afhankelijkheid vraagt om betrouwbaarheid.
3. Je verwerkt persoonlijke data
Zodra je app namen, e-mailadressen, betaalgegevens of andere persoonsgegevens verwerkt, val je onder de AVG. Dat is geen suggestie — dat is een wettelijke verplichting.
4. Je kunt de code niet meer overzien
Je hebt honderden prompts gegeven, tientallen features gebouwd, en je snapt niet meer precies hoe alles samenhangt. Dit is het Spaghetti Point uit Module 6 — het signaal dat je structuur nodig hebt.
5. Je wilt een team betrekken
Of het nu een mede-oprichter is, een freelance developer of een stagiair: zodra iemand anders in je code moet werken, moet die code begrijpelijk, gedocumenteerd en gestructureerd zijn.
De professionaliserings-checklist
Niet alles hoeft tegelijk. Werk deze checklist af in volgorde van prioriteit: begin met de kritieke items en werk naar beneden.
Versiebeheer professionaliseren
Als je dat nog niet doet: gebruik Git. Elke wijziging wordt vastgelegd, je kunt altijd terug naar een werkende versie, en het is de basis voor samenwerking.
- Werk met branches: een
mainbranch die altijd werkt, en feature-branches voor nieuwe functionaliteit - Commit na elke werkende wijziging met een duidelijke beschrijving
- Gebruik Pull Requests, zelfs als je alleen werkt — het dwingt je om je eigen wijzigingen te reviewen
Beveiligingsreview
Laat je code reviewen op beveiligingsproblemen. Dit kan door een developer (zie Module 6), maar je kunt ook een eerste scan laten doen door AI. Zoek naar hardcoded API keys, SQL injection kwetsbaarheden, XSS-mogelijkheden, ontbrekende authenticatie op beschermde routes en data die zonder encryptie wordt verstuurd.
AVG-compliance basics
Als je persoonsgegevens verwerkt van EU-gebruikers (en dat doe je bijna altijd als je gebruikersaccounts hebt), moet je voldoen aan de AVG. De basis:
- Privacyverklaring op je website (wat verzamel je, waarom, hoe lang bewaar je het)
- Cookie-consent banner als je cookies plaatst
- Mogelijkheid voor gebruikers om hun data op te vragen en te laten verwijderen
- Verwerkersovereenkomst met je dienstverleners (Supabase, Vercel, etc.)
- Documenteer welke data je verzamelt en waar die wordt opgeslagen
Backups instellen
Als je database crasht en je hebt geen backup, ben je alles kwijt. Supabase maakt automatisch dagelijkse backups op het Pro-plan (€25/maand). Controleer of dit is ingeschakeld.
Monitoring en foutdetectie
Je wilt weten wanneer je app crasht, niet pas als een gebruiker klaagt. Sentry is de standaard voor foutmonitoring en heeft een genereuze gratis tier. Configureer het zo dat onafgevangen fouten automatisch worden gerapporteerd, API-fouten worden gelogd met context, en source maps zijn geconfigureerd.
Gebruikersanalytics
Je wilt weten hoe mensen je app gebruiken. Niet om ze te bespioneren, maar om te begrijpen waar ze vastlopen en welke features ze gebruiken.
| Tool | Wat het biedt | Prijs |
|---|---|---|
| Plausible | Europees, geen cookies nodig, AVG-compliant out-of-the-box | €9/maand |
| PostHog | Open-source, self-hostable, uitgebreide feature-analyse | Gratis tier |
| Vercel Analytics | Als je al op Vercel draait, de makkelijkste optie | Ingebouwd |
Documentatie schrijven
Niet voor de buitenwereld, maar voor jezelf over drie maanden. En voor iedereen die na jou in de code moet werken. Minimale documentatie:
- README.md: Wat doet het project? Hoe start je het lokaal? Welke environment variables zijn nodig?
- Architectuuroverzicht: Een simpele tekening of beschrijving van hoe de onderdelen samenwerken
- Database schema: Welke tabellen zijn er? Wat staat erin? Hoe hangen ze samen?
Custom domein instellen
Vervang je projectnaam.vercel.app URL door een eigen domein. Het kost €10–15 per jaar en geeft je project direct een professionelere uitstraling. Koop een domein bij een registrar (TransIP, Versio, Cloudflare), koppel het aan je Vercel-project, en HTTPS wordt automatisch geconfigureerd.
Statuspage, changelog en feedback
Een statuspage laat zien of je app online is. Tools als Instatus of BetterUptime monitoren je app en sturen een melding als hij offline gaat. Een changelog houdt bij wat je verandert — niet alleen voor je gebruikers, maar ook voor jezelf. En een feedbacksysteem maakt het makkelijk voor gebruikers om problemen te melden en suggesties te doen.
Opruimen: van AI-spaghetti naar leesbare code
Na weken of maanden van vibe coden is je codebase waarschijnlijk een lappendeken. Verschillende stijlen door verschillende prompts, dubbele code, functies die niemand meer aanroept, en naamgeving die nergens op slaat. Dat is normaal. Nu is het tijd om op te ruimen.
Stap 1: Verwijder dode code
Code die niet wordt aangeroepen, uitgecommentarieerde blokken, ongebruikte imports, overbodige bestanden. Ze maken je project onoverzichtelijk en verwarrend. Laat AI je codebase analyseren en identificeer functies en componenten die nergens worden gebruikt.
Stap 2: Standaardiseer naamgeving
AI-gegenereerde code gebruikt vaak inconsistente naamgeving. Het ene component heet UserProfile, het andere invoice_detail. Kies een conventie en pas die toe op alles: PascalCase voor componenten, camelCase voor functies, kebab-case voor bestanden.
Stap 3: Splits grote bestanden op
Als een bestand meer dan 200–300 regels heeft, is het waarschijnlijk te groot. Splits het op in kleinere, gerichte bestanden. Elk bestand moet een duidelijke verantwoordelijkheid hebben. Laat AI je helpen met de refactoring.
Stap 4: Voeg TypeScript types toe
Als je in TypeScript werkt (en dat zou je moeten), vervang alle any types door specifieke types. Dit voorkomt een hele categorie bugs en maakt je code zelfbeschrijvend. Maak interfaces aan voor je belangrijkste datastructuren.
Klaar voor samenwerking: je project overdraagbaar maken
Of je nu een developer inhuurt, een mede-oprichter krijgt of een team bouwt: je project moet begrijpelijk zijn voor iemand die het voor het eerst ziet.
De “dag-één” ervaring
Een nieuwe ontwikkelaar moet binnen 30 minuten je project lokaal draaiend hebben. Dat betekent:
- README met installatie-instructies
- Een
.env.examplebestand met alle benodigde variabelen en uitleg - Een werkend
npm install && npm run devcommando dat de app start - Seed data of instructies om testdata aan te maken
Test dit zelf: clone je repository naar een lege map en volg je eigen installatie-instructies. Werkt het? Dan is het goed. Werkt het niet? Fix het.
Code conventies vastleggen
Leg je codeerstijl vast in configuratiebestanden zodat ze automatisch worden afgedwongen, niet in een document dat niemand leest.
- ESLint configuratie (.eslintrc): definiëert codeerstijl en vangt veelgemaakte fouten
- Prettier configuratie (.prettierrc): zorgt voor consistente opmaak
- TypeScript configuratie (tsconfig.json): strikte instellingen aan
Branching strategie
Zelfs als je alleen werkt, bereid je alvast voor op samenwerking:
main: altijd werkend, altijd deploybaardevelop: werkbranch waar features samenkomenfeature/[naam]: een branch per feature of fix- Pull Requests van feature naar develop, van develop naar main
Communiceren als een professioneel product
Het verschil tussen een hobbyproject en een professioneel product zit vaak niet in de code, maar in hoe je communiceert met je gebruikers.
Wees transparant over problemen
Als je app offline is of een bug heeft, communiceer proactief. Een simpel bericht als “We zijn op de hoogte van het probleem en werken aan een oplossing” is beter dan stilte. Gebruikers accepteren problemen. Ze accepteren geen stilte.
Houd een changelog bij
Laat je gebruikers weten wat er verandert. Het hoeft niet fancy te zijn: een simpel overzicht met datums en wijzigingen is voldoende. Denk aan nieuwe features, bugfixes en verbeteringen.
Verzamel feedback structureel
Niet via willekeurige e-mails, maar via een vast kanaal:
- Een feedbackformulier in de app (een simpele Supabase-tabel is genoeg)
- Een dedicated e-mailadres (feedback@jouwapp.nl)
- Een publiek featureboard (tools als Canny hebben een gratis tier)
Prioriteer feedback op basis van frequentie (hoeveel mensen vragen erom?) en impact (hoe veel waarde levert het op?).
Geld verdienen met je vibe code product
Je hebt iets gebouwd dat waarde levert. Hoe vertaal je dat naar inkomsten?
Abonnementsmodel (SaaS)
Gebruikers betalen maandelijks voor toegang. Het meest voorkomende model voor webapplicaties. Implementeer met Stripe, bied een gratis tier aan om gebruikers binnen te halen, en een betaald tier voor premium features.
Voorbeeld: Gratis voor 5 facturen/maand, €9/maand voor onbeperkt.
Eenmalige betaling
Gebruikers betalen een keer voor permanente toegang. Simpeler dan een abonnement, maar minder voorspelbare inkomsten. Geschikt voor templates, downloads en tools zonder doorlopende serverkosten.
Freemium
De basisversie is gratis. Geavanceerde features zijn betaald. Dit model werkt goed voor gebruikersgroei: mensen beginnen gratis en upgraden als ze waarde ervaren. Geschikt voor producten waar de gratis versie al waarde levert.
Commissie/transactie
Je neemt een percentage van elke transactie die via je platform loopt. Geschikt voor marktplaatsen, boekingsplatformen en bemiddelingstools.
De juridische basis: wat je minimaal moet regelen
Disclaimer: dit is geen juridisch advies. Raadpleeg een jurist voor je specifieke situatie. Dit zijn de minimale stappen die de meeste SaaS-producten in Nederland nodig hebben.
Algemene voorwaarden
Beschrijf de spelregels voor het gebruik van je product. Wat mag de gebruiker? Wat mag niet? Wat is je aansprakelijkheid? Er zijn online generators die een basis opleveren, maar laat ze reviewen door een jurist zodra je betalende klanten hebt.
Privacyverklaring
Verplicht onder de AVG. Beschrijf welke persoonsgegevens je verzamelt, waarom, hoe lang je ze bewaart, en met wie je ze deelt. Wees eerlijk en specifiek.
Verwerkersovereenkomsten
Als je diensten als Supabase, Vercel of Stripe gebruikt om persoonsgegevens te verwerken, heb je een verwerkersovereenkomst nodig met elk van die diensten. De meeste grote platforms bieden deze standaard aan.
KvK en BTW
Als je structureel geld verdient met je product, moet je ingeschreven staan bij de Kamer van Koophandel. Verkoop je aan consumenten of bedrijven in Nederland en de EU? Dan moet je BTW in rekening brengen. Stripe kan dit deels automatiseren via Stripe Tax.
Je groeiplan in drie fasen
Focus: betrouwbaarheid en vertrouwen
- Beveiligingsreview uitvoeren en kwetsbaarheden fixen
- Monitoring en foutdetectie instellen (Sentry)
- Backups verifiëren
- Pre-deploy checklist volgen bij elke release (Module 7)
- Basisdocumentatie schrijven (README, architectuur, database schema)
- AVG-basics implementeren (privacyverklaring, cookie consent)
Succesindicator: je app draait een maand zonder onverwachte downtime.
Focus: gebruikers en waarde
- Analytics instellen en gebruikersgedrag analyseren
- Top 3 meestgevraagde features bouwen op basis van feedback
- Betalingsintegratie opzetten (als je dat nog niet hebt)
- Marketingsite of landingspagina verbeteren
- SEO-basics implementeren
- Code opschonen en refactoren
- Eerste code review door externe developer
Succesindicator: je hebt betalende gebruikers en een groeiende gebruikersbasis.
Focus: team en structuur
- Eerste developer inhuren of inschakelen (freelance of parttime)
- Branching strategie en code conventies formaliseren
- CI/CD pipeline opzetten (GitHub Actions, zie Module 7)
- Architectuur reviewen en versterken waar nodig
- Juridische basis formaliseren (KvK, voorwaarden, eventueel BV)
- Customer support workflow inrichten
Succesindicator: je team kan zelfstandig features bouwen en deployen zonder dat jij bij elke stap betrokken bent.
Van bouwer naar eigenaar
De grootste verschuiving bij het professionaliseren van je project is niet technisch. Het is mentaal.
Als hobbyist ben je een bouwer. Je experimenteert, je itereert snel, en als iets niet werkt gooi je het weg en begin je opnieuw. Fouten zijn leermomenten. Downtime is niet erg. De enige die het merkt ben jij.
Als eigenaar van een product ben je verantwoordelijk. Mensen rekenen op je. Elke wijziging heeft consequenties. Je maakt niet alleen technische keuzes, maar ook zakelijke keuzes. Bouw je feature A of feature B? Investeer je in stabiliteit of in groei? Huur je een developer in of doe je het zelf?
Dit is geen reden om te stoppen met vibe coden. Het is een reden om het bewuster te doen. De snelheid en flexibiliteit van vibe coden zijn precies de eigenschappen die je als product-eigenaar nodig hebt: snel inspelen op feedback, snel experimenteren met nieuwe features, snel itereren op basis van data.
Het verschil is dat je nu ook de dingen doet die minder leuk zijn: testen, documenteren, beveiligen, communiceren. Niet omdat je moet, maar omdat je product en je gebruikers het waard zijn.
Je reis tot nu toe
Je bent begonnen bij Module 1, waar je leerde wat vibe coden is. Je hebt je stack gekozen in Module 2, je eerste MVP gebouwd in Module 3 en geleerd hoe je het veilig doet in Module 4. Je hebt de kunst van het prompten onder de knie gekregen in Module 5, de architectuur- en kostenvragen beantwoord in Module 6, en leren testen zonder testteam in Module 7.
En nu, in Module 8, heb je de stappen gezet om van een hobby een echt project te maken.
Dat is geen kleine prestatie. Een jaar geleden had je een idee. Nu heb je de kennis en de tools om het te bouwen, te lanceren en te laten groeien.
De tools worden elke maand beter. De community groeit. En jij hebt nu de basis om mee te groeien.
Bouw iets moois.
De complete modulereeks
Dit was de laatste module in de Vibe Coden serie. Bekijk de andere modules om je kennis compleet te maken.