Uses
What we build with, and why.
Not a list of logos. Every entry here is something the work actually depends on, with the reason it beat the alternative — because the reason is the only part of a stack list worth reading.
- Entries
- 15
- Versions pinned
- None — see package.json
- Updated
- July 2026
01/This site
Static, self-hosted, and about as boring as it can be. That's the point — a portfolio that needs a runtime is a portfolio that will break.
Every page prerendered at build. The only server code is the two form handlers.
Server components by default. The client bundle is the nav, the palette, the theme switch and four disclosure widgets.
Utilities for layout, custom properties for colour. No component library — the design system is about forty lines of CSS.
Strict. The case-study and note content are typed data, not markdown, so a malformed post fails the build rather than the page.
One family doing all the work, self-hosted from the package so the build never depends on a font CDN.
Lazy-loaded, and only for the mobile menu and the contact dialog. Every scroll reveal on the site is a CSS transition behind an IntersectionObserver.
Icons, sparingly. Most of what used to be an icon here is now a hairline rule or a mono index.
The contact form and beta waitlists. Both handlers are rate-limited, honeypotted and time-trapped.
Hosting and analytics. Static output, so it would run anywhere that serves files.
02/What we ship on
The stack behind the products, where the constraints are much less negotiable — everything below has to run inside a customer's building with no internet connection.
Quantised inference on commodity hardware. It's what makes 'runs on the machine you already own' a real claim rather than a marketing one.
Models trained on the customer's own operational data — drawings, bids, rate books — rather than a general model behind an API.
No cloud dependency, no phone-home, no per-seat meter. Source handed over with the install.
03/How we work
The smallest real version, in front of the actual problem, before anyone commits to a roadmap.
Everything abandoned gets an entry in the log, with the same weight as a release.
From the model to the metal. No black boxes we can't open, no dependencies we can't replace.
No desk, keyboard or editor section. Everything on this page is something the shipped work demonstrably depends on, and a workspace list would be the first thing here that isn't.
Taking one new project for Q4 2026
Have something worth building?
A game, an app, an AI model, or a problem that doesn't have a name yet — tell us about it and we'll build the prototype.