Sheet 03, workshop
The bench
Five builds that have not shipped, with exactly where each one stands and what we are working through on it. Below them, the four that stopped, and why.
On the bench
Ordered by how close each is to shipping. Nothing here is live for the public yet, except where it says so.
On the bench Drawing 03.1, league platform
Advantage Sports
- Where it stands
- Opening to other leagues
- Last touched
- 2026-10-02
Advantage Sports runs one league today, on one database. joinadvantagesports.com, a small site on Lambda that keeps inquiries in DynamoDB, is where other leagues ask about it; making the platform itself serve more than one league is the work ahead.
Why
Other leagues are stuck on the same dying platforms the first one was. The software already runs a whole season end to end, so the next step is letting more than one league run on it.
What we are working through
Turning one league's software into something a second league can run. Nothing in the schema says which league a row belongs to yet, so every table, query, and job has to learn it, while the founding league keeps running its season on the same code.
On the bench Drawing 03.2, contractor operations
Roof Guru
- Where it stands
- Invite-only
- Last touched
- 2026-09-19
An estimating and job tool for residential roofing contractors. A roofer uploads the HOVER measurement report they already order, and it becomes an estimate in the trade's own math, then a job with supplier orders, crew labor, actual costs, and insurance claims. Each job moves through a status pipeline to a profit-and-loss of estimate against actual.
Why
Roofers run their business out of spreadsheets, notebooks, and message threads, and the field-service software aimed at them misses how claims work, how crews get paid, and how a job goes from estimate to close. I started with one Nashville roofer, Ron, and built for his real workflow: the estimator is built to match his spreadsheet.
What we are working through
Every roofer has a spreadsheet that works. The only way to earn the switch is to match its numbers on day one, then make the next estimate take minutes instead of an evening. The estimator warns on uncovered pitch area, $0 prices, and lines missing from the catalog instead of folding them into the total, because a number you cannot defend on a roof is worse than no number. Next is a second company: each one already gets its own roles, seats, and starter catalog.
Drawing 03.2. A roofer's estimating spreadsheet, rebuilt as an estimator where every query is scoped to one company. Parts list for Roof Guru No. Part What it does here 1 HOVER report The measurement PDF a roofer already orders, uploaded and read into structures and pitches. 2 Browser Owners, admins, and estimators build jobs and estimates; quotes and supplier orders print from the page. 3 Next.js on Vercel The estimate engine (pitch, waste, labor rates, overhead and profit, commissions), scoped to one company. 4 Neon Postgres Companies, members, catalogs, supplier prices, jobs, estimates, actuals, claims, orders, and the audit log. 5 SendGrid Sign-in codes and team invitations. 6 Supplier APIs (in build) Live pricing and ordering from roofing suppliers. Planned; nothing built yet. On the bench Drawing 03.3, private aviation
Jettison Air
- Where it stands
- Invite-only
- Last touched
- 2026-08-20
A workspace for private aviation charter brokers: build a trip, quote it, check airports, weather, notices, and traffic on one map, send the client branded documents and a live trip page, and see profit by trip.
Why
Charter brokers juggle a dozen disconnected tools: spreadsheets for trips, scattered sources for aircraft specs and airports, PDFs, and email. Cole and I are building the one place a broker works a trip from first call to invoice.
What we are working through
Data that has to be right: 267 aircraft models, every US airport and seaplane base in the FAA's 28-day files, about 1,900 Part 135 operators, and live weather, notices, and traffic on one map. Weather is fetched fresh on every lookup, so the real risks are the airport files and the cached FBO prices going stale between refreshes. It stays invite-only so real brokers can work real trips while we watch where the data lets them down.
Drawing 03.3. One broker workspace on Vercel, fed by FAA and weather sources it reads when a broker asks. Parts list for Jettison Air No. Part What it does here 1 Broker Builds trips and quotes; the page renders each branded PDF itself. 2 Next.js on Vercel Trips, clients, documents, and the routes that fetch every aviation source behind the session. 3 Neon Postgres Each broker's trips and clients, plus the FAA's airports, runways, and operators, and cached FBOs. 4 Aviation weather METAR, TAF, SIGMET, and PIREP, fetched on every lookup and never stored. 5 FAA data Airport and operator files loaded by script, and notices and flight restrictions from the FAA's API. 6 ADS-B traffic Live aircraft positions for the map. 7 SendGrid Itineraries and account email, sent under the broker's name. On the bench Drawing 03.4, fight promotion platform
Cornerbell
- Where it stands
- No domain yet
- Last touched
- 2026-08-02
An admin tool for fight promotions: fighter and gym registration, matchmaking, email and texts to fighters, and fight night itself: weigh-ins, check-in, judges and referees, and printable event sheets. Every record belongs to one promotion, so one deployment can serve many, each with its own branding and roster.
Why
Top Tenn Promotions runs on software built for one promotion. Cornerbell takes that platform and makes it safe for many, each with its own staff, branding, and roster.
What we are working through
Making one promotion's software safe for many. Every query has to carry the promotion, and the inherited code did not: an audit found 211 places one promotion could reach another's data. Those are fixed, and a lint rule and live two-promotion probes keep them fixed. Messages go through an outbox with leases and retries, because a Lambda can freeze the moment it answers and a fighter's notice cannot ride on a callback.
Drawing 03.4. One container on Lambda behind CloudFront, with a one-minute schedule that makes sure every message goes out. Parts list for Cornerbell No. Part What it does here 1 Browser Promotion staff running events; fighters answering a matchup from a signed link. 2 CloudFront The front door, stamping the header the app requires on every request. 3 Next.js on Lambda The admin tool in one container; each request is tied to one promotion before it touches data. 4 Neon Postgres Promotions, members, fighters, events, matchups, and the message outbox, all scoped by promotion. 5 EventBridge Calls the outbox drain through CloudFront every minute, with a bearer token. 6 Cloud Storage Logos and media, filed under each promotion's own prefix. 7 Resend, Twilio Email and texts to fighters, sent by the drain. An idea Drawing 03.5, health
Personal Health Engine
- Where it stands
- An idea, nothing built
- Last touched
- Nothing built yet
An idea for lining up Whoop recovery and sleep data with food logs and continuous glucose readings, to see cause and effect in my own data.
Why
Generic health advice does not tell me what my body does with the food I eat. I want to see it next to my own sleep and recovery.
What we are working through
Lining recovery, strain, and sleep up against food logs and glucose readings honestly enough to show cause and effect instead of coincidence. No code yet. It starts with my own data, before anyone else's.
Shelved
Four ideas that stopped, kept with the reason. Knowing when not to build is part of building carefully. On the map they stand as ruins.
| No. | Project | Status | Why it stopped |
|---|---|---|---|
| 03.6Shelved | Summit Habit TrackerA habit tracker, shelved; the lessons went into Battle Plans. | ShelvedBuilt, then stopped | Solving your own problem is necessary but not sufficient: you also need a reason your version should exist when fifty others already do. The game mechanics I tried here went straight into Biblical Battle Plans, so the work was not wasted. |
| 03.7Shelved | Replace QuickBooksRunning ShirePath's books on my own system instead of renting QuickBooks. | KilledNever built | QuickBooks already nails the parts that matter: sales tax, 1099s, and an audit trail my accountant trusts. Rebuilding that is a compliance treadmill with no upside. |
| 03.8Shelved | Commonplace AppA digital commonplace book for quotes and passages worth keeping. | Went analogNever built | The whole point is friction-free capture and slow re-reading. A paper notebook does both better. I bought one and closed the repo. |
| 03.9Shelved | Recipe BuilderRecipes from what is in the fridge, scaled and saved. | KilledNever built | Overkill. A chat model hands me a solid recipe in one prompt, faster than I could build the form to ask for it. |