Open Source · Marketplace
RidePlus
Multi-service logistics marketplace — rides, parcels, cargo, and freight on one dispatch and one fleet.
Overview
Not another ride-hailing clone — one job platform where a registered vehicle takes any compatible work, so empty kilometers go down and driver earnings go up.
The challenge
Rides, parcels, groceries, and cargo usually live in separate apps, which leaves vehicles idle between mismatched demand. Operators need one dispatch, one fleet, and job types that share pricing, tracking, and settlement.
The solution
A Go modular monolith (REST + WebSocket) with PostgreSQL/PostGIS, Redis, NATS, and S3-compatible storage. Customer and driver apps in React Native + Expo; admin dashboard in React + Vite. Every operational unit is a Job (`RIDE`, `PARCEL`, `GROCERY`, `CARGO`, `FREIGHT`) with stops, quotes, assignment, payment, and proof.
What we delivered
- Go API with REST + WebSocket, role-based access, and idempotent job/payment operations
- Job state machine, vehicle capability model, and dispatch scoring
- React Native + Expo customer and driver apps; React + Vite admin dashboard
- PostGIS-backed location, Redis cache, NATS messaging, MinIO object storage
- pnpm + Turborepo for TypeScript apps; Make targets for infra, migrate, and `go test`
- GitHub Actions CI that runs JS and Go paths independently when their files change
Architecture
Customer / driver (Expo) + admin (React)
REST + WebSocket
Go API (modular monolith)
PostgreSQL+PostGIS · Redis · NATS · MinIOKey engineering decisions
- One job platform instead of four products — shared pricing, tracking, and settlement
- Go API as an independent module outside the pnpm workspace (two toolchains, one repo)
- PostgreSQL + PostGIS for geo jobs; Redis for ephemeral state; NATS for messaging
- Modular monolith first — extract dispatch, pricing, or payments only when scale requires it
Tech stack
Engagement
2026 · Creator & Lead Engineer · Open source
Results
An open-source logistics platform that treats rides, parcels, and cargo as job types on one dispatch — not three products glued together.
Lessons learned
- The differentiator in logistics is utilization, not the map UI. Model the job and the vehicle’s capabilities first; the apps become views on that domain.
Have a hard problem like this?
Let's talk about what you're building.