Marktplaats + manager-app
Rodaku
Huur een scooter op Bali, rechtstreeks bij de lokale shop.

Het probleem
Scooterverhuur op Bali draait op vertrouwen en een handdruk. Een shop die je paspoort als borg houdt is bijna normaal, en de scooter op de foto is niet altijd de scooter aan de balie. De meeste kleine shops hebben geen website, dus een reiziger heeft weinig meer dan een prijs en een paar plaatjes.
Wat ik bouwde
Twee producten op één codebase. Voor reizigers een snelle, server-side gerenderde website met de eigen motoren, prijzen en regels van elke shop, in het Engels en Bahasa Indonesia. Voor shops Rodaku Manager: een installeerbare app waarin aanvragen, kalender en wagenpark bij elkaar staan. Een shop meldt zich aan met één WhatsApp-bericht en zet een motor online met drie foto's. Onder beide ligt een korte lijst beloften, zoals één advertentie per kenteken en geen paspoort als borg, die de build controleert voordat er iets live gaat.
Rodaku brengt reizigers samen met de kleine scooterverhuurders van Bali. Een reiziger bekijkt de echte motoren van een shop en stuurt een boekingsaanvraag. De shop antwoordt vanaf de eigen telefoon, in een app in het Bahasa Indonesia. Rodaku neemt geen commissie en houdt het huurgeld nooit vast; shops betalen een vast bedrag per maand. Ik bouwde beide kanten, de publieke website en de Manager-app, op één codebase.
Wat het bijzonder maakt
Een aanvraag, geen boeking
Een aanvraag houdt geen motor vast en blokkeert geen data, dus er kunnen er meerdere tegelijk binnenkomen. De shop accepteert er één. Dat reserveert de motor en wijst de aanvragen af die botsen. De huurder volgt de status via een privélink. WhatsApp meldt de shop alleen dat er iets wacht; beslissen gebeurt in de app.
Eén advertentie, één kenteken
Elke advertentie zit vast aan één kenteken. Laten de foto's een rode Scoopy met een gekrast kuipdeel zien, dan staat precies die motor aan de balie. Een shop die zegt een paspoort of KTP als onderpand te houden kan niet publiceren, want die controle draait voordat een motor live kan.
Een claim heeft bewijs nodig voor hij verschijnt
Elke vertrouwensclaim op de site staat geregistreerd, met het mechanisme erachter, een eigenaar en een manier om te klagen. Een claim zonder die onderdelen wordt niet getoond en laat de build falen. Zo blijven zes openbare beloften waar, ook als het product verandert.
Rodaku Manager, in de taal van de shop
De shop-app installeer je vanuit de browser en is in het Bahasa Indonesia. Er zijn vijf tabs: vandaag, kalender, wagenpark, geld en shop. Geen wachtwoord en geen code per mail. De shop stuurt één WhatsApp-bericht vanaf het eigen nummer, en dat nummer is het account.
Snap & List
Een motor komt online met drie foto's: voor, zij en het kentekenbewijs (STNK). Een vision-model leest ze, de shop bevestigt zelf het kenteken, en wat het model niet zeker weet wordt voor een mens gemarkeerd in plaats van geraden.
Gebouwd om gevonden en geciteerd te worden
Elke publieke pagina wordt server-side gerenderd, met gestructureerde data die zoekmachines en AI-assistenten direct van de pagina lezen. Tien huurdersgidsen beantwoorden de vragen die reizigers echt stellen. Een build-gate weigert hosts van derden op publieke pagina's, en de data staat op servers in Jakarta.
Techniek
- Next.js 16
- React 19
- TypeScript
- Installable web app (PWA)
- PostgreSQL 18
- postgres-js
- Raw SQL migrations
- Hexagonal architecture
- Append-only ledger
- Vitest
- Playwright
- WhatsApp Cloud API (Meta)
- Midtrans
- Google Vertex AI (vision)
- Remotion
- Higgsfield
- Google Cloud Run (Jakarta)
- Cloud SQL
- Cloudflare
- GitHub Actions
In beeld
De website




De website op een telefoon



De Manager-app
Voorbeelddata: een testshop, geen echte. Kentekens en prijzen zijn afgedekt.



Veelgestelde vragen
Rodaku is een scooterverhuurplatform voor Bali. Reizigers bekijken de eigen motoren van een lokale shop en sturen een boekingsaanvraag. De shop antwoordt, de reiziger betaalt de shop, en Rodaku neemt geen commissie over de verhuur.