OpenRides is a donation-supported, bid-driven ride and delivery platform. Passengers propose prices, riders can accept or negotiate, and both sides agree before a trip starts.
This repository currently contains a working full-stack foundation, not the full product scope yet.
Implemented today:
- Better Auth sign-up/sign-in flows on web and native
- Convex backend with health-check and authenticated/private query examples
- Todo demo flows on web and native backed by Convex
- Monorepo tooling (Bun + Turborepo + Ultracite + Husky)
Planned (tracked in masterplan):
- Passenger, Rider, Both-role, and Admin operational flows
- Bid negotiation lifecycle for ride/delivery requests
- Matching, trip tracking, moderation, and verification workflows
openrides/
apps/
web/ TanStack Router + Vite web client
native/ Expo Router mobile app (Uniwind + HeroUI Native)
docs/ Astro Starlight documentation site
packages/
backend/ Convex functions, auth integration, schema
env/ Shared runtime env validation for web/native
config/ Shared TypeScript config package
openrides-masterplan.md
- Runtime and workspace: Bun, Turborepo
- Language and quality: TypeScript, Ultracite (Biome), Husky
- Backend: Convex
- Auth: Better Auth +
@convex-dev/better-auth - Web: React 19, TanStack Router, Vite
- Native: Expo Router, React Native, Uniwind, HeroUI Native
- Docs: Astro + Starlight
- Bun
1.3.9+ - Node.js LTS
- Expo Go (or simulator/emulator tooling) for native development
bun installbun run dev:setupThis runs Convex configure mode for packages/backend and creates backend env files.
Copy backend env values into app env files:
cp packages/backend/.env.local apps/web/.env
cp packages/backend/.env.local apps/native/.envOn Windows PowerShell:
Copy-Item packages/backend/.env.local apps/web/.env
Copy-Item packages/backend/.env.local apps/native/.envRequired app env keys:
- Web:
VITE_CONVEX_URL,VITE_CONVEX_SITE_URL - Native:
EXPO_PUBLIC_CONVEX_URL,EXPO_PUBLIC_CONVEX_SITE_URL
Run from packages/backend:
bun convex env set BETTER_AUTH_SECRET=$(openssl rand -base64 32)
bun convex env set SITE_URL http://localhost:3001
bun convex env set ENVIRONMENT developmentOn Windows PowerShell:
bun convex env set BETTER_AUTH_SECRET "<your-random-secret>"
bun convex env set SITE_URL http://localhost:3001
bun convex env set ENVIRONMENT developmentOptional for native deep links:
bun convex env set NATIVE_APP_URL mybettertapp://bun run devCommon focused commands:
bun run dev:web
bun run dev:native
bun run dev:serverDefault local URLs:
- Web app:
http://localhost:3001 - Docs app:
http://localhost:4321(when running docs dev server)
bun run dev: Run all workspace dev tasks via Turborepobun run build: Build all workspacesbun run check-types: Type-check all workspacesbun run dev:web: Run only web appbun run dev:native: Run only native appbun run dev:server: Run only backend Convex dev serverbun run dev:setup: Run backend Convex setup/configuration flowbun run check: Run Ultracite checksbun run fix: Run Ultracite autofixesbun run prepare: Install Husky hooks
The roadmap is defined in openrides-masterplan.md.
MVP direction:
- Multi-role accounts (Passenger, Rider, Both, Admin)
- Request creation and rider negotiation (accept/counter/reject)
- Service eligibility filters (service type and vehicle type)
- Verification and basic moderation flows
Future direction:
- SOS and emergency tools
- Trip sharing
- Offline support
- Smarter matching
- Donations/ads ecosystem maturity
- Discord: Join the OpenRides community
- Product roadmap:
openrides-masterplan.md - Setup deep-dive and troubleshooting:
dev-env-setup.md - Governance:
GOVERNANCE.md - Contribution guide:
CONTRIBUTING.md - Community standards:
CODE_OF_CONDUCT.md