Skip to content
← All work
2026Creator & Lead Engineer

RidePlus

A multi-service logistics marketplace. Passenger rides, parcels, groceries, cargo, and freight share one dispatch and one fleet. Also known as RideMe.

Visit live site

What it covers

LogisticsRide-HailingParcel DeliveryFleet DispatchGeospatialMarketplaceOpen SourceiOSAndroid

Tech stack

GoReact NativeExpoPostgreSQLPostGISNATS

The challenge

Rides, parcels, groceries, and cargo usually live in separate apps, so vehicles sit idle between mismatched demand. Operators needed one dispatch, one fleet, and job types that share pricing, tracking, and settlement.

Collaboration

I created RidePlus and led it myself, from the job-and-vehicle domain through the Go API, the customer and driver apps, and the admin dashboard. The product bet was utilization: a registered vehicle should take any compatible job, so empty kilometers go down. I took that model from the domain design to a working product at rideplus.app.

From discovery to production

  • One job platform for rides, parcels, groceries, cargo, and freight
  • Vehicles modeled as capabilities, so a bike, loader, car, or truck can take any compatible job
  • Customer flows for Ride, Send, and Move
  • Driver onboarding and job cards
  • An operations admin for verification, dispatch, pricing, and zones
  • Dispatch scoring on ETA, suitability, empty kilometers, and reliability

How it was solved

Every operational unit is a job — ride, parcel, grocery, cargo, or freight — with stops, a quote, assignment, payment, and proof. Vehicles carry capabilities instead of being hard-coded to one service. Dispatch scores ETA, suitability, an empty-kilometer penalty, and reliability. The Go API is its own module beside the TypeScript apps. Postgres and PostGIS hold the geo jobs, Redis the ephemeral state, NATS the messages. Migrations are an explicit command, never a side effect of starting the API.

Key technical decisions

  • 01One job platform instead of four products, so pricing, tracking, and settlement are shared.
  • 02The Go API stays outside the JavaScript workspace: two toolchains, one repo.
  • 03PostGIS for geo jobs, Redis for ephemeral state, NATS for messaging.
  • 04A modular monolith first. Dispatch, pricing, or payments get extracted only when scale requires it.

Screenshots

RidePlus screenshot 1

Impact

  • One fleet can serve rides, parcels, and small cargo instead of sitting idle between apps.
  • A registered vehicle takes compatible work, which is what cuts empty kilometers.
  • Customers, drivers, and operators each have their own app on the same job model.
  • The public product is at rideplus.app, with the source in the open.

What I learned

The differentiator in logistics is utilization, not the map. Model the job and the vehicle's capabilities first. The apps are views on that domain.

Want an outcome like this?