SaaS · 2025 · Chicken Master
Chicken Master
In progressMulti-tenant delivery SaaS for a poultry retail chain
Problem
Poultry retail runs on phone calls and paper: prices change every morning with the mandi rate, orders get relayed by voice, and nobody knows where a rider is until he arrives.
Solution
A multi-tenant platform where each shop runs its own storefront — real-time orders over Socket.IO, live GPS rider tracking, loyalty points, and product prices that recalculate automatically from the daily mandi rate.
Outcome
- TODO: shops onboarded and orders processed per day
- TODO: average dispatch-to-delivery time vs. the old phone workflow
- One mandi-rate entry each morning reprices the entire catalogue — no per-product edits
Background
Fresh chicken is priced against the mandi (wholesale market) rate, which changes every morning. A retail chain selling it deals with a pricing problem most e-commerce platforms never see: the whole catalogue reprices daily, and a shop that forgets is either losing margin or overcharging customers by lunchtime.
Order-taking had the same problem at a smaller scale — phone calls written into notebooks, riders dispatched by shouting across the shop, and no answer to "where is my order?" other than calling the rider.
What I built
Chicken Master is a multi-tenant SaaS platform: one deployment, many shops, each with its own catalogue, staff, riders, and customers.
Four roles, four surfaces
- Admin owns the platform: shops, tenancy, and global settings.
- Manager runs a shop: enters the day's mandi rate, manages products and stock, watches live orders and rider positions.
- Rider gets a dispatch queue and shares live GPS while on delivery.
- Customer browses today's prices, orders, tracks the rider on a map, and collects loyalty points.
Real-time by default
The order lifecycle — placed, accepted, dispatched, delivered — is pushed over Socket.IO to every party that cares about it. A manager sees new orders appear without refreshing; a customer watches their rider move on Google Maps.
Mandi-rate pricing
The manager enters one number each morning. Every product's price derives from it (rate × weight ± product-level adjustments), so the catalogue is always current and no one edits prices product by product.
Stack notes
React + Vite + TypeScript on the front, Node.js/Express for the API and Socket.IO gateway, Supabase (Postgres + Auth) for data and identity. Tenancy is enforced at the database level — every row carries its shop, and access is scoped by role.
Status
In active development at chickenmaster.net.
TODO: add current numbers — shops live, daily order volume, rider count.
Running a similar operation?
I build systems like this end to end — from the data model to the day-to-day screens your staff actually use.
Get in touch