FieldDojo
A field calculator for the trades — 57 code-cited calculators across electrical, HVAC, plumbing, and construction, built to work offline on a job site.

FieldDojo is a multi-trade field calculator for construction, HVAC, electrical, and plumbing professionals. Instead of juggling a handful of single-purpose apps and a code book, a tradesperson gets 57 calculators in one place — each one showing the formula it used and the code section it's based on.
We built it offline-first because job sites rarely have reliable signal, and we made every result something you can hand to an inspector: the wire-ampacity number sits next to its NEC table reference, the duct-sizing result next to its ASHRAE basis. Results adapt to six regional code sets — US, Canada, UK, EU, Australia, and New Zealand — and a built-in offline reference library covers the code sections behind them.
One note if you check the Play Store link: the package id reads com.notchip.calcrig. The app shipped under our earlier working name, CalcRig, and Android package ids are immutable once published — same app, same developer account, renamed before launch marketing.
What we set out to solve
Trade calculation tools are fragmented — one app for wire sizing, another for duct sizing, and a code book to verify either. Switching between them mid-task is slow and error-prone.
The free alternatives are shallow: they spit out a number with no formula and no code reference, so the result is impossible to defend to an inspector or a client.
And almost none of them work where the work happens. Job sites have patchy connectivity, so anything that depends on a live network is unusable exactly when it's needed.
How we built it
We treated FieldDojo as a precision instrument first and an app second. The calculation logic had to be trustworthy, transparent, and available with zero connectivity — everything else was built around that.
Pure, testable calculation engine
Every calculator is a pure TypeScript function separated from the UI, returning both the value and the formula used. That keeps 57 calculators consistent and verifiable, and lets us cite the exact code standard behind each result.
Offline-first data layer
Calculations and projects are stored locally in SQLite (op-sqlite + Drizzle) so the app is fully usable with no signal. A sync queue reconciles changes with the backend when a connection returns.
Trade-organised navigation
Each trade gets its own tab and stack, so an electrician lands on electrical tools and a plumber on plumbing — no hunting through a flat list of dozens of calculators.
One brand across app, web, and store
A locked design system (signal-red accent, four trade colours, one type scale) keeps the marketing site, app, and store assets feeling like one product.
What it does
Code-referenced results
Every calculation shows the formula used and the standard behind it — NEC, ASHRAE, UPC, or IRC. Results you can cite to an inspector.
Pure calculation engine
All calculation logic lives in pure TypeScript functions, separate from the UI — testable, reliable, and consistent across all 57 calculators.
Six regional code sets
Breaker sizing, stairs, drainage, and more adapt to the local code — US, Canada, UK, EU, Australia, or New Zealand — seeded from the device locale on first run.
Offline-first
Local SQLite storage means the app works with zero connectivity. A sync queue pushes changes to the cloud once you're back online.
Calculation history
Full parameter persistence — restore any past calculation, tweak the inputs, and recalculate. Organised by project, not just a log of numbers.
PDF & CSV export
Share any result as CSV or formatted text for free, or turn it into a branded PDF — logo, company details, and signature block — on Pro.
Offline reference library
A bundled library of code sections, formulas, and material references — readable on the job site with zero connectivity, right next to the calculators that cite it.
Built for the field
High-contrast dark UI, large tap targets, imperial/metric toggle on every calculator — designed for sunlight, gloves, and real conditions.
Architecture
FieldDojo spans three surfaces — a cross-platform app, a type-safe API, and a marketing site — that share a single design language and a generated, end-to-end-typed contract between client and server.
Expo Router app with per-trade tab navigation. Local-first state in SQLite via Drizzle, fast preferences in MMKV, server state through React Query. Auth and sync are layered as providers at the root.
A Hono + PostgreSQL service publishing an OpenAPI spec. Sync endpoints reconcile the device's offline queue with server state using version numbers and server-wins conflict resolution.
The app's API client and React Query hooks are generated from the backend's OpenAPI spec with Orval, so a schema change on the server surfaces as a type error in the app — no hand-written, drift-prone models.
Built with
Engineering challenges
Stay fully usable with no signal, then sync without losing or clobbering data when connectivity returns.
An on-device sync queue records every offline change. On reconnect, the app pushes the queue and pulls deltas keyed by a server-assigned version number, with server-wins resolution and exponential backoff — so the app degrades gracefully and never blocks the user offline.
Keep 57 calculators and a separate backend in lockstep without hand-maintaining API models.
The backend emits an OpenAPI spec; Orval generates the app's typed client and React Query hooks from it. A breaking server change becomes a compile-time error in the app instead of a runtime surprise.
Let someone calculate on the first launch with no account at all, then keep that work when they eventually sign in.
First launch opens a Better-Auth anonymous session, and every local row is stamped with the owning user. On sign-in, a link-anonymous sync call adopts the existing history and projects into the real account instead of orphaning or duplicating them — so an account is something you add later, not a gate you pass first.
A look inside
What shipped
Want us to build something like this?
Tell us about your project. Notchip scopes, designs, and ships on a milestone basis — you only pay for results.
Start a project