Mavicats: site en game uit één codebase
Een community-platform voor liefhebbers van retro digitale fotografie: een feed, een marktplaats voor vintage apparatuur en een doorzoekbare cameradatabase. Die database wordt uit zichzelf gevonden en levert doorlopend affiliate-verkeer op.
Mavicats — Eigen werk — community-platform
- Doorlooptijd
- Doorlopend sinds april 2026
- Teamgrootte
- 1
- Zoekverkeer op de cameradatabase loopt door naar affiliate-klikken
- Spel van 11–21 naar 56–59 beelden per seconde
- 364 geautomatiseerde controles op het platform, 124 op het spel
- Platform en spel los te ontwikkelen met één gedeelde login
Samenvatting
Dit begon als experiment: ik wilde de infrastructuurkant van dit werk echt onder de knie krijgen — niet lezen hoe het zou moeten, maar iets bouwen dat draait, gebruikers heeft en kan omvallen. Het werd een community voor liefhebbers van retro digitale fotografie, met een feed, een marktplaats en een doorzoekbare cameradatabase. Het leerdoel is gehaald, en de database wordt uit zichzelf gevonden: het zoekverkeer loopt door naar affiliate-klikken.
Over de klant: Mavicats
Eigen werk, geen klantopdracht. Ik wilde de infrastructuurkant van dit vak echt leren — draaiend houden, uitrollen, meten, herstellen — en dat leer je niet van lezen. Daarvoor heb je iets nodig dat echt draait, echte gebruikers heeft en echt kan omvallen.
Het werd een community voor liefhebbers van retro digitale fotografie, gebouwd rond één camerafamilie. Leden delen werk in een feed, verhandelen onderling vintage apparatuur, en er is een doorzoekbare database van camera's en accessoires plus een kennisbank.
De uitdaging
Een algemene community bouwen is kansloos tegen bestaande platforms — daar valt niets te winnen wat Instagram of eBay niet al doet. Het inhoudelijke probleem was dus niet technisch maar strategisch: waarom zou iemand hierheen komen in plaats van daarheen?
Daarnaast stond er een leerdoel: dit project moest me de kant van het vak leren die je in klantwerk niet vrijblijvend kunt oefenen. Uitrollen, monitoren, herstellen na een fout, kosten in de hand houden. Dat lukt alleen als het echt is.
Kernproblemen
- Een algemene community heeft geen bestaansrecht naast bestaande platforms
- Uitrollen, monitoren en herstellen leer je niet zonder een echt draaiend systeem
- Een marktplaats tussen leden onderling vraagt accounts, berichten en moderatie
- De game die eraan komt mag het platform niet in de weg zitten
Randvoorwaarden
- // Eigen tijd en eigen kosten — geen budget om verkeerd te gokken op infrastructuur
- // Het platform moet blijven draaien terwijl de game er los naast wordt gebouwd
De aanpak
Beginnen bij het onderwerp, niet bij de techniek. Een plek voor precies één camerafamilie, met een database die die camera's echt goed beschrijft, heeft wél bestaansrecht. En dat is ook precies waar het verkeer vandaan blijkt te komen.
De game apart houden. Er komt een spel bij dit platform, gebouwd zonder game-engine: alleen webtechniek en CSS-transformaties. Dat draait als eigen toepassing op een eigen adres, met één gedeelde login. Zo kan het platform doorgroeien zonder dat de game meeverhuist, en andersom.
Prestaties sturen op meting, niet op gevoel. Na de eerste speeltest liep het spel op sommige plekken op 11 tot 21 beelden per seconde. Na gerichte optimalisatie — met per beslissing een genoteerd voor- en na-cijfer — zit het op 56 tot 59.
Technologie
- // Next.js
- // React
- // TypeScript
- // Python
- // Cloudflare Workers
- // PostgreSQL
- // Sentry
Resultaten
Het leerdoel is gehaald. De infrastructuurkant — draaiend houden, uitrollen, meten, herstellen — is precies wat dit project heeft opgeleverd, en die kennis zit nu in elk klantproject.
En het levert daadwerkelijk iets op: het zoekverkeer dat op de cameradatabase binnenkomt, loopt door naar affiliate-klikken bij twee grote handelsplatforms. Geen groot bedrag, maar het bewijst iets wat ik klanten ook vertel — een inhoudelijk sterke, goed opgezette database wordt uit zichzelf gevonden, zonder advertentiebudget.
In cijfers
- Beelden per seconde in het spel
- Per beslissing gemeten
- Verkeer naar de cameradatabase
- Loopt door naar affiliate-klikken
- Geautomatiseerde controles
- Spelregels worden nagerekend
Kwalitatieve uitkomsten
- Het zoekverkeer komt binnen op de database en loopt door naar affiliate-klikken, zonder advertentiebudget
- Platform en spel kunnen los van elkaar doorgroeien, met één gedeelde login
- Het spel draait zonder game-engine — alleen webtechniek
- De opgedane kennis over uitrollen en monitoren gaat rechtstreeks naar klantwerk
Belangrijkste lessen
- 01
Richt je op één onderwerp en doe dat echt goed — dat is waar zoekverkeer vandaan komt, niet uit breedte
- 02
Een inhoudelijk sterke database wordt gevonden zonder advertentiebudget
- 03
Twee losse toepassingen met één login geeft meer bewegingsvrijheid dan alles in één systeem proppen
- 04
Prestaties verbeter je door per beslissing te meten, niet door in één keer te optimaliseren
Langetermijneffect
Het platform wordt het fundament onder het spel dat eraan komt. En de kennis die dit project opleverde — uitrollen, monitoren, kosten in de hand houden, herstellen na een fout — zit inmiddels in elk klantproject.