Skip to content
MobileFood Delivery

Grocery Delivery

Hyperlocal grocery marketplace for stores, customers & agents

Run hyperlocal delivery end-to-end — customers, stores, and agents — with no POS hardware or separate admin panel.

GDApp preview

A production-ready, three-sided hyperlocal grocery marketplace connecting neighbourhood kirana stores, customers, and delivery agents for fast last-mile delivery — all in a single React Native codebase. Customers discover open stores within a geohash radius, order from live inventory, pick a timed delivery slot, and pay via Razorpay or cash; owners run orders, stock, and slots from a mobile dashboard; and agents are auto-dispatched to the nearest delivery and complete it with an OTP handshake. Everything stays in sync in real time over Firestore, with server-verified payments and role-aware security rules enforced at the database layer.

Features built in

Customer — discovery & checkout

  • GPS + geohash discovery of open stores within a 5 km radius, sorted nearest-first
  • Live inventory across 12 grocery categories with product search & out-of-stock indicators
  • Persistent cart with subtotal, delivery fee, GST & free-delivery-over-₹500 breakdown
  • Timed delivery-slot picker (morning / afternoon / evening) with live capacity
  • Saved addresses (Home / Work / Other) & dual payment — Razorpay or cash on delivery

Customer — tracking

  • Real-time order status (placed → accepted → packed → out for delivery → delivered)
  • Per-order delivery OTP to confirm a secure hand-off
  • Push notification on every status change, plus full order history & early cancellation

Store owner

  • Dashboard with today's orders, revenue, pending count & an open/close toggle
  • Real-time order flow — accept → pack → auto-dispatch the nearest agent
  • Live inventory with inline stock edits, image upload & low-stock alerts
  • Per-slot delivery capacity for morning, afternoon & evening, applied per date

Delivery agent

  • Online/offline availability toggle & a real-time feed of assigned deliveries
  • Active-delivery map with one-tap Google Maps navigation to store and customer
  • OTP verification on hand-off that credits earnings atomically
  • Lifetime earnings & completed-delivery tracker, with new-delivery push alerts

Backend & operations

  • Phone + OTP auth with role-based access (customer / owner / agent)
  • Nearest-available-agent auto-dispatch Cloud Function ranked by live GPS distance
  • Atomic delivery-slot booking via Firestore transactions — full slots are rejected
  • Server-side Razorpay order creation + HMAC-SHA256 verification with a webhook backstop
  • Real-time Firestore sync & FCM push notifications across all three apps
React NativeTypeScriptFirebaseCloud FunctionsFirestoreZustandRazorpayGoogle Maps + GeofireFCM + Notifeei18next
  • A kirana store launches home delivery in minutes — no POS, no hardware, no separate admin panel
  • A customer orders from a nearby store on a timed slot and tracks it live to the doorstep
  • An agent goes online, gets auto-assigned the nearest delivery, navigates, and completes it with an OTP
  • A grocery chain or startup white-labels the platform to launch hyperlocal delivery in a new city

From idea to live in 4 steps

Enquiry

Tell me what you want to build using the form below — platform, features, budget, and timeline.

Quote & Scope

Within 24 hours you get a fixed quote, a clear scope, and a delivery plan — no surprises.

Design & Build

I design and build in weekly milestones with live previews so you watch it come together.

Deploy & Support

I ship it live — web, App Store, Play Store — and stick around for support and iteration.

Common questions

Does it work on both iOS and Android?

Yes — it's built with React Native CLI (not Expo) and ships natively to both platforms. Firebase, Razorpay, Google Maps, notifications, and geolocation are all configured for iOS and Android.

Are the payments production-ready and secure?

Yes. Razorpay uses the recommended server-anchored flow: orders are created server-side, signatures are verified with HMAC-SHA256 in a Cloud Function, and a webhook backstop handles client drop-off. The secret key lives only on the server — going live just means swapping in live keys.

How does the nearby-store search work?

Store locations are geohashed at creation. When a customer opens the app, their GPS generates geohash bounds for a configurable radius (default 5 km), results are filtered by exact distance, and sorted nearest-first.

Can a delivery slot be overbooked?

No. Slot booking runs inside a Firestore transaction that atomically increments the slot counter and aborts when it's at capacity — preventing double-booking even under concurrent checkout.

Can I white-label it with my own branding?

Yes. App name, colours, delivery fee, GST rate, search radius, free-delivery threshold, agent earnings, and categories are centralised in a single config file. A full rebrand typically takes 1–2 days.

Is it available in Hindi?

Yes — all strings are externalised via react-i18next with English and Hindi included, and the choice is remembered. Adding more regional languages is just a new JSON file.