TL;DR
- Akshara Technologies built Lacto-Sync — a dual-app Flutter system for a Rajkot Gaushala managing 142 customers and 143 active milk subscriptions.
- Two apps: an owner dashboard (delivery packing lists, customer management, billing, payment recording) and a customer app (delivery calendar, vacation marking, UPI/cash payments).
- The system handles morning and evening delivery slots, multiple product types and rates, glass bottle vs. plastic bag packing, automated monthly billing, and WhatsApp notifications.
- Every day the owner knows exactly what to pack, who to deliver to, and how much each customer owes — without a notebook or spreadsheet.
- If you run a dairy, Gaushala, or any subscription delivery business in India and want a custom version, we can build it for you.
The Problem Every Dairy Owner Knows
Every morning, before 6 AM, a dairy owner or Gaushala manager has to answer the same set of questions: Who gets milk today? How much for each person? Which customers are on vacation? Who still hasn't paid last month's bill?
For most small and mid-sized dairy operations in India, the answer to those questions lives in a notebook — or worse, WhatsApp messages and a memory. When you're managing 50 customers it's manageable. When you cross 100, it starts breaking. At 142, a notebook is a liability.
Farenidham Gaushala in Rajkot had exactly this problem. 142 customers. 143 active subscriptions. Morning and evening delivery routes. Multiple products and pricing tiers. Monthly billing across each customer. And it was all tracked manually.
We built Lacto-Sync to fix that.
managed
tracked daily
delivery volume
owner + customer
What We Built: Two Apps, One System
Lacto-Sync is not a single app — it's a dual-app system. The owner (Gaushala manager) has one app with full control. Each customer has their own app with self-service access. Both sync to the same backend in real time.
The Owner App: Running the Operation
The owner app is the operational nerve centre. Every morning, the manager opens it and immediately sees the full picture: total customers, active subscriptions, and the exact packing list for today's delivery.
Morning packing list — zero calculation required
The home screen shows the morning delivery breakdown: 134.5 litres today, split by packaging type and product. Glass bottle orders (28L total) are separated from plastic bag orders (106.5L total). Within each category, every product and rate is listed with exact quantities — Cow milk at ₹63 wants 55 units across 500ml, 1L, 1.5L, and 2L sizes; Buffalo at ₹80 wants 22L across sizes; Cow at ₹70 wants 32.5L. The system calculates all of this from live subscription data.
Before Lacto-Sync, someone had to tally this from a notebook every morning. Now it's on screen before the first bottle is filled.
Each customer has a subscription record (product, rate, quantity, time slot). The system reads all active subscriptions for today, subtracts any vacation or skip entries, and aggregates the packing totals in real time. No manual addition. No risk of a miscounted row.
Customer management with full context
The Customers screen lists all 142 subscribers alphabetically with instant search by name or mobile number. Each row shows which delivery slots the customer is active on, and a quick Pause button for temporary suspension. At a glance, the manager sees 103 active morning customers and 14 inactive, 23 active evening customers and 2 inactive.
Tapping any customer opens a full detail view: contact info, address, this month's consumption amount, pending balance, active subscriptions, the full delivery calendar, billing history, and payment log — all in one scrollable screen. No switching between apps or spreadsheet tabs.
Billing that generates itself
At the end of each month, the system knows exactly how many litres each customer received (from the delivery calendar), at what rate, and what packaging. It generates an itemised invoice per customer. The manager can send it directly to the customer via WhatsApp from within the app. The invoice number, billing period, due date, and line items are all auto-populated.
Payment recording in two taps
When a customer pays — cash, UPI, or bank transfer — the manager records it in the app. The customer's balance updates instantly. Both the owner and customer can see the running payment history, preventing disputes about whether a payment was received.
The Customer App: Self-Service That Reduces Calls
Every dairy owner knows the calls that come at inconvenient times: "What's my bill this month?", "Did you get my payment?", "I'll be away next week — can you stop delivery?". The customer app eliminates almost all of them.
Delivery Calendar
Customers see every delivery for the month — delivered (green), skipped, today (amber), vacation (purple), upcoming. They can drag across future dates to mark vacation themselves.
Live Balance & Billing
The pending balance is always visible on the home screen — no need to call the owner. Monthly bills show litres delivered, rate, and amount owed with a single-tap Pay button.
Monthly Summary
The home dashboard shows current month totals: litres delivered, bill amount, days active vs. remaining, and a progress bar. All the context a customer needs in one view.
WhatsApp Updates
Customers can opt in to WhatsApp delivery notifications and bill alerts. When the owner sends a bill via the app, the customer receives it instantly on WhatsApp — no separate step.
Customers can edit tomorrow's delivery quantity directly from the app — tap the pencil icon on the "Next Delivery" card. The change is recorded immediately, and the morning packing list in the owner app updates accordingly. No WhatsApp message needed.
The Subscription Model: Flexible Enough for Real Life
Milk delivery is deceptively complex. A single Gaushala might offer:
- Multiple products — Cow milk at ₹63, ₹65, ₹70, ₹80; Buffalo milk at ₹80
- Multiple quantities — 500ml, 1L, 1.5L, 2L per day
- Multiple delivery slots — morning and evening, with different customer sets
- Packaging types — glass bottle (₹0 deposit return) vs. plastic bag
- Vacation periods — the customer is away for a week; billing should pause
- Quantity changes — the customer wants 3L on Sundays but 2L on weekdays
Lacto-Sync handles all of this at the subscription level. Each subscription record captures the product, rate, quantity, slot, and packaging. The delivery calendar records actual deliveries vs. scheduled vs. skipped. Billing is computed from the calendar — not from a flat monthly rate — so if a customer was on vacation for a week, they're only billed for days actually delivered.
Billing and Payments: End-to-End Tracking
The billing flow in Lacto-Sync covers the full lifecycle of a monthly invoice:
The system maintains the full payment history — invoice number, billing period, amount billed, amount paid, due amount — for both the owner's records and the customer's view. Disputes are rare because everything is transparent on both sides.
What Powers Lacto-Sync
Both apps are built in Flutter for Android, sharing a common Dart codebase. The key design decision was to keep the customer app lightweight and fast — it needs to work on modest Android devices that entry-level subscribers in India are likely to have.
- Flutter (Dart) — single codebase for both owner and customer apps, Android-first with iOS build ready
- Supabase backend — PostgreSQL database with Row Level Security ensuring customers can only see their own data; real-time subscriptions for live balance updates
- Riverpod state management — typed state across home, orders, payments, and profile screens; no UI business logic
- WhatsApp Business API — bill delivery and delivery notifications via WhatsApp from the owner app
- UPI deep links — the customer Pay button generates a UPI payment intent; the owner records the transaction once received
- Offline-capable delivery calendar — calendar data is cached locally so customers can view their history even without connectivity
The customer app's colour palette mirrors the Gaushala brand — deep forest green, warm cream backgrounds, and amber accents. The visual language is intentionally calm and trustworthy. When a customer opens the app to check their bill, it should feel like looking at a reliable receipt, not a tech product.
The Business Case for Any Dairy or Delivery Operation
Lacto-Sync addresses a business problem that exists across thousands of dairy operations, tiffin services, and subscription delivery businesses in India. The economics are simple:
- Manual billing errors cost relationships. A miscounted litre or a missed payment entry is a customer dispute waiting to happen. Automated billing from the delivery calendar eliminates the calculation error entirely.
- Unpaid balances pile up when customers don't know what they owe. The customer app shows the pending balance on every screen open — payment rates improve when visibility improves.
- Vacation management via WhatsApp is error-prone. A message gets missed. The delivery happens. The customer is annoyed. Self-service vacation marking in the app solves this at the source.
- Scaling beyond 100 customers without a system is not feasible. Every 10 customers added to a manual operation adds proportional overhead. A digital system scales flat.
Key Takeaways
A dual-app system (owner + customer) transforms a subscription delivery operation — the owner has full control, and customers have self-service access that reduces inbound calls.
Packing lists generated automatically from live subscription data eliminate morning calculation work and reduce packing errors.
Billing computed from the delivery calendar (not a flat rate) is accurate for vacation periods, skip days, and quantity changes — customers trust it because it matches what was actually delivered.
WhatsApp bill delivery and delivery notifications from within the app means no separate messaging step — the owner sends the invoice in one tap.
The same system architecture works for tiffin delivery, water can subscriptions, newspaper delivery, and any recurring daily delivery business.