Every egg, accounted for.

EggFlow is the lean ERP that runs three layer farms in Pakistan. Farm reports, sales, cash and egg stock go in once, and the day only closes when they reconcile.

3
layer farms
~100k
birds on each
Live
since 24 July 2026
Today across three farms
Owner view
Sample data
Eggs produced today
686p5t
247,110 eggs
FarmProducedRateDay
Farm A230p4t79.6%Closed
Farm B221p7t77.1%10 trays out
Farm C234p6t80.4%Open
Drawing of an open handwritten register with 227.6 circled

The farm used to run on paper.

Each farm sent its day as a screenshot of an Excel sheet on WhatsApp. Sales and cash lived in handwritten Urdu registers. It worked, mostly, until someone had to add it up.

Screenshots

The owner read three farms through photos of spreadsheets.

Registers

Sales, the cashbook and stock were totalled by hand, in ink.

227.6 petti

Six trays written like a decimal. Every sum built on it drifts.

One day, four people, one record.

Nobody types a number twice. The doctor's report feeds the stock, the sales feed the ledger, and the owner sees both the moment they land.

  1. 1

    The farm doctor

    Enters the daily farm report per house: birds that died by day and night, feed bags used, eggs produced. Opening birds and feed carry over from yesterday on their own.

  2. 2

    The sales person

    Keeps the sales day book and the cashbook, the roznamcha. Every cash memo becomes one sale, split into cash now, bank now and credit.

  3. 3

    The day closes

    Birds, feed and eggs must reconcile. Anything unusual raises a warning. Then the day locks and the reports rebuild.

  4. 4

    The owner and the accountant

    The owner reads one dashboard for all three farms. The accountant takes exports into QuickBooks.

9:41
Daily farm report
Farm B, 4 houses
Sample data
H1H2H3H4Total
Opening26,14025,88026,41025,970104,400
Died, day21
Died, night13
Feed bags191
Produced58p2t56p9t59p4t55p11t230p2t
Closing26,13325,87326,39525,965104,366
Feed g/bird91.890.894.788.691.5
Production80.1%78.9%80.9%77.5%79.4%
  • House 3: mortality 15 is above 0.05%

The doctor's grid, houses as columns. Change a number and the checks follow.

The day does not close until the eggs add up.

Opening stock and production, less sales, broken and discards, must equal what is in the store. If it does not, someone explains the difference first. Try it: pick a reason.

Close day
Farm B, store and sales
Sample data

Egg mass balance

all grades, petti and tray
Opening stock
148p7t
+
Produced and graded
236p4t
−
Sold, sales day book
361p9t
−
Broken
1p3t
−
Discard
0p10t
=
Should be in the store
21p1t
Counted in the store
20p3t
Variance, explain before closing
−0p10t

Checks

  • Bird continuity, 4 houses
  • Feed continuity, bags in and out
  • Grading adds up to production
  • Egg mass balance
Explain the 10 trays

Hard checks

Bird continuity and feed continuity. Yesterday's closing must be today's opening.

Range warnings

Feed grams per bird, production percent, mortality and sale rate, each against a sane range.

A locked record

Once closed, entries freeze and every report is rebuilt from the closed day.

Photograph the memo. Check it. Save it.

A vision model reads the handwritten cash memo into a strict schema and fills the sale beside the photo. Nothing saves until a person has checked it, and the photo stays attached as the slip.

New sale from memo
Sales day book
Sample data
Photo of the cash memoIMG 2041
CASH MEMODateNo.M/sItemPettiRateAmountReceivedCashOnlineBalance14/8/260417Green Gate StoreWhite anda40.66950281475100,000120,00061,475Signature

Sale

Waiting for a photo
Memo no.
.
Date
.
Customer
.
Quantity, White
.
Rate per petti
.
Full sale to the ledgerRs 0
Cash now
.
Bank now
.
Stays on creditRs 0

Hover or tab through a field to see where on the memo it was read.

227.6 is not a decimal.

The farm counts in petti and tray. A tray holds 30 eggs and a petti holds 12 trays. On paper, 227.6 means 227 petti and 6 trays. EggFlow stores every egg as a whole number and shows it back the way the farm reads it.

Drawing of two stacked egg trays, two eggs missing
Sample data
petti

Type any register figure. The part after the dot is trays.

In EggFlow
227
petti
6
trays
stored as
81,900
eggs
The last petti, tray by tray6 of 12
1 tray = 30 eggs1 petti = 12 trays = 360 eggs
Spreadsheet reads 227.6 as a decimal81,936
Eggs that do not exist+36

Seven grades, one count.

Production is graded before it reaches the store. Liquid egg sells by the kilo; feed is counted in 50 kg bags.

  • Whitethe main grade
  • Mellasoiled shell
  • Crackhairline crack
  • Jumbodouble yolk
  • Liquidsold by kg
  • Brokenscrap rate
  • Discardwritten off

Three farms on one screen.

The owner sees production, mortality, feed and every open alert per farm. No screenshots, no waiting for the evening call.

Owner dashboard
Three farms, one screen
Sample data
Birds
312,670
Eggs produced
686p5t
Production
79.0%
Open alerts
4
Farm A
104,180 birds, 4 houses
Day closed
Production
79.6%
Mortality
31
0.030%
Feed
98 g
per bird
Feed stock
6 d
at this rate
  • All checks passing
Farm B
103,470 birds, 4 houses
Variance
Production
77.1%
Mortality
38
0.037%
Feed
101 g
per bird
Feed stock
3 d
at this rate
  • Production down 2.6 points on yesterday
  • Feed for 3 days left
  • Store variance of 10 trays
Farm C
105,020 birds, 4 houses
Open
Production
80.4%
Mortality
66
0.063%
Feed
96 g
per bird
Feed stock
8 d
at this rate
  • Mortality above 0.05% in House 2
Mortality across farms today: 135Feed in 50 kg bags, g per bird from opening birds
Receivables aging
Customer ledger, all farms
Sample data
0 to 7 days8 to 15 daysOver 15 days
Customer D
270,500
Customer B
237,500
Customer A
182,000
Customer E
161,500
Customer F
89,000
Customer C
61,475
Total, Rs1,001,975
0 to 7 days
464k
8 to 15 days
237k
15+ days
302k

Reports, generated, never typed.

  • Farm daily report
  • Monthly report
  • Sales day book
  • Closing stock by grade
  • Cashbook
  • Receivables aging
  • Exports

Small stack. Pinned numbers.

87 tests pin the numbers from the real paper registers, so the app has to agree with the arithmetic the farm already trusts.

Next.js 16
App Router, server actions
Tailwind v4
a small design system
Supabase
Postgres, auth, row level security
PWA
installs on a phone like an app
pnpm test
✓parses decimals as trays
✓rejects impossible tray digits
✓round-trips with carry
✓fails bird continuity
✓hard-blocks negative closing stock
✓receipts clear the oldest sales first
✓split sale moves the balance by the unpaid remainder only
and 80 more
Tests 87 passed (87)
Drawing of a hen beside an egg

Built for my family's farms.

My family runs three layer farms in Pakistan, about a hundred thousand birds on each. I built EggFlow for the people who keep them going: the doctor who walks the houses, the person who writes every sale, and my family, who wanted to see the whole day without asking for it.

It has been in daily use since 24 July 2026. The paper registers are still there. They just have to agree now.

Muhammad Bin Sohail