"Kunnen we Replit nu wel deleten?"

Vibe coding · 5 min leestijd
"Kunnen we Replit nu wel deleten?"

Migraties gaan mis op het moment dat alles al klaar lijkt. De site draait, de DNS klopt, het voelt goed — en dan sla je de verkeerde vraag over. Ik deed het. Claude Code deed het ook. En samen kostte ons dat twee dagen waarvan ik er liever een paar vergeet. Dit is het verhaal van een bijna-ramp, wat er écht fout ging, en waarom "klaar" soms de gevaarlijkste gedachte is.

28 februari 2026 • Vibe coding • Door: Peter

Ik ben bijna alles kwijtgemaakt door één vraag.
"Claude, kunnen we Replit pb.nl nu wel deleten al?"
En ik wist het eigenlijk al terwijl ik het typte. Twee en een halve gigabyte aan data, maanden werk, alles wat ik had gebouwd. Gewoon: laat staan dat ding nog even. Maar nee. Zuinig beslissinkje. Klik. Klaar.
En toen was de database leeg.

Hoe het zover kwam

NON TECH: IK wilde deze site pb.nl verhuizen (migreren) naar een nieuwe omgeving bij bedrijf Vercel
De migratie naar Vercel was al een gevecht op zich. Geen grote problemen, maar elk dingetje kost tijd. En dan heb je het ook nog eens 's avonds laat voor elkaar — site live, DNS via Cloudflare, pb.nl draait op Vercel.
Gevoel van: top. Klaar. Goed gedaan Peet.

Maar hier had iemand een vraag moeten stellen. Ik niet, en Claude Code ook niet.
Want die Neon database — die stond helemaal niet in mijn eigen Neon account. Die draaide nog volledig vanuit Replit. Replit had hem aangemaakt, Replit beheerde hem. En niemand — ook Claude Code niet — had gevraagd: "Staat die database eigenlijk in jóuw eigen account, of nog via Replit?"

Dat is de vraag die de hele ramp had voorkomen. Eén controlemoment. Twee minuten checken. Maar we waren allebei te snel door de technische checklist heen gegaan. De code werkte, de verbinding werkte, de site draaide — dus het voelde klaar. Dat is precies wanneer je juist even moet stoppen.

De volgende dag checken: lege database.
De Neon PostgreSQL database die via Replit was aangemaakt was niet meer bereikbaar. Gewoon weg. Geen waarschuwing, geen migratie-optie, geen "hé weet je het zeker?".
79 blogposts. 39 likes. 7 homepage banners. 609 F1 nieuwsitems. 261 lookbook beelden. Zappa studio. Maanden.
Ik werd gek.

Replit support: wachten

Ik heb gelijk Replit support aangeschreven. Normaal reageren ze snel — maar nu duurde het lang. Langer dan ik gewend was. Niets. Stilte. En dan ga je nadenken. Is het echt weg? Kan dit zomaar? Wat heb ik gedaan?
Maar ergens in mijn achterhoofd bleef iets hangen. Zo denk ik in dit soort gevallen altijd: ja maar als, en kan toch ook dat. Steeds maar weer dezelfde gedachteloop, op zoek naar een opening. Er moet ergens iets zijn.
Ik bleef proberen. Andere connection strings. Andere regio's. Alles wat ik kon bedenken.
En toen: "password authentication failed."
Wacht eens even.
Password authentication failed is niet hetzelfde als "server niet bereikbaar." Hij weigerde het wachtwoord — maar de endpoint leefde nog. Die server draaide gewoon nog. Verkeerde regio geprobeerd: c-3.eu-central-1 in plaats van c-2.us-west-2.

CONNECTED.
Alle 45 tabellen. Alles. Gewoon nog steeds aanwezig.
Binnen vijf minuten een migratiescript geschreven. Alles overgezet naar de nieuwe database. 45 tabellen, 0 errors.

Wat er écht verloren was

Na de euforie even rustig doorzoeken. Resultaat: 10 beelden uit een Runway AI blogpost en 1 Zappa identity image — die stonden op Replit Object Storage, niet op Cloudflare R2. Dat gedeelte is niet meer bereikbaar. Die upload ik handmatig opnieuw.

Van duizenden bestanden en tientallen tabellen: 11 beelden kwijt. De rest: 100% intact.

Wat ik ervan heb geleerd (écht, niet als buzzword)

Vertrouw de AI niet blind — en de AI moet jou ook beter bevragen. Claude Code had moeten vragen: "Staat die Neon database in jóuw eigen account?" Deed hij niet. Ik had het zelf moeten checken. Deed ik ook niet. We waren allebei te snel. Een goede samenwerking betekent ook dat je elkaar de cruciale vragen stelt, zeker vlak voor je iets onomkeerbaars doet. Ik heb geleerd: neem de tijd, verifieer de basis, vertrouw het gevoel van "klaar" niet te snel.
Weet waar je data staat. Precies. Ik had beelden op drie plekken: Cloudflare R2, Neon PostgreSQL en Replit Object Storage. Twee van de drie overleefden de migratie. Had ik dat vooraf geweten, had ik de derde eerst verplaatst.
Dump alles voordat je migreert. Niet "de API werkt nog, ik kan het later ophalen." Nee. Dump. Alles. Vooraf. Serieus.
Bewaar je credentials. De oude database URL stond nog in .env.local. Dat redde alles. Had ik dat bestand opgeruimd, was de data écht weg geweest.
Soms moet je even afstand nemen. Twee dagen lang dacht ik dat het weg was. De frustratie, de boosheid, het gevoel dat maanden werk voor niets waren. En toen bleek de database gewoon nog te leven. Geduld is verschrikkelijk, maar het loont.

Over Replit afsluiten

Het voelt wel gek, eerlijk gezegd.
Mijn eerste echte ervaring in vibe coding was met Replit. Het grote voordeel was dat meekijken — adhoc dingen direct live bouwen, meteen zien wat er gebeurt, geen setup, geen gedoe. Voor iemand die jarenlang naast developers had gezeten maar zelf nooit echt had geschreven, was dat goud. Het nodigde uit om gewoon te doen.
Maar ik ben nu zelf veel stappen verder. Vercel, Claude, terminal — het past nu beter bij hoe ik werk. En dat ik als designer ook nog zoveel met de terminal ben gaan werken had ik nooit gedacht. Dat had Replit in gang gezet.
Dus: dank, Replit. Het was een goed begin.

En nu: Vercel Pro, eigen Neon PostgreSQL, Cloudflare R2. Geen platformafhankelijkheid. 45 tabellen intact. Nul afhankelijkheid van derden voor de hoofdsite.
Van compleet dataverlies naar volledig herstel in 48 uur.
Die 48 uur waren de zwaarste van het hele project. Maar het einde klopt.

— Peter
pb.nl draait nu volledig op Vercel Pro + eigen Neon PostgreSQL + Cloudflare R2
ENDOOR