Software built around
how your business runs
Web applications, internal tools, and automation for companies that have outgrown their spreadsheets. Built for daily use on the floor, not for the demo.
Fixed scope. Working software at every stage. No retainer.
Four areas, delivered end to end
Most engagements begin the same way: a spreadsheet that three people edit, and one of them is the only person who understands it.
Web applications
Customer-facing or internal, hosted on your own domain, with individual accounts, roles, and permissions — not a shared password.
Internal tools
Inventory, scanning, labelling, dispatch, and reporting: the unglamorous systems a business depends on every day.
Automation
The monthly report someone rebuilds by hand, produced instead by a process that never misses a column.
Numbers you can defend
Timestamps, history, and a complete audit trail, so the figures hold up when someone asks where they came from.
A warehouse running on one spreadsheet
An electronics refurbishing and resale operation tracked 1,261 units in a shared workbook. It held no dates anywhere, so nothing could be aged or measured; eight identifiers were duplicated; and the location column contained 149 different spellings of the same handful of shelves.
- Barcode intake — every unit gets a permanent identifier that never changes, even when it moves.
- Locations down to the slot — area, rack, shelf and slot, with printed shelf labels and old codes that still resolve.
- Labels to the warehouse printer — one tap, batched, in the printer’s own language.
- Accounts, roles and an audit trail — who changed what, and when, on every record.
Built in stages over a fortnight and live on its own domain, with the credentials and the code in the owner’s account.
Delivered in stages, useful at every one
No six-month build that arrives all at once. Working software reaches your team early and stays in use while the rest is built.
Study the work
How the job is done today, including the parts nobody writes down. That is where most of the real requirements live.
Build the core
The single workflow carrying the most weight, shipped first and put in front of the people who will use it.
Extend it
Everything else, in the order it earns its place, shaped by what the first release taught us.
Hand it over
Documented, with the credentials in your name and the code in your account. No lock-in, no black box.
Boring technology, chosen on purpose
Nothing here is exotic. These are the tools that will still be maintained, still be hireable for, and still be inexpensive to run in five years — which matters more than being new.
- TypeScript end to end — one language and one set of types across the browser and the server.
- A real database, with migrations and backups, not a folder of exports.
- Runs on ordinary hosting — no per-seat SaaS bill that grows with your headcount.
- Mobile-first by default, because the person using it is usually standing up.
# one command to deploy, and it reports what it did $ npm run deploy ✓ typecheck 0 errors ✓ tests 39 passed ✓ build 76 kB gzipped ✓ migrate database in sync ✓ live app.yourcompany.com # and if something breaks at 6pm on a Friday $ npm run rollback ✓ previous version restored (8s)
Start with the file nobody wants to touch
If a job in your business runs on a file somebody is scared to edit, that is usually the right place to begin. Describe what it does and I will tell you what it would take to replace it.
Get in touch