Home  /  Studio
Shipped work · Case studies · Live links

The studio.

What I’ve actually built and shipped. Real software with real users, real stakes, and real links you can click on. Each one solves a problem I had, or watched somebody I cared about have — and couldn’t let alone.

4shipped products

1on the shelf, with notes

Moreon the bench · see Workshop
01 · Studio

League-OS / YLAFL Platform

Live · 1,500 families

A custom league management platform built from scratch for youth flag football — registrations, payments, scheduling, team management, standings, and communications.

The league was stuck on a dying platform (Sports Connect, EOL Fall 2026) and nothing off-the-shelf fit. So I built what should have existed.

Why it existsMost of League-OS is boring CRUD done carefully. The interesting piece is check processing. Cash, check, and money order payments still dominate youth sports, so the app has to turn a photo of a check into a posted payment. It works as a pipeline that spans Vercel and Google Cloud: the browser requests a signed upload URL and writes the check PDF straight to Google Cloud Storage, then Vercel kicks a containerized Cloud Run service (authenticated with a Google Auth Library ID token) that renders the PDF to PNGs using pdf-to-img and @napi-rs/canvas and writes the images back to GCS. A job engine in Postgres orchestrates the multi-step work. Each job step runs inside a Vercel route and uses after() to self-chain to the next step, which keeps every invocation under the 60 second serverless cap. Lease-based serialization prevents two workers from processing the same job, and a cron recovery job picks up anything stale. None of this is generic SaaS plumbing. It only exists because the league actually needed it.
Fig. 01 · UI preview
League-OS / YLAFL Platform screenshot
Spec · 01Rev. 04·26
Status
Live · shipping
Users
1,500 families
Stack
Next.js · Drizzle
DB
Neon Postgres
Pay
Stripe
Host
Vercel
02 · Studio

Biblical Battle Plans.

Live · rebuilt

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.

The honest partHit architectural limits around 100 users — no test environments, business logic buried in database queries. Tore it down and rebuilt v2 with a proper API layer, branched testing, and error tracking. The rebuild was harder than the original build, and I learned more from it.
Fig. 02 · UI preview
Biblical Battle Plans screenshot
Spec · 02Rev. 04·26
Status
Live · v2
Users
100+ growing
Stack
Next.js · TS
DB
Neon · Drizzle
Host
Vercel
Story
Wall → rebuild
03 · Studio

Christmas Story Card.

Live · evolving

An AI-powered app that transforms guided questions into personalized Christmas cards with custom stories and professional voice narration.

I wanted to send my family something more meaningful than a generic card. So I built a way to generate a personal story, narrate it with AI voice, and share it as a digital card.

Where it's goingExpanding beyond Christmas to general-purpose StoryCard — weddings, baby announcements, Father's Day, sympathy, etc. Exploring physical cards with QR codes that link to the digital story.

Workshop side of that work is tracked on the Workshop page.

Fig. 03 · UI preview
Christmas Story Card screenshot
Spec · 03Rev. 04·26
Status
Live · pivoting
Stack
Next.js · TS
DB
Firebase
AI
OpenAI + ElevenLabs
Pay
Stripe
Next
QR cards
05 · The shelf

Didn’t ship.
Still taught me something.

Killed, not hiddenNotes keptNo ego
01 · ShelvedStill live

Summit Habit Tracker.

A goal-oriented habit tracking app with daily tracking, progress visualization, and gamification elements.

I wanted a habit tracker that made progress feel rewarding. Built it, used it, and explored gamification patterns that later became core to Biblical Battle Plans.

What it taught meSolving your own problem is necessary but not sufficient — you also need a reason why YOUR version should exist when 50 others already do. The gamification patterns I explored fed directly into Biblical Battle Plans, so the work wasn't wasted.
“Both outcomes are fine.”

Some builds become products. Some become lessons. Either one is a win if you learned the right thing from it.

The Shelf is here on purpose — it keeps me honest about what I actually finished vs. what I wanted to. Killing a project cleanly is its own skill, and it’s one I’d rather practice than hide from.

More shelf entries live on the Workshop page, where things get parked before they move here permanently →

06 · What’s next

See what’s on the bench right now.

Studio is the shipped work. Workshop is what’s currently being made — active builds, a running field log, and the shelf of parked ideas. Or, if you’ve got something broken, let’s talk directly.