Skip to main content
ShirePath Solutions

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.

  1. 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.

  2. 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.

    VercelNeonPDFHTTPScompany-scopedcodes, invitespricing123456HOVER reportBrowserNext.js onVercelNeon PostgresSendGridSupplier APIsVercelNeonPDFHTTPScompany-scopedcodes, invitespricing123456HOVERreportBrowserNext.js onVercelNeonPostgresSendGridSupplierAPIs
    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.PartWhat it does here
    1HOVER reportThe measurement PDF a roofer already orders, uploaded and read into structures and pitches.
    2BrowserOwners, admins, and estimators build jobs and estimates; quotes and supplier orders print from the page.
    3Next.js on VercelThe estimate engine (pitch, waste, labor rates, overhead and profit, commissions), scoped to one company.
    4Neon PostgresCompanies, members, catalogs, supplier prices, jobs, estimates, actuals, claims, orders, and the audit log.
    5SendGridSign-in codes and team invitations.
    6Supplier APIs (in build)Live pricing and ordering from roofing suppliers. Planned; nothing built yet.
  3. 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.

    VercelNeonHTTPSDrizzleMETAR, TAFnoticesseedpositionsitinerary28-day cycle1234567BrokerNext.js onVercelNeon PostgresAviationweatherFAA dataADS-B trafficSendGridVercelNeonHTTPSDrizzleMETAR, TAFnoticesseedpositionsitinerary1234567BrokerNext.js onVercelNeonPostgresAviationweatherFAA dataADS-BtrafficSendGrid
    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.PartWhat it does here
    1BrokerBuilds trips and quotes; the page renders each branded PDF itself.
    2Next.js on VercelTrips, clients, documents, and the routes that fetch every aviation source behind the session.
    3Neon PostgresEach broker's trips and clients, plus the FAA's airports, runways, and operators, and cached FBOs.
    4Aviation weatherMETAR, TAF, SIGMET, and PIREP, fetched on every lookup and never stored.
    5FAA dataAirport and operator files loaded by script, and notices and flight restrictions from the FAA's API.
    6ADS-B trafficLive aircraft positions for the map.
    7SendGridItineraries and account email, sent under the broker's name.
  4. 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.

    AWSAWSNeonGoogle CloudHTTPSoriginDrizzlebearer tokenmediaemail, SMS1234567BrowserCloudFrontNext.js onLambdaNeon PostgresEventBridgeCloud StorageResend, TwilioAWSAWSNeonGoogle CloudHTTPSoriginDrizzlebearer tokenmediaemail, SMS1234567BrowserCloudFrontNext.js onLambdaNeonPostgresEventBridgeCloudStorageResend,Twilio
    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.PartWhat it does here
    1BrowserPromotion staff running events; fighters answering a matchup from a signed link.
    2CloudFrontThe front door, stamping the header the app requires on every request.
    3Next.js on LambdaThe admin tool in one container; each request is tied to one promotion before it touches data.
    4Neon PostgresPromotions, members, fighters, events, matchups, and the message outbox, all scoped by promotion.
    5EventBridgeCalls the outbox drain through CloudFront every minute, with a bearer token.
    6Cloud StorageLogos and media, filed under each promotion's own prefix.
    7Resend, TwilioEmail and texts to fighters, sent by the drain.
  5. 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.

Shelved projects
No.ProjectStatusWhy it stopped
03.6ShelvedSummit Habit TrackerA habit tracker, shelved; the lessons went into Battle Plans.ShelvedBuilt, then stoppedSolving 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.7ShelvedReplace QuickBooksRunning ShirePath's books on my own system instead of renting QuickBooks.KilledNever builtQuickBooks 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.8ShelvedCommonplace AppA digital commonplace book for quotes and passages worth keeping.Went analogNever builtThe whole point is friction-free capture and slow re-reading. A paper notebook does both better. I bought one and closed the repo.
03.9ShelvedRecipe BuilderRecipes from what is in the fridge, scaled and saved.KilledNever builtOverkill. A chat model hands me a solid recipe in one prompt, faster than I could build the form to ask for it.