Ridemama is a student-focused ride-sharing platform built to make daily commutes easier for students whose colleges are far from city centers. It aims to solve the challenges of finding instant rides, reducing daily bus struggles, and enabling smoother, more affordable transportation options.
Because the main codebase is private, this repo serves as a technical walkthrough—showing architecture, build decisions, and the roadblocks we hit—without exposing source code.
- Host your own car: Share your ride with fellow students
- Find rides at your preferred time: Flexible scheduling that fits your timetable
- Affordable, constant prices: No surge pricing regardless of traffic conditions
- Route selection flexibility: Choose the best route for your journey
- Direct payments: Seamless transactions between riders and hosts
- Simple, student-friendly interface: Designed with campus commuters in mind
High-level architecture for RideMama
The platform is broken into separate services to keep things modular and easy to scale. Key parts include:
- Frontend client application
- Backend API services
- Database layer
- Third-party integrations (Maps, Payments, Messaging)
Our MongoDB schema includes these primary collections:
- Users (riders and hosts)
- Rides (scheduling, routing)
- Payments (transactions)
- Vehicles (Registered vehicles)
- Report (reports and feedback)
| Component | Technologies |
|---|---|
| Frontend | TypeScript, Next.js, Tailwind CSS |
| Backend | Node.js, Express.js |
| Database | MongoDB (Atlas) |
| Maps | Ola Maps by Krutrim |
| Payments | Razorpay |
| Messaging | Twilio WhatsApp Messaging |
| Authentication | JWT |
| Hosting | DigitalOcean Droplets |
| Image Storage | AWS S3 |
| Tooling and CI | Zod, Docker, GitHub Actions for CI/CD |
| Feature | Priority | Notes |
|---|---|---|
| WebSocket Integration | High | Real-time ride updates |
| TypeScript Backend Migration | Medium | Better type safety and maintainability |
| RC and DL API Integration | High | For automated vehicle verification |
| Cross-Platform App | Low | Mobile-first approach |
| Bike Registration | Low | Pending insurance and regulatory approval |
Ridemama started as a simple side project, so we initially built it on a basic HTTP server. However, as the platform grew, we needed real-time features like live ride statuses and instant booking updates for a better user experience.
Integrating WebSockets turned out to be more complex than expected, given our current architecture. As a quick workaround, we opted for polling, which, while not the most efficient, handles our current traffic levels reasonably well.
That said, we plan to revisit this as the platform scales, potentially integrating WebSockets, server-sent events (SSE), or WebRTC for a more robust solution.
Initially, we handled Docker builds and deployments on our DigitalOcean droplet manually, which involved resizing droplets, managing SSH keys, and restarting services — a slow and error-prone process.
We solved this by implementing a CI/CD pipeline using GitHub Actions, automating the entire process. This reduced manual steps, minimized errors, and significantly sped up deployments, making the whole workflow much smoother and more reliable.
- Simplify first, optimise later — early over-engineering would have stalled us.
- Automating deploys early saved us a ton of time later. CI/CD felt like overkill at first, but it helped avoid a lot of small mistakes.
- Real-time features are harder than they look — we’re holding off on WebSockets until we have a clearer use case.
Suryatej |
Harshith |
Dhanush |
Pavan |
MIT License - See LICENSE file for details.
This repo is read-only for now, but we’re open to ideas, suggestions, or collabs — feel free to raise issues or reach out via LinkedIn.
Join the Ridemama journey and connect with us
Follow the journey as we continue to improve Ridemama and expand its reach.









