Skip to content
Rana Sohail
All projects

SaaS · 2025 · Chicken Master

Chicken Master

In progress

Multi-tenant delivery SaaS for a poultry retail chain

Chicken Master — cover

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