Custom Business Software
Internal tools: replace the spreadsheet with something shaped like the job
The spreadsheet that runs a job
Warranty claims start simply: a row per claim, a few columns. Two years later the sheet has 912 rows, three ways of writing “submitted”, rows nobody dares delete and a colour code that lives in one person's head. Credits get missed because nobody can see which claims are owed money.
An internal tool takes that one job and gives it a proper home: each claim is a record with fields that must be filled, a status from a fixed list, a history of who changed what, and a view for each question the office actually asks.
Today, and with an internal tool
Today
- 01A job closes; someone adds a row if they remember.
- 02The serial number is copied from a photo, or left for later.
- 03Status is typed by hand and coloured by mood.
- 04Credits are checked against statements by eye, monthly.
Claims stall without anyone noticing, and owed credits are never chased.
With an internal tool
- 01A job with a warranty part opens a claim automatically.
- 02The claim can't be submitted without a serial and install date.
- 03Status moves through four fixed states, each change recorded.
- 04Credits are matched to statements, and the unmatched ones are listed.
One place for the job, and nothing depends on one person's memory.
Every habit becomes a feature
One claim, start to finish
WC-118 · J-488 · water heater
- done
Job J-488 closed with a warranty part
claim opened from the job record
- done
Serial and install date filled from the job
install date Aug 21
- waiting on a person
Nameplate photo needed
requested from T3, who did the install
- done
Photo attached; claim submitted
office manager · Sep 3
- done
Manufacturer approved the claim
- done
Credit received and matched
$214 · on the October statement
Closed. The credit is matched to the statement, and the history shows every step and who took it.
The parts it's built from
What changes from one business to the next
A common starting point is a Postgres database, a Next.js application, sign-in through your existing accounts, and an API connection to the system that holds your jobs. These are starting candidates, not requirements.
Is an internal tool the right system?
Good fit
- One job runs on a spreadsheet that several people edit.
- Mistakes in it cost money or customers.
- The job's rules are clear enough to write down.
Avoid when
- The job crosses several teams with handoffs. Look at a workflow application.
- An off-the-shelf product already does this job well.
How we'd approach it
01
Understand
As much as the problem needs
We map how the work runs today: who does what, which systems hold the records, and where it breaks.
02
Design
Decided before it's built
Ownership, rules, integrations and exceptions, agreed with you and written down with acceptance criteria.
03
Build
Connected to what you use
We build the scoped system, connect it to the tools you already run, and test it on the cases that matter.
Questions about internal tools
Why not a no-code app on top of the spreadsheet?
For a few people and a simple job, that's often fine. It stops working when you need rules, permissions, history or connections to other systems.
What happens to the 912 rows?
They're imported. Duplicates are merged, free-text statuses are mapped to the fixed states, and anything that can't be mapped is listed for a person to decide.
Can it grow?
Yes. It's built on a real database and an API, so a second job can be added later, or it can become part of a larger platform.
Who maintains it?
You own the bespoke work you paid for and receive the code and documentation needed to run it. You can run it yourself or with your own developer, or add optional support from us.
Replace the spreadsheet that runs a job
Tell us about the spreadsheet only one person understands. We'll show you what it would look like as a tool.