Skip to main content
ShirePath

Door I · The Studio

Each of these started as somebody's broken thing.

Every one of these started the same way: something was broken, missing, or worse than it needed to be, and I couldn't leave it alone. Some I built for myself and people showed up. Some a client asked for. The work is the same either way.

  • 09 shipped & live
  • 05 on the bench
  • 1,500 families served

The index

Nine shipped & live · newest work first

No. 01 · Shipped · Multi-tenant platform

Advantage Sports

A league-operations platform built from scratch for youth sports: registrations, payments, scheduling, team formation, standings, and communications, now opening from one flag-football league to more than one operator.

The league was stuck on a platform that goes end-of-life in fall 2026 and nothing off the shelf fit. So I built what should have existed. It started as League-OS running a single league; the rebrand to Advantage Sports opens the same platform to other operators.

The interesting part

Most of it is boring CRUD done carefully. Two pieces are not. Cash and paper checks still dominate youth sports, so the app turns a photo of a check into a posted payment: the browser writes the PDF straight to cloud storage, a containerized service renders it to images, and a job engine in Postgres chains each step through a serverless route so no invocation outlives its 60-second cap. Lease-based serialization stops two workers from grabbing the same job.

The other piece is team formation. Sorting hundreds of kids into fair teams used to be a weekend of spreadsheets and hurt feelings, so I wrote a real solver: a greedy first pass, then simulated annealing against weighted hard rules and soft preferences. It balances grades, quarterback counts and how many kids come from each school, honors teammate-together and do-not-pair requests, keeps coaches near players they know, and makes sure every kid recognizes at least one face on their roster. It produces a few proposals with plain-English narration of the tradeoffs, and nothing goes live until a human accepts one.

The Advantage Flag League site at ylafl.com
The league it runs
The Advantage Sports marketing site at joinadvantagesports.com
For other leagues

SpecNo. 01

Status
Live · shipping
Serving
1,500 families
Stack
Next.js · Drizzle · Neon
Payments
Stripe · check imaging
  • Season registration with integrated payments
  • Automated team formation and roster balancing
  • Public season pages derived from live status
  • Email blasts with separately unsubscribable lanes
  • Schedules, standings, and a family comms hub

No. 02 · Shipped · Community platform

Biblical Battle Plans

An RPG-themed Bible reading tracker with guilds, XP, character progression, and community accountability. Built for men who want to take their faith seriously without it feeling like homework.

I wanted a Bible reading tool that felt like a game, not a chore. Nothing like it existed, so I built it.

What went wrong, and what it taught me

It hit architectural limits around a hundred users: no test environments, business logic buried in database queries. I tore it down and rebuilt v2 behind a proper API layer, with branched testing and error tracking. The rebuild was harder than the original build and I learned more from it. That API layer is earning its keep twice over now: a native iOS client is being built against the same contracts the web app uses, so onboarding, the reading flow, the dashboard and journal reflections all read from one source of truth instead of a second implementation of the rules.

  • Five reading plan types with daily progress tracking
  • Streaks with shields, XP, leveling, achievements
  • Guilds with leaderboards, chat, prayer requests
  • AI audio narration · push notifications · offline PWA
Biblical Battle Plans screenshot

SpecNo. 02

Status
Live · v2
Focus
Community platform
Next
Native iOS client
F3 Queen screenshot

No. 03 · Live · daily driver

F3 Queen

A closed-cohort fat-loss accountability app for me and a small group. A sub-60-second daily check-in feeds a private cohort feed, trend charts, and an automatic Slack recap. I still open it every morning, and my BMI and body fat are down while eating well rather than starving.

Next.js · Neon · better-auth · Slack API
Christmas Story Card screenshot

No. 04 · Shipped · AI application

Christmas Story Card

Guided questions become a personalized card with a custom story and professional voice narration. I wanted to send my family something more meaningful than a generic card.

Next.js · Firebase · OpenAI · ElevenLabschristmasstorycard.com (opens in a new tab)
Stunt Dudes screenshot

No. 06 · Marketing site & CMS

Stunt Dudes

A tour-poster site and admin CMS for a professional BMX and skateboard stunt team. Shows, media gallery, tour schedule, and a booking form that reaches the right person, all editable by the team without a developer.

The act is loud, physical and genuinely impressive, and their old template made it look like a hobby. A stunt team gets booked because a promoter watched thirty seconds of footage and believed it, so the site's whole job is to carry the act and then get out of the way of the booking.

This is the ShirePath AWS pattern at its cleanest: a container on Lambda behind CloudFront, Terraform in the repo, OIDC deploys with no long-lived keys. Gallery photos upload straight to S3 through presigned PUTs and come back through the CDN. One seeded admin account, no public signup, and a forced password change on first sign-in, because a seeded credential nobody rotates isn't a credential.

Next.js · Lambda · CloudFront · Terraformstuntdudes.com (opens in a new tab)
TCL Auto Detail screenshot

No. 07 · Marketing site & CMS

TCL Auto Detail

A marketing site and admin CMS for a mobile auto detailer in Tuscaloosa. The detailer drives to the customer, so the site's only job is to price the work plainly and turn a search into a quote request.

A one-truck operation doesn't need a platform. It needs to be found, to be trusted in about eight seconds, and to get a quote request into a phone that's currently under someone's dashboard.

The interesting work was cost at the bottom of the traffic curve. Crawlers were waking a serverless database on every pass, so public HTML is cached at the edge and the origin left the read path for anonymous visitors. A Lambda frozen long enough loses its database socket, so reads retry instead of erroring at whoever showed up first that morning. Reserved concurrency is capped so a burst can't fan out into a bill the owner never agreed to.

Next.js · Lambda · CloudFront · SendGridtclautodetail.com (opens in a new tab)
Journey to Jericho screenshot

No. 08 · Nonprofit marketing site

Journey to Jericho

A mission site for a faith-based mentorship ministry in Columbia that fathers the fatherless through the work of a motor shop. One page carries the whole model: the mission, a seven-pillar formation track, a twelve-badge growth system, and mentor, mentee and volunteer paths that route real applications to the team.

A ministry minutes from my own shop needed a front door that could carry a heavy mission without feeling heavy: tell the story, explain the program, and let a mentor, a family, or a volunteer step in without friction.

Prerendered per route so every page ships real titles and Open Graph tags, then served as static files from S3 behind CloudFront: no server to babysit, nothing to patch, a cache hop from every visitor. Exactly what a small ministry budget wants.

React · Vite · S3 · CloudFrontjourneytojericho.org (opens in a new tab)
Real Zambia Safari screenshot

No. 09 · Marketing & lead capture

Real Zambia Safari

A marketing and lead-capture site for a Zambian-led, US-registered safari company. Cinematic trip pages, an enquiry pipeline that routes serious leads straight to the team, and a self-serve blog the owners run without a developer.

A Zambian-led safari outfit based in Nashville needed a front door that made people want to go and made it effortless to reach out. Phase 1 is about capturing the right enquiries.

The enquiry form is the business, so it's validated with Zod, written to Postgres through Drizzle, and pushed to the team the instant it's submitted. The blog is a real CMS: owners author in a rich-text editor, HTML is sanitized server-side before storage, and cover images upload to blob storage. Built to hand off: they run their own story after I leave.

Next.js · Neon · SendGrid · Tiptaprealzambiasafari.com (opens in a new tab)

On the bench · four of five

Open the workshop

Want one of these for the thing that's broken on your side?

Tell me what's broken, what you've tried, and what "done" would look like. An honest read within 48 hours, including if I'm the wrong person for it.

conner@shirepathsolutions.com

ShirePath Solutions LLC · Columbia, Tennessee · Est. 2025