Home/Work/Roulocal
Mobility · SaaS · Case study · 03

Mobility, end-to-end.

Live in productionMobile + WebMarketplaceStripe payments2025–2026
3Platforms shippediOS · Android · Web
24/7AI ride supportin EN + FR
2Marketplace sidescarpool + rental
0Payment incidentssince launch

The brief.

Réunion is a small island with a big mobility problem. Public transport is sparse outside the cities; private car ownership is expensive; and the tourism economy depends on travellers who arrive at the airport with luggage and no easy way to get to the coast. The Roulocal team wanted to fix both halves of that equation at once — a single platform that handled verified-driver carpooling for residents and short-term car rentals for travellers.

Devmint partnered with the team to engineer the platform end-to-end: a Flutter app for iOS and Android, a React web surface, the Stripe-backed payments layer, the AI-assisted support agent, and the operational backend that keeps verified drivers and rentable vehicles in sync.

What we shipped.

  • Marketplace · 01Carpool + rental in one appDrivers list rides; renters list vehicles; passengers and travellers search both surfaces from a single feed. No mode-switching, no separate logins.
  • Trust · 02Verified driversID check, licence verification, vehicle insurance proof, and continuous rating loop. Drivers below a quality threshold are dropped from the marketplace.
  • Payments · 03Stripe Connect escrowFunds held in escrow until the ride completes. Automatic split between Roulocal and the driver/renter. Cancellation policies enforced in code.
  • Support · 04AI chat assistantAn EN/FR AI assistant handles the long tail of "can I take my surfboard?" "what time does the ride end?" "can I get a refund?" — and hands off to a human when it can't.

How we built it.

The architectural bet was that one codebase across iOS, Android and web was worth the up-front cost — and that the support layer was where AI actually paid off, not the search layer. Both bets held.

1. Flutter for mobile, React for web, one design system.

We chose Flutter for iOS + Android because the team needed feature parity across both stores from day one, and a small team can't maintain two native codebases. The web surface is React, sharing a TypeScript design tokens package with Flutter — so a colour change ships to all three platforms with one PR.

2. Verified drivers as a workflow, not a checkbox.

Onboarding a driver is a multi-step structured workflow with required artefacts (ID, licence, insurance), automated checks where possible, and a human review queue for everything else. The team can re-verify a driver in 10 minutes if something changes; the rider sees a small green tick that means something.

3. AI chat is a triage layer, not a replacement.

The AI assistant handles the questions that should never have to reach a human — \"my driver is 5 minutes late, what should I do\", \"can I bring a child seat\", \"how do I split the cost with three friends\". Anything ambiguous is escalated with full context to the support inbox. We measured this carefully — about 78% of inbound is resolved by the assistant.

The stack.

Mobile + web
  • Flutter (iOS + Android)
  • Next.js 15 · TypeScript (web)
  • Shared design tokens package
  • OneSignal for push
Backend + AI
  • Postgres + PostGIS
  • Stripe Connect for escrow
  • Anthropic Claude for chat
  • Inngest + Redis for jobs

We didn't want an agency that would build mobile and web as separate projects. Devmint shipped both off one design system and one product team. That's rare.

Founder · Roulocal

Outcomes.

Roulocal is live at roulocal.re with iOS, Android and web apps in production. The platform handles verified-driver carpooling and short-term car rentals across Réunion Island under a single account model, with Stripe Connect handling all payments in escrow.

Devmint continues on a quarterly retainer, shipping new features and tuning the AI support layer.

More work

Other recent builds.

Your case study next

Got a marketplace or mobility product to ship?

A 30-minute call is enough to scope it. A written proposal lands within 48 hours.