Project
Joiner Kit
Drawing board, cutting list and price calculator in one, for carpenters and joiners
Feel free to share my work. I'd really appreciate it, because I don't tend to share it enough myself.
- Role
- Status

- 1,017
- Offline
- £10
The problem
A carpenter measures a space, works the parts out on paper, guesses how many sheets of board that is, and prices the job in the evening. Get a cut wrong and it's a sheet of board in the skip. Quote too low and the job pays for itself and nothing else.
Joiner Kit is the drawing board, the cutting list and the price calculator in one. Draw the units to the wall you measured, and it works out every part, how they sit on your sheets, what the materials cost at your prices, and what the customer sees.
The geometry is the product
Most of the work is in the parts nobody sees. A unit doesn't have to be a rectangle: the top can slope and the sides can lean, so the boards are cut at an angle and the bevel goes on the cutting list. Shelves are fitted to the gap at their own height. Doors can be flat, shaker or flat with strips stuck on, and either overlay the carcass or sit inset in the opening.
The cutting list is laid out on real sheets with the saw cut, the sheet trim and the grain direction allowed for, so the number of boards to buy is the number you actually need. Timber bought in lengths is worked out the same way, including joins for anything longer than the longest length sold.
It goes well past cabinets: skirting, architrave, door sets, wall panelling, stud and media walls with every stud, jack, king, header, cripple and noggin, pergolas, and casement windows and doors with their glazing bars and the glass cut to size. The same job turns into a 3D model to show the customer, a printable quote, and scaled workshop drawings on A4 or A3 without prices.
Built for a van and a workshop, not a desk
The designs live on the device and sync to the database when there's signal, because a site with no phone reception is the normal case, not the edge case. Added to the iPad home screen it works the same with the aerial down.
Next.js 16 and React 19 on Vercel, Supabase for the login, database and private file storage, three.js for the 3D, and Stripe for the subscription. 1,017 tests run in about five seconds, with the ones that call real services kept out of the default run.
Reading receipts without inventing anything
The other half of the app turns receipt photos and PDFs into a spreadsheet the accountant can use, read by Claude with a structured output schema rather than free text.
The categories in that schema are an enum built from that person's own list, so the reader cannot invent a category that doesn't exist. Anything it isn't sure of comes back marked 'Needs a look' with the reason attached rather than quietly guessed, and a person's own correction always wins: a re-read keeps manual choices and only fills in the rest.
Which model reads them was settled by a benchmark against a pack of awkward receipts, including handwritten ones, crops, screenshots and a credit note, rather than by picking the newest.
Keeping people's data apart
Every account's receipts are their own, enforced with row level security in the database rather than only in the interface. An account holder can invite their accountant with a one-time link that expires, and that login can search, open originals and export, and nothing else.
The key that creates those logins is server-only and never reaches the browser. I wrote the security review for it the same way I'd want one written for me: what an attacker would try first, and what stops it.
Built with
Next
A live 3D map of London drawn as holograms, built on Ordnance Survey and open data