Casestudy · Full Stack Developer · sinds januari 2026

Celina: een live marktplaats die ik in mijn eentje heb gebouwd, van de eerste commit tot productie

Celina (celinaeda.ru) is een marktplaats die thuiskoks en klanten samenbrengt. Ik werk er sinds januari 2026 vanuit Lissabon aan, en in juli 2026 lanceerde ik het vanuit Lissabon, Portugal. Ik heb elke laag ervan ontworpen en gebouwd — front-end, back-end, infrastructuur en SEO — en ik houd het draaiende. Geen demo, maar een bedrijf dat draait.

celinaeda.rulive
Celina-marktplaats: kokkaarten met beoordeling, stad, bezorgkosten en minimumbestelling
De catalogus. Keukenfilters, zoeken en op elke kaart de beoordeling, de stad, de bezorgkosten en het minimumbedrag — de vier dingen waarop een klant beslist.
celinaeda.ru/loginlive
Inlogscherm van Celina, met de echte meldingen naast het formulier
Inloggen. De echte meldingen staan naast het formulier, zodat een nieuwe bezoeker ziet wat het product doet voordat hij een account aanmaakt.

De opgave

Een tweezijdige marktplaats is een van de lastigste systemen om alleen te bouwen. Beide kanten moeten tegelijk werken: koks die zich aanmelden en van wie de identiteit is gecontroleerd, en klanten die durven te bestellen bij iemand die ze niet kennen.

Daar komt een derde eis bij die in veel projecten pas achteraf aandacht krijgt: gevonden worden. Een marktplaats die niemand in Google vindt, is bij de lancering al dood.

De front-end: een React-app die Google kan lezen

Een marktplaats leeft van organisch verkeer, maar een klassieke single-page-app geeft de crawler een vrijwel lege HTML-pagina. Ik heb daarom gekozen voor React 18 met TypeScript en statische generatie via Vite: de bezoeker krijgt een app, de zoekmachine kant-en-klare HTML.

Dat leverde ruim 100 vooraf gegenereerde landingspagina's op, die zowel door Google als door Yandex zijn geïndexeerd. Bij elke deploy meldt de site nieuwe en gewijzigde pagina's automatisch aan via IndexNow, zodat een nieuwe pagina niet hoeft te wachten tot een crawler toevallig langskomt.

De back-end: bestellingen, identiteit en toegang

Achter de schermen draait Node.js met Express en Prisma op MySQL. De kern is de levenscyclus van een bestelling: van geplaatst tot bezorgd, met een status die beide partijen in realtime zien. Zolang de klant zelf kan zien waar de bestelling is, hoeft niemand te bellen.

Voor de koks is er een KYC-proces: zij uploaden hun identiteitsbewijs, dat wordt beoordeeld voordat hun keuken zichtbaar wordt. Toegangsrechten worden op de server afgedwongen en niet in de interface — wat de browser verbergt, blokkeert de server ook.

De infrastructuur

De applicatie draait in Docker-containers achter nginx op een eigen VPS, met certificaten van Let's Encrypt die zichzelf vernieuwen. Een deploy is één commando; er is geen handmatige stap waarin ik iets kan vergeten. Elke nacht draait er automatisch een back-up van de database en de geüploade documenten.

Daarnaast meet ik de volledige funnel: van bezoek naar catalogus naar bestelling. Samen met de gegevens uit Search Console bepaalt dat welke pagina's aandacht krijgen — niet mijn buikgevoel.

Keuzes en afwegingen

Elke keuze in dit project had een prijs. Statische generatie maakt de site vindbaar, maar iedere inhoudswijziging vereist een nieuwe build; dat is acceptabel zolang die build geautomatiseerd is. Handmatige KYC-beoordeling schaalt niet oneindig, maar een externe verificatiedienst kost in deze fase geld dat beter naar het product kan gaan.

Minstens zo belangrijk is wat ik bewust niet heb gedaan: geen Kubernetes, geen microservices, geen extra dienst met een maandabonnement. Eén server, één database en een monolithische back-end zijn bij dit volume het goedkoopst en het best te onderhouden — en ik ben degene die 's nachts uit bed komt als er iets stukgaat.

Het resultaat

100+pagina's geïndexeerd door Google en Yandex
100%gebouwd, uitgerold en beheerd door één ontwikkelaar
Livein productie op celinaeda.ru

Celina draait in productie op celinaeda.ru. Er staan ruim 100 pagina's in de index van Google en Yandex, koks melden zich aan en worden geverifieerd, en klanten plaatsen bestellingen die ze live kunnen volgen. Ontwerp, bouw, uitrol en beheer liggen bij één persoon.

Belangrijker dan de cijfers is wat er níét gebeurt. Er is geen bureau dat ik moet bellen als er iets kapot is, geen platform dat halverwege zijn tarieven verhoogt en geen onderdeel van de stack dat ik niet zelf kan repareren.

Wat dit voor uw project betekent

Alles wat een project als het uwe duur maakt — inloggen, een bestelproces dat klaar is voor betalingen, verificatie, uitrol en technische SEO — heb ik op mijn eigen platform al in productie opgelost. U betaalt mij dus niet om het op uw kosten te leren.

Ik werk vanuit Lissabon, binnen de EU. Ik factureer in euro's, met een specificatie. De AVG zit vanaf het begin in het ontwerp: geen trackers waar u niet om hebt gevraagd, analytics die pas na toestemming wordt geladen en hosting in een regio die u zelf kiest.

Veelgestelde vragen

Kunt u zoiets ook voor mijn bedrijf bouwen?
Ja. Celina is geen uitzondering, maar de manier waarop ik werk: dezelfde stack, dezelfde aanpak. We bepalen samen wat er in de eerste versie thuishoort en wat kan wachten, en op die afbakening komt een vaste prijs.
Hoe lang duurt een project als dit?
Dat hangt van de omvang af. Een landingspagina is doorgaans in één tot twee weken klaar, een zakelijke website met technische SEO in twee tot vier weken. Een webapplicatie zoals Celina is een langer traject; u krijgt binnen 48 uur een vaste offerte met een concrete planning.
Werkt u met Nederlandse bedrijven?
Ja. Ik werk vanuit Lissabon voor Nederlandse bedrijven, factureer in euro's en werk in het Engels — de taal waarin veel Nederlandse tech- en start-upteams toch al opereren. Moet de website zelf Nederlands zijn, dan is dat geen probleem; alleen het overleg tussen ons gaat in het Engels.
Hoe ziet de factuur eruit?
U krijgt een gespecificeerde factuur in euro's.
Kan ik uw code inzien voordat ik u inhuur?
Van Celina kunt u de live versie bekijken op celinaeda.ru. Purchases, een platform met rollen en rechten, gebouwd in Java 17 en Spring Boot met JWT-authenticatie, staat openbaar op GitHub; daar kunt u de code zelf lezen voordat u een beslissing neemt.
Kunnen we elkaar persoonlijk spreken?
De eerste kennismaking doen we via een videogesprek. Daarna volgt u de voortgang op een testomgeving die u zelf kunt openen en loopt het overleg via WhatsApp of een videogesprek, zodat u nooit op een statusmail hoeft te wachten.