Als u kunt typen of praten, kunt u dat waarschijnlijk ook sfeercode. Het is echt zo gemakkelijk. U deelt uw idee eenvoudigweg mee aan de AI-chatbot naar keuze met natuurlijke taal, en het gaat aan de slag. Hoewel niet alle projecten uiteindelijk een pareltje zullen zijn of zelfs maar volledig functioneel, is de moeite die het kost om een webapp te maken door alleen maar te chatten minimaal.
Ik heb nogal wat gespeeld met sfeercodering, waarbij ik hier en daar willekeurige projecten heb gemaakt. Ik heb het vooral uitgeprobeerd voor proof of concept of gewoon voor het testen van chatbots, maar zelden in een poging om iets zo cruciaal of functioneel te maken dat ik het mezelf dagelijks zou zien gebruiken. Toen ging ik op zoek naar een e-reader en liep gefrustreerd weg door hoe ongelooflijk “dom” de meesten van hen zijn, vooral Kindles. Daarover later meer.
Ongeacht de motivatie (maar vooral in weerwil van Amazon), bracht het mij ertoe om te proberen een oplossing te bedenken, maar dan met een twist. Ik wilde zien of ik een functionele e-leesapplicatie kon coderen met alle functies die ik wilde. Wetende dat zelfs als ik dit ding aan de praat zou krijgen, ik dit waarschijnlijk niet dagelijks zou gebruiken, maar ik wilde wat flair toevoegen.
De vraag werd welke AI-chatbot we moesten gebruiken. Ik heb niet de moeite genomen om te kiezen. Ik heb Gemini, Claude en ChatGPT gebruikt om te creëren wat ik wilde en kijk dan of er betere resultaten werden behaald.
De prompt
Het vergelijken van chatbots is moeilijk, vooral als je hetzelfde conversatie- of sfeercoderingsproject probeert na te bootsen. Geloof me, Ik heb het geprobeerd. Ik wilde er zeker van zijn dat alle tools die ik testte dezelfde prompt gebruikten, maar eerst wilde ik die prompt verfijnen om de beste resultaten te krijgen, dus bedacht ik een strategie om daar te komen.
Eerst heb ik het hele project op het meest basale niveau gebouwd met Gemini. Toen ik het eenmaal leuk vond waar het project zich bevond (succesvol en functioneel proof of concept), vroeg ik het om een prompt te maken zodat ik het aan elke andere chatbot kon toevoegen. Gemini heeft de prompt gegenereerd, ik heb het als bestand opgeslagen en naar Claude geüpload. Ik doorliep dit proces opnieuw, waardoor Claude dingen kon opsporen en repareren waar ik bij het bouwen van het project en Gemini niet aan had gedacht. Toen dat proces eenmaal was voltooid, vroeg ik hem om nog een prompt te maken, zodat ik deze aan ChatGPT kon toevoegen.
Het idee was om alle drie de chatbots enige input te laten hebben over de daadwerkelijke creatie van het project en, op hun beurt, de uiteindelijke prompt. Nadat de prompt was gemaakt, heb ik deze in een aparte chat naar alle drie de chatbots geüpload om te zien hoe consistent ze presteerden.
Het project: De Tome-lezer
Dit project is ontstaan uit mijn frustratie over de Kindle-apparaten van Amazon. Iedereen die graag zijn boeken leest en beluistert, kan dit doen met realtime markering in de app voor iOS of Android, maar na al die tijd – bijna 20 jaar – kun je dit niet op een Kindle doen. Het is zelfs nog niet zo lang geleden dat gebruikers de mogelijkheid kregen om tekstmarkering in realtime te realiseren terwijl de ondersteunende lezer speelde, wat zo dicht bij de functionaliteit van de app ligt. Vanaf nu kun je alleen een audioboek op Kindle lezen of beluisteren, en niet allebei, wat lachwekkend is, en dat gold ook voor het idee dat Amazon al mijn boeken zou bezitten. Ik begon te denken dat ik gewoon een oplossing kon coderen. Ik noem het de Tome Reader.
Ik wilde een meeslepende e-reader-webapplicatie maken die je boeken voorlas (uiteraard met realtime tekstmarkering), ongeacht of de tekst was geplakt of je eigen PDF- of EPUB-bestand was geüpload. Naast het voorlezen van de tekst, zou de webapp achtergrondmuziek creëren, afhankelijk van de inhoud van de tekst, in een subset van categorieën (neutraal, gothic horror, sci-fi, natuur, fantasy, onderwater, western, mysterie), en extra geluids- en visuele effecten genereren wanneer bepaalde triggerwoorden in realtime werden uitgesproken. Het hele project is in één HTML-bestand gemaakt, zodat het zonder extra afhankelijkheden in een webbrowser kon worden uitgevoerd.
Bouwen met de chatbots: De eerste ronde
Tweeling
Gemini maakte met relatief gemak alle functies die ik van de Tomb Reader wilde.
Met Gemini kon ik uitzoeken hoe ver ik de functie van deze webapp kon uitbreiden, en dus komt het grootste deel van de functionaliteit van de chatbot van Google. Hierdoor kon ik in het begin een aantal kleine problemen oplossen, waardoor de TTS-stemmen niet konden worden geladen. In plaats daarvan creëerde het een initialisatiescherm dat de stemmen dwong te laden nadat ze op een “open” scherm van de applicatie hadden geklikt. Zonder dit soort kennis zou het project niet van de grond zijn gekomen.
Langzaam maar zeker begon de functionaliteit van het project te groeien. Omdat live geluidseffecten voor bepaalde woorden afleidend kunnen zijn, heb ik ervoor gezorgd dat ik de optie heb toegevoegd om die geluidseffecten en de achtergrondmuziek uit te schakelen. Nadat ik de basis van de applicatie werkend had gekregen, vroeg ik Gemini om een prompt te maken die ik met andere chatbots kon delen, zodat ik deze elders kon bouwen als ik dat wilde, en dat is wat het deed.
Claude
Het project van Claude leverde mij op sommige gebieden het meeste succes op en op andere meer problemen, maar het is mijn persoonlijke favoriet van de drie testprojecten.
Claude heeft in dit project fantastische verfijningen aangebracht in de onderliggende functie van de triggerwoorden. Claude breidde de woordenschat uit en verhoogde de visualisatie wanneer een triggerwoord hardop werd uitgesproken. Dat gezegd hebbende, belde Claude waar ik niet om had gevraagd, hoewel de logica inderdaad logisch was.
Aanvankelijk dacht ik dat het project niet werkte, want toen ik de functionaliteit ervan ging testen, zou alleen het eerste triggerwoord het gewenste effect creëren in een reeks van bijna tien. Het duurde even voordat Claude eindelijk onthulde dat hij had besloten om de geluids- en visuele effecten slechts één keer per zin te laten activeren, om de gebruiker niet te “spammen”. Dit was heel logisch, maar het project was meer een proof-of-concept dan een functionele reader, en Gemini en ChatGPT genereerden geluidseffecten voor elk zoekwoord, wat de verwachte functionaliteit was.
Dat gezegd hebbende, er was geen specifieke instructie in de prompt voor het aantal keren dat de geluids- en visuele effecten werden afgespeeld. Hoewel het niet noodzakelijkerwijs was wat ik wilde, waardeerde ik het feit dat er rekening werd gehouden met de algehele gebruikerservaring om zo’n telefoontje te plegen. Nadat al deze verfijningen waren gecodeerd, werkte Claude de prompt bij en nam ik deze mee naar ChatGPT.
ChatGPT
ChatGPT slaagde er af en toe niet in om extra functies te creëren als ik erom vroeg, maar slaagde er toch in om het project perfect opnieuw te creëren toen ik er de laatste prompt aan gaf.
Tegen de tijd dat ik de bijgewerkte prompt met Claude had gemaakt, kon ik niet veel meer doen toen ik deze naar ChatGPT uploadde. Gelukkig creëerde de chatbot van OpenAI het project met gemak, ondanks dat hij de langzaamste was in het genereren van de code. De enige functie die ik ChatGPT vroeg om aan het project toe te voegen – een speciale volumeschuifregelaar voor de achtergrondmuziek maken, zodat deze volledig kan worden uitgeschakeld als je alleen maar een speciale e-leeservaring wilt – mislukte consequent. Uiteindelijk ging ik terug naar Claude om om deze functionaliteit te vragen en de prompt opnieuw te maken.
Ronde 2: hetzelfde project opnieuw creëren
Ondanks dat ze Gemini 3 Pro gebruikten om het project in eerste instantie te bouwen en de gratis versies van ChatGPT en Claude, creëerden ze alle drie het project, maar niet zonder problemen. Ik had het grootste deel van mijn tijd bij Claude besteed aan het verfijnen van het project, en hij was verantwoordelijk voor het maken van de definitieve versie. Het was dus ongelooflijk verrassend om te ontdekken dat bij het uploaden van die prompt naar een nieuwe chat, het project niet voorbij de eerste “initialisatie” -pagina zou laden. Ondanks dat er helemaal geen problemen waren met eerdere iteraties, waren er 11 (ja, echt waar) extra volledige herbouwingen nodig om erachter te komen wat er aan de hand was.
Het opnieuw creëren van het project met zowel Gemini als ChatGPT werkte feilloos. Alle functies, eenvoudig en geavanceerd, werkten zoals ze zouden moeten, inclusief het uploaden van bestanden, testaccentuering, tekst-naar-spraak-uitvoer en zowel audio- als visuele effecten wanneer triggerwoorden hardop werden uitgesproken. Terugkomend op de modellen zag ik heel weinig verschil in functie of prestatie bij het geven van dezelfde prompt aan elk van de chatbots.
Inconsistenties in chatbots
Het verkrijgen van het bestand om te testen was altijd gemakkelijk bij Claude. Het bood niet alleen een voorbeeld van het project, zodat je het HTML-bestand helemaal niet hoefde te downloaden, maar als je dat wilde (wat ik vaak deed om te testen), werd het beschikbaar gesteld om direct te downloaden. Deze optie werd alleen soms aangeboden met ChatGPT, terwijl ik op andere momenten alleen de HTML kon kopiëren en zelf kon opslaan.
Ondanks dat je de minste fouten en algemene problemen met Gemini had, moest je altijd de lange route nemen en het op deze manier doen. Afgezien daarvan was het feit dat ChatGPT slechts af en toe aanbood om het bestand rechtstreeks als HTML te downloaden vreemd en een beetje frustrerend.
De winnaar: Het hangt ervan af
Het definiëren van een winnaar voor dit soort tests is lastig, omdat alle chatbots voor- en nadelen hebben. In zekere zin winnen ze allemaal. Iedereen slaagde er op een gegeven moment in om een functionele versie van het project te maken, maar dat vergde vaak herhaalde inspanningen.
Uiteindelijk is de winnaar de gebruiker. Het laat zien dat, ongeacht het gebruikte model, een solide set instructies u ver kan brengen. Ik kon geen onderscheid maken in prestaties of functie tussen de app gemaakt door Gemini 3 Pro en de gratis versies van ChatGPT of Claude.
Dit druist eigenlijk regelrecht in tegen wat ik ontdekte toen ik een soortgelijk gesprek voerde met zowel de Gemini pro- als de gratis modellen. Hoewel dat weer een dag was, een ander project en een ander model, laat het zien dat een solide prompt je ongelooflijk ver kan brengen in de wereld van vibe-codering.


