KhamarTools
A free set of poultry-farming calculators and guides for small farms in Bangladesh — bilingual, installable, and fully usable with no internet signal in the shed.
The problem
Small poultry farmers make expensive decisions by guesswork. Eggs go into an incubator with no written hatch schedule, so candling and lockdown days get missed. Feed is bought by the sack with no idea whether the birds are converting it efficiently. Chicks are bought without anyone working out the sale price the batch needs to hit just to break even.
Each of those is a two-minute calculation — if you have the formula, the local benchmark numbers, and a phone that works where you're standing. The site answers three questions: when will my eggs hatch, is my feed being wasted, will this batch make money.
Built for its actual audience
This is not a generic calculator with a translation bolted on. It is aimed at Bangladeshi smallholders, and that shaped every decision:
- Money is in taka, and the benchmark tables include Sonali and cockerel alongside broilers — the breeds actually being raised, not the ones in a US extension leaflet.
- The Bengali version isn't just translated strings: numbers are rendered in Bengali numerals and dates in bn-BD format, with its own web font and its own installable app manifest (খামারটুলস).
- Every page prints cleanly, because a sheet of paper pinned up in the shed still beats a phone with wet hands.
- The whole site works offline once visited — connectivity in a rural shed is not a given.
What I built
- Incubation calculator — 8 species, each with its own incubation period, lockdown day and candling days (chicken 21 days, quail 18, duck 28, Muscovy 35, turkey 28, goose 30, guinea fowl 27, pigeon 18). It outputs the hatch date, the lockdown date, and a day-by-day schedule table.
- Calendar export — the schedule generates a real .ics file in the browser, one all-day event per milestone (set, both candlings, lockdown, hatch), so the farmer's phone reminds them instead of a wall chart.
- FCR calculator — feed conversion ratio with cost per kg of gain, an Excellent/Good/Fair/Poor rating with a diagnostic note explaining what a bad number usually means, and benchmark rows for broiler, Sonali-cockerel and layer.
- Broiler profit calculator — chicks, mortality, feed, and sale price in; batch profit, profit per bird, break-even price per kg, margin and an itemized cost breakdown out. A loss flips the result tile to a warning state with different advice.
- Three illustrated guides — a candling guide for days 7, 14 and 18 drawn as hand-written inline SVG (no photos to download, and screen-reader labelled), a broiler feed chart by age with target weights, and a 12-cause hatch-failure diagnostic organised by when the embryos died.
- Installable PWA — app manifest, icons, app shortcuts straight to the two most-used calculators, and a service worker that precaches the whole app shell.
The detail I'd point at in a code review
The service worker refuses to cache a page response unless it is both res.ok and not a redirect. That one condition prevents a transient 404 or 500 — the kind you get when a mobile connection drops mid-request — from overwriting a good cached page and leaving the installed app permanently broken offline.
For an audience on patchy rural connections, that failure mode is not hypothetical: the whole value proposition is "it still works when the signal doesn't," and one poisoned cache entry would quietly destroy it. Navigations are network-first so content stays fresh, assets are stale-while-revalidate so they're instant, and non-GET or cross-origin requests bypass the worker entirely.
Deliberately boring technology
Eleven hand-written HTML pages, one 194-line stylesheet, and vanilla JavaScript. No framework, no bundler, no package.json, no build step. The result loads fast on a cheap phone, can be edited a year from now without reinstalling a toolchain, and deploys by copying files to the server. Every page carries its own title, description, canonical URL and Open Graph tags, and the two incubation calculators cross-reference each other with hreflang so Google serves the right language.
Stack
Status & what's next
Live at farm.skarrnd.top and serving over HTTP/3. The affiliate layer is fully built — a single product registry rewrites every gear link with proper nofollow sponsored attributes, an indicative price range and a visible disclosure — but it is deliberately switched off until the partner accounts are approved, so no link currently earns anything.
Next on the list: structured data for the FAQ and how-to sections, more Bengali pages, and growing the guide library.