Founder build log
Building EquinePilot, one day at a time.
The story of taking equestrian software from a notes app to a real product. What I shipped, what I learned, and how much closer we get to a barn actually using this every day.
Start from Day 1Day 38 · Daily entry
Sunday, May 10, 2026
Day 38 — The Blog Gets a Database
We've been building in public since day one, but publishing a post still required a git commit and a deploy. That felt wrong. Today we fixed it.
- ✓Blog backed by Postgres
- ✓Admin authoring surface
- ✓Build pipeline decoupled from DB schema
3 min readRead →Day 35 · Daily entry
Thursday, May 7, 2026
Day 35 — Building the founding-barn funnel in a day
We shipped a full founding-barn acquisition funnel today — outreach email, landing page, self-serve Stripe checkout with a lifetime discount, live cohort counter, and graceful UX when the last spot fills. Plus: closing out a post-launch routing bug that had been on the list since day one.
- ✓founding-barn-program
- ✓signup-routing-fix
4 min readRead →Day 34 · Daily entry
Wednesday, May 6, 2026
Day 34 — Your logo on every invoice
Barns can now upload their own logo, shown in the sidebar and embedded in every invoice PDF. Plus: the CI archaeology that uncovered a whole class of infrastructure bug I hadn't thought to guard against.
- ✓barn-logo
- ✓ci-reliability
3 min readRead →Day 33 · Daily entry
Tuesday, May 5, 2026
Day 33 — The Morning After Launch, and the First Commit for Product 2
The day after v0.1.0 shipped: post-launch bugs squashed, the admin console extracted to its own app, and the first six CourseWalk database tables committed to main.
- ✓CourseWalk v1 Day 1
- ✓Admin app extracted
- ✓Dev blog live
3 min readRead →Day 32 · Daily entry
Monday, May 4, 2026
Day 32 — May the 4th be with us: EquinePilot v0.1.0 is live
32 days from pnpm install to production. Star Wars Day, a real card swiped through live Stripe, the v0.1.0 tag pushed, and the first $39.99 in the bank balance.
- ✓v0.1.0 tagged
- ✓Live mode Stripe
- ✓First Stripe charge
- ✓Production launch
3 min readRead →Day 31 · Daily entry
Sunday, May 3, 2026
Day 31 — ReinLogic ships, calendar UX overhaul, 92% test coverage
The biggest single day of the project. The Suite tier becomes real with ReinLogic going live. The show calendar gets a slide-out RSVP panel and email blasts. Test coverage goes from 35% to 92% in one push.
- ✓ReinLogic v1 live (Suite)
- ✓92% test coverage
- ✓Show calendar UX
- ✓URL hygiene
- ✓Show announcement email blast
3 min readRead →Day 30 · Daily entry
Saturday, May 2, 2026
Day 30 — feature-complete for first-barn onboarding
Brand assets, analytics, the auth split-panel redesign, marketing-site additions, guardian parity across web and mobile, a fully enriched client dashboard, and self-serve subscription management. Today the platform crossed into 'ready'.
- ✓PostHog analytics
- ✓Auth redesign
- ✓Guardian parity
- ✓Self-serve subscriptions
- ✓Comparison table
- ✓Testimonials pipeline
3 min readRead →Day 29 · Daily entry
Friday, May 1, 2026
Day 29 — the platform earns money now
Three independent surfaces shipped today: subscription billing wired all the way through Stripe, the company website launched at equinepilot.com, and the project picked up its real name.
- ✓Platform subscriptions
- ✓Marketing site live
- ✓Brand: EquinePilot
- ✓Idempotent migrations
2 min readRead →Day 28 · Phase recap
Thursday, April 30, 2026
Day 28 — the last polish before something breaks
The week's loose ends — a real password reset flow, a forced first-login change, the marketing demo finalized, a stale migration that wouldn't apply cleanly. The kind of unglamorous work that means a real human can use the product without filing a ticket.
- ✓Password reset
- ✓Idempotent migrations
2 min read · backfilledRead →Day 26 · Daily entry
Tuesday, April 28, 2026
Day 26 — building the marketing demo
Spent today building an interactive product demo for the (still-unnamed, still-unbought) marketing site. Six animated screens, click-to-jump nav, an embedded show calendar that actually responds. Showing is more convincing than telling.
- ✓Interactive demo
2 min read · backfilledRead →Day 25 · Phase recap
Monday, April 27, 2026
Day 25 — single URL, JWT-routed tenancy
Killed the subdomain-per-barn architecture I'd been carrying since Day 1. Tenant now resolves from the JWT session, not the URL. Simpler for users, simpler for me, fewer support tickets in our future.
- ✓Session-based tenancy
2 min read · backfilledRead →Day 22 · Phase recap
Friday, April 24, 2026
Day 22 — Stripe live, password reset, v1 feature-complete
Online invoice payments shipped, auth got hardened (real password reset, forced first-login change), CI pipeline went green. StableSync is feature-complete for v1.
- ✓Stripe payments
- ✓Password reset
- ✓Auth hardening
- ✓CI pipeline
- ✓StableSync v1 feature-complete
1 min read · backfilledRead →Day 20 · Daily entry
Wednesday, April 22, 2026
Day 20 — Stripe wires up
PaymentIntents created, webhooks reconciling, Pay button on the client invoice. The first time a barn gets a Stripe payout from this codebase will be a real moment.
- ✓Stripe payments
1 min read · backfilledRead →Day 18 · Phase recap
Monday, April 20, 2026
Day 18 — horse health alerts and billing that actually flexes
The week most barn-software competitors lose. Vaccines and meds tracked with real alerts; billing that handles variable charges, packages, and bulk invoice generation; QuickBooks Online wired in.
- ✓Horse health tracking
- ✓Flexible billing
- ✓QuickBooks Online sync
- ✓Bulk invoices
2 min read · backfilledRead →Day 16 · Daily entry
Saturday, April 18, 2026
Day 16 — billing schema is in
The hardest schema work of the project so far. Fee schedules, billing packages, billable charges, billing cycles — all wired up so an invoice can carry a base monthly fee plus arbitrary trainer-logged extras. None of the competitors do this.
- ✓Flexible billing
2 min read · backfilledRead →Day 14 · Phase recap
Thursday, April 16, 2026
Day 14 — trainers can teach, clients can book
Two full role surfaces shipped this week — trainer scheduling and the client portal. The platform now has all three audiences in it: who runs the barn, who teaches, and who pays.
- ✓Trainer schedule
- ✓Client portal
- ✓Recurring lessons
- ✓Makeup credits
1 min read · backfilledRead →Day 11 · Daily entry
Monday, April 13, 2026
Day 11 — the calendar that has to work
Recurring lesson templates went in today, and they're harder than they look. Trainers don't teach a slot — they teach a schedule. The data model has to handle that natively or every other feature gets weird.
- ✓Recurring lessons
1 min read · backfilledRead →Day 7 · Phase recap
Thursday, April 9, 2026
Day 7 — the manager actually has a dashboard
First week down. Clients, horses, stalls, programs, settings — the manager can run the basic shape of a barn now. None of it is pretty yet, but every page works on a phone.
- ✓Manager dashboard
- ✓UI foundation
- ✓Mobile-first nav
1 min read · backfilledRead →Day 4 · Daily entry
Monday, April 6, 2026
Day 4 — the building blocks
Three days in and the codebase is starting to feel like a real Next.js app. shadcn/ui installed, brand palette dialed in, layout shell drawn — the pieces every page is going to depend on.
- ✓UI foundation
1 min read · backfilledRead →Day 1 · Phase recap
Friday, April 3, 2026
Day 1 — why I'm building this
I've watched too many barn managers run a six-figure operation out of group chats and a paper notebook. Today I started building the thing that should exist.
- ✓Project kickoff
1 min read · backfilledRead →