Live in production · Delhi NCR · Shipped Q1 2026

Jai Shri Balaji Store: a kirana that outgrew WhatsApp

A full three-app grocery delivery system for a Delhi NCR store, web storefront, customer app, and driver app, all built to move it off 30 chaotic WhatsApp orders a day.

The problem

Jai Shri Balaji Store, run by founder Ashok Dhull, is a traditional kirana and light-wholesale grocery business in Delhi NCR that has served the neighbourhood for over a decade. About 600 regular households were already ordering from it, all over WhatsApp. That worked until it did not.

By the time we came in, the store was pushing around 30 orders a day through WhatsApp with no system behind it. Messages, edits, and payments were scattered across chats. Ashok wanted to grow the business, but every extra order added more chaos, not more revenue. The goal was simple to state and hard to build: scale the orders without scaling the mess.

What we built

A three-app system with a shared backend, delivered over 12 weeks in four three-week sprints. Each piece does one job well, and they all talk to the same core so an order placed on the web shows up instantly for the driver and the store owner.

Web storefront

Next.js on Vercel. Regular households browse the catalogue and place orders from any browser, no app install needed. Hindi and English UI throughout.

Customer app

Flutter for iOS and Android. Push notifications through FCM, live order tracking, and Razorpay checkout. Live on the Play Store today.

Driver app

Flutter, Android only, internal to the delivery team. Real-time order assignment over WebSocket, GPS, and proof of delivery via signature, photo, and OTP.

Backend and admin

Node.js and Express on CloudNX in the Mumbai region, with Postgres and Redis. A Next.js admin panel runs the store. Around 40% of the code is shared across the two Flutter apps.

The driver app, and why it mattered most

The driver app is the piece the team notices every shift. Orders are assigned to drivers in real time over WebSocket. Each driver picks up a route of typically 4 to 8 nearby orders. The app calls the Google Maps Distance Matrix API for travel times, then runs a greedy nearest-neighbour pass to sequence the stops.

That one decision made routes about 20 to 30% shorter and pushed roughly 15% more deliveries into each shift. At every drop the driver captures proof of delivery, a signature, a photo, and an OTP, so there is no argument later about whether an order arrived. Inventory runs across two warehouses, a main and a satellite, with real-time order status flowing back to the admin panel.

Stack

Next.js (storefront + admin)Flutter (customer + driver)Node.js + ExpressPostgresRedisWebSocketFCM pushRazorpayGoogle Maps Distance MatrixCloudNX (Mumbai)

The results, three months after launch

120-180

orders a day, up from about 30 on WhatsApp

60%

of new orders now come through the customer app

Rs 420

average ticket at roughly 28% margin

64%

week-4 customer retention

2 hrs

manager admin time a day, down from 6-plus

~Month 14

projected payback on the build

Four delivery drivers now run 30 to 40 deliveries each per shift. The store handles four to six times the daily order volume it managed on WhatsApp, with the owner spending less time buried in messages, not more.

Honest cost breakdown

No rounded-up marketing numbers. This is what the one-time build actually cost, line by line.

Web storefrontRs 1.8L
Customer app (iOS + Android)Rs 2.4L
Driver app (Android)Rs 2.1L
Backend, database, admin panelRs 2.4L
Razorpay, GST, subscriptionsRs 60K
Multi-warehouse inventoryRs 50K
Push and WhatsAppRs 30K
Total, one-timeabout Rs 10.1 lakh

Running cost lands around Rs 7,000 to 12,000 a month, plus Razorpay at 1.9% per transaction. At that run rate, the build pays for itself around month 14.

“buildbyRaviRai built our entire grocery system in 3 months, website, customer app, and driver app, all working together. Before, we were managing 30 daily WhatsApp orders chaotically. Today we do 150+ a day with less stress than we had at 30. The driver app alone changed how our team operates.”

Ashok Dhull, Founder, Jai Shri Balaji Store

Read the full write-up

Online grocery in India: the full Jai Shri Balaji Store build

The long-form story, every architecture decision, the cost math, and what we would change next time.

Frequently asked questions

Why three separate apps instead of one?

A shopper, a delivery driver, and the store owner need completely different screens. The customer wants a clean catalogue and tracking. The driver wants assignment, navigation, and proof of delivery, nothing else. The owner wants inventory and order control. Forcing all of that into one app makes every user worse off. We kept them separate but shared about 40% of the code across the two Flutter apps, so we did not pay three times to build one thing.

Why Flutter for the mobile apps?

The customer app had to run on both iOS and Android from one codebase, and the driver app is Android only. Flutter let us write shared models, networking, and state logic once and reuse roughly 40% of it across both apps. That kept the customer app and driver app consistent and cut the total mobile build well below what two native codebases would have cost.

How does the driver app route optimisation work?

Each driver gets a batch of nearby orders, typically 4 to 8 per route. The app calls the Google Maps Distance Matrix API for travel times between stops, then runs a greedy nearest-neighbour pass to order the drops. In practice that made routes about 20 to 30% shorter and let drivers complete about 15% more deliveries per shift. It is not a perfect travelling-salesman solver, and it does not need to be. Nearest-neighbour is fast, cheap on API calls, and good enough that drivers finish earlier.

What would it cost to build something similar?

Jai Shri Balaji Store was a full three-app system in the Rs 8 to 12 lakh range, and the honest one-time total came to about Rs 10.1 lakh. Running cost sits around Rs 7,000 to 12,000 a month plus Razorpay at 1.9% per transaction. Your number depends on how many of the three apps you actually need. A storefront plus one app is a much smaller build than the full driver-fleet setup.

How long did it take to build?

Twelve weeks, shipped in Q1 2026, split into four three-week sprints. The storefront and backend landed first so orders could flow, then the customer app, then the driver app and route optimisation. Building in sprints meant the store could start taking real web orders before the mobile apps were finished.

Do you build for other grocery and kirana businesses?

Yes. The patterns here, multi-warehouse inventory, Razorpay payments, live order tracking, and driver route optimisation, apply to most grocery and light-wholesale operations. We scope it to what your store actually runs on today rather than selling you all three apps by default. Tell us your order volume and delivery setup and we will map the smallest system that gets you off WhatsApp chaos.

Still running your store on WhatsApp?

We built a full grocery system that took Jai Shri Balaji Store from 30 orders a day to 120 to 180 a day. Tell us your order volume and delivery setup, and we will map the smallest system that gets you there.

Get a quote
bR

buildbyRaviRai Assistant

Replies within 24 hours

Chat on WhatsApp

+91 74289 19927 · Replies within 24 hours

Pick a quick message to start a conversation on WhatsApp, or type your own below. Your message pre-fills, you hit send from WhatsApp.

Or type your own

We'll send your message via WhatsApp Web or the WhatsApp app.