Case studies

Work

Products I've designed, built, and shipped — most of them solo, all of them running code rather than concepts.

Pre-launch

StoryKinder

A subscription platform for interactive, choose-your-path children's books.

Three modules in one system: an authoring studio for writers, a reader-facing library, and a portable story engine with no app-specific dependencies — so it can be wrapped in a native shell later without a rewrite. Content is data, never hardcoded.

Children's data shaped the schema. Kids never authenticate. Parents own the account, hold verifiable consent, and can review, export, revoke, or delete everything behind a PIN. COPPA was a design input, not a checkbox at the end.

Money that isn't mine. Author royalties are a completion-weighted pool paid out over Stripe Connect. That sits close enough to money transmission that I wrote an architecture decision record, invariant tests, and a build guard that fails CI if banned vocabulary enters the payment code.

Security tested as code. Privilege escalation, server-action authorization, storage isolation, and review race conditions are covered by a database-level test harness that runs on every commit.

StatusFeature-complete · pre-launch
RoleSole architect & engineer
FrontendNext.js 16 · React 19 · TS
DataSupabase · Postgres · RLS
PaymentsStripe · Connect
EngineInk · inkjs runtime
TestsVitest · pgTAP · Actions CI
Content2 books · 41,127 words
Live

TradePals

Eight certification-prep and field-reference apps for skilled trades, on one platform.

Fiber, electrical, welding, plumbing, wind, pools, elevators — each app on its own subdomain, each led by the credential its users actually search for rather than by the technology inside it.

The interesting engineering problem isn't any single app. It's building one platform where a new trade launches without a new codebase, and structuring acquisition so a free public practice exam converts into a subscription. Certifications renew on a cycle, which is what makes the retention math work.

StatusLive · 2 of 8 shipped
RoleFounder · sole engineer
ModelBranded house
Live nowSplicePal · VoltPal
In buildWeldPal
EntityTradePals LLC (TX)
Client engagement

Texas Seraphim

A professional basketball franchise needed season-ticket interest captured before tip-off.

The alternative was a form that emailed submissions into an inbox. Phase 0 shipped instead as a scoped, dated deliverable: landing page, email capture, and an authenticated subscriber dashboard the owner can actually use.

The architecture underneath anticipates the phases the client wants next — schedules, standings and stats, media, community, sponsors — so growth means building on top rather than starting over. Scope was written down first, including what explicitly wasn't in Phase 0.

ClientABA franchise
RoleContract architect & engineer
Phase0 — delivered
FrontendNext.js 16 · Tailwind v4
BackendSupabase · Auth · Postgres
HostingVercel
In market

Vengig

A three-sided live music marketplace — musicians, venues, and fans — with a browser-based DAW built in.

Three-sided marketplaces die of cold start. The design answer here is to make the supply side valuable to itself first: musicians join to find other musicians and record together, which builds density before a single venue is onboarded.

Venue booking and the fan discovery app layer on once a market is dense enough to be worth selling into. Growth runs city by city rather than nationally, because liquidity is local.

StatusIn market · Phase 1
RoleFounder · sole engineer
ShapeThree-sided marketplace
Products5 under one brand
FocusMusician-side density
GrowthCity by city

Your project could be the next one on this page