Inspiration

  • Saw small rental businesses juggling spreadsheets, WhatsApp, and calls.
  • Wanted a single system to manage listings, availability, and orders end‑to‑end.
  • Focused on fast setup, clean UX, and real-world workflows (quotes → delivery → return).

What it does

  • Lets businesses list rental products with flexible pricing (hour/day/week/month/year)
  • Customers discover items, pick dates, and complete checkout securely
  • Tracks orders, payments, and status changes across the full rental lifecycle
  • Provides dashboards for revenue, top products, and operational insights

How we built it

  • Next.js 14 App Router + React + TypeScript for a modern, scalable UI
  • NextAuth (Credentials) for secure auth and role-based access
  • MongoDB + Mongoose for models, aggregations, and transaction-safe writes
  • Razorpay (test mode) integration for payments and receipts
  • Tailwind CSS for a consistent, accessible design system
  • Winston for structured, multi-level logging across API and UI flows

Challenges we ran into

  • Handling large cart payloads in localStorage → moved to server-side CheckoutSession
  • Dealing with Next.js dynamic usage warnings during deployment to Vercel
  • Atlas IP allowlisting and environment variable mismatches in production
  • Date handling for quick-add-to-cart defaults and pricing consistency
  • Aligning frontend types with backend validation to avoid schema cast errors

Accomplishments that we're proud of

  • Smooth checkout that scales: DB-backed sessions with small client footprint
  • Clear separation of concerns between customer and business (end user) roles
  • Robust logging and error handling that simplified production debugging
  • Clean, mobile-friendly UI with fast navigations and minimal full page reloads

What we learned

  • Keep session-critical data server-side to avoid storage limits and leaks
  • Production parity matters: mirror env vars, secrets, and network rules early
  • Next.js App Router nuances with SSR/CSR boundaries and redirects
  • Schema evolution should be driven by actual UI data contracts

What's next for Rimo

  • Real payments and refunds (Razorpay) with webhooks
  • Inventory reservations and conflict detection during checkout
  • Multi-location support and delivery logistics tracking
  • Advanced analytics: cohort retention, utilization rate, and forecast
  • Plug-and-play marketplace onboarding for multiple vendors

Built With

Share this project:

Updates