Marketplace + Manager app

Rodaku

Rent a scooter in Bali, straight from the local shop.

RoleSolo product, design & full-stack build, with AI agents
Year2026
StatusWebsite live · launching with the first shops
rodaku.co
The Rodaku homepage
0%
Commission on rentals
6
Public promises the build checks
70+
Automated checks before release
EN / ID
Website in two languages

The problem

Scooter rental in Bali runs on trust and a handshake. A shop that keeps your passport as a deposit is almost normal, and the scooter in the photo is not always the one at the counter. Most small shops have no website, so a traveller has little to go on beyond a price and a few pictures.

What I built

Two products on one codebase. For travellers, a fast server-rendered website with each shop's own fleet, prices and rules, in English and Bahasa Indonesia. For shops, Rodaku Manager: an installable app where requests, calendar and fleet sit in one place. A shop signs up with one WhatsApp message and puts a bike online with three photos. Under both sits a short list of promises, like one listing per licence plate and no passport as a deposit, that the build checks before anything ships.

Rodaku connects travellers with the small scooter rental shops of Bali. A traveller looks at a shop's real bikes and sends it a booking request. The shop answers from its own phone, in an app that speaks Bahasa Indonesia. Rodaku takes no commission and never holds the rental money; shops pay a flat monthly fee. I built both sides, the public website and the Manager app, on one codebase.

What makes it notable

01

A request, not a booking

A request holds no bike and blocks no dates, so several can arrive at once. The shop accepts one, which reserves the bike and declines the requests that clash. The renter follows it on a private status link. WhatsApp only tells the shop something is waiting; the deciding happens in the app.

02

One listing, one licence plate

Every listing is locked to a single plate. If the photos show a red Scoopy with a scuffed fairing, that is the bike at the counter. A shop that says it keeps a passport or KTP as security cannot publish at all, because the check runs before a bike can go live.

03

A claim needs proof before it shows

Every trust claim on the site is registered with the mechanism behind it, an owner and a way to complain. A claim without those cannot render, and the build fails. That keeps the six public promises true as the product changes.

04

Rodaku Manager, in the shop's language

The shop app installs from the browser and speaks Bahasa Indonesia. It has five tabs: today, calendar, fleet, money and shop. There is no password and no emailed code. The shop sends one WhatsApp message from its own number, and that number is the account.

05

Snap & List

A bike goes online with three photos: front, side and the STNK registration card. A vision model reads them, the shop confirms the plate itself, and anything the model is unsure about is flagged for a person instead of guessed.

06

Built to be found, and to be cited

Every public page is server-rendered with structured data that search engines and AI assistants can read straight off the page. Ten renter guides answer the questions travellers actually ask. A build gate refuses third-party hosts on public pages, and the data sits on servers in Jakarta.

Tech stack

Web & app
  • Next.js 16
  • React 19
  • TypeScript
  • Installable web app (PWA)
Data
  • PostgreSQL 18
  • postgres-js
  • Raw SQL migrations
Architecture & quality
  • Hexagonal architecture
  • Append-only ledger
  • Vitest
  • Playwright
Messaging & payments
  • WhatsApp Cloud API (Meta)
  • Midtrans
AI & media
  • Google Vertex AI (vision)
  • Remotion
  • Higgsfield
Platform
  • Google Cloud Run (Jakarta)
  • Cloud SQL
  • Cloudflare
  • GitHub Actions

Gallery

The website

How booking works on Rodaku
How booking works: pick the bike, ask the shop, pay the shop
The six rules on the Rodaku homepage
Six rules, checked in the build
The Rodaku page for rental shops
The page for rental shops
The Manager app shown on the shops page
Shops run their rental from the phone

The website on a phone

The Rodaku homepage on a phone
Homepage
The Rodaku shops page on a phone
For rental shops
A Rodaku renter guide on a phone
A renter guide: can a shop hold a passport?

The Manager app

Example data: a fixture shop, not a live one. Plates and prices are covered.

The booking request inbox in the Manager app
Requests: accept, decline or leave
The fleet list in the Manager app
Fleet: forty example bikes
The rental calendar in the Manager app
Calendar, one month at a time

Frequently asked questions

Rodaku is a scooter rental platform for Bali. Travellers look at a local shop's own bikes and send it a booking request. The shop answers, the traveller pays the shop, and Rodaku takes no commission on the rental.

Need something like this?

I design and build products and automation end to end.

Let's talk