Category

Building & Shipping

Products and SaaS taken from idea to deployed — pricing, build-in-public, the lot.

Building & Shipping · October 3, 2026

Your Notification Vendor Is Not a Scheduler

A balance-due email and a day-before reminder fired on Freebo yesterday morning for a test booking I'd made days earlier. Neither of them was held by my notification vendor. Here is why the clock had to live somewhere else.

Building & Shipping · October 1, 2026

A Stranger Paid My Platform While I Slept

A real customer of a real operator bought a real trip at 3 a.m. The booking id in my inbox was the first one I had no hand in. Here is the chain of systems that fired behind it.

Building & Shipping · September 30, 2026

290 Commits Ahead of Production

Production was a Sep 5 snapshot. Main had 290 commits on top of it. The scariest one swapped the entire financial system. Here is how I planned the push so I could still un-swap it.

Building & Shipping · September 29, 2026

The Discount Was Real. The Cache Was Stale.

A promo code I just created wasn't showing up in checkout. The server was fine. The database was fine. The bug was a five-minute-old cache and two query keys that didn't know they were related.

Building & Shipping · September 28, 2026

How I Read a Security PR I Didn't Write

Fifty-six files, 3,541 insertions, and one line I could not have written on my best day. Here is the exact routine I use to actually understand a merged security PR as a founder who does not write the code.

Building & Shipping · September 26, 2026

Money Is Not a Column

Every booking platform starts with an amount_paid column. Every booking platform eventually replaces it with a real ledger. Here is what I learned rebuilding Freebo's financial core on double-entry accounting.

Building & Shipping · September 21, 2026

The Task Description Is the Runbook

Two cold-outreach follow-ups fired on my phone this morning. I hadn't looked at either since I sent them. The reason I didn't need to reconstruct anything is that the task description already was the reconstruction.

Building & Shipping · September 19, 2026

Byte-Identical or the Refactor Doesn't Ship

Four PRs converged on the same checkout code. Before any of them could land, they had to prove — DOM under #root, pixels on screen, ledger postings, notifications — that with the flag off, my branch was byte-identical to main.

Building & Shipping · September 8, 2026

Parked Is a Decision, Not Neglect

A week after generating sixteen partner integration briefs, I told the agent that runs them to ignore nine of them. The tracker now surfaces three. Here is why, and how the system enforces it.

Building & Shipping · September 7, 2026

Three of My Four Partner Emails Bounced

The 'official' partner inboxes on OTA docs pages are ghosts. Here's which doors actually opened and how to tell before you hit send.

Building & Shipping · September 3, 2026

My Auto-Changelog Has a Do-Not-Market List

The interesting part of an auto-generated changelog isn't what it publishes — it's the private ledger of everything it refuses to publish.

Building & Shipping · August 30, 2026

iOS Was Asking. The Server Didn't Know the Question.

The fix was merged two hours and forty-two minutes before the last production promotion. Railway skipped the build. iOS shipped a query parameter the server had never heard of, and the server did the worst possible thing with it — nothing.

Building & Shipping · August 27, 2026

The Month View Was Recomputing Yesterday

The month calendar took 40 seconds in production because it live-computed slot availability for every past day of the month. Then, investigating that surfaced six range reads with only one error check between them.

Building & Shipping · August 26, 2026

Losing Leads to the App Switcher

iOS Safari freezes JavaScript the instant a tab is backgrounded and kills every in-flight request with it. If your abandoned-cart tracking uses a debounce, half your mobile traffic is invisible.

Building & Shipping · August 25, 2026

One PostHog Project, Two Platforms, One Person

Wiring PostHog into a native SwiftUI app is one afternoon. Getting the iOS events to land on the same person as the web events is the part every tutorial skips.

Building & Shipping · August 23, 2026

I Hid My API Docs So Well I Couldn't Demo Them

A friend asked to see the Freebo API. I opened api.freebo.ai/docs-v2. 404. I had shipped 'secure by default' straight past useful — here's the Fastify config that fixed it.

Building & Shipping · August 22, 2026

88 Migrations In, and Mongo Is Whispering

Six months into shipping a booking SaaS on Postgres, a friend asked why I picked it. The honest answer isn't the one I put in the pitch deck.

Building & Shipping · August 20, 2026

The Channel That Must Stay Silent

A single routine post in your interrupt channel teaches you to ignore the next real one. Here's the routing rule I use to keep #freebo-urgent honest.

Building & Shipping · August 19, 2026

The Three Questions Your Billing Inbox Can't Answer

I built a finance watchdog for my SaaS at 12:30 AM. The design started with one honest observation: a receipt only ever arrives after the money has already left.

Building & Shipping · August 16, 2026

The Ledger That Refuses to Lie

Sentry paged me fifteen times last week with the same error: insufficient funds in an account. The account was not a customer's. It was inside my own ledger.

Building & Shipping · August 14, 2026

Auditing a Live Payments Ledger From a Terminal Tab

I have no DevOps team and no admin panel. To reconcile a live week of charter reservations before flying out, I opened three terminal tabs — Railway, Formance, Stripe CLI — and walked the money.

Concept cover illustrating You Don't Launch SMS. You Wait for The Campaign Registry.
Building & Shipping · August 5, 2026

You Don't Launch SMS. You Wait for The Campaign Registry.

Our Twilio brand approval landed overnight after weeks in the queue. The code for SMS in Freebo has been ready since spring. The registration is the feature.

Concept cover illustrating Insurance For A Solo SaaS, Researched In One Claude Session
Building & Shipping · August 3, 2026

Insurance For A Solo SaaS, Researched In One Claude Session

What I actually needed, what I skipped, and the four questions I made every underwriter answer in writing.

Concept cover illustrating The Reschedule Email That Rendered Nothing
Building & Shipping · July 31, 2026

The Reschedule Email That Rendered Nothing

We rebuilt Freebo's confirmation email in July. Its three cousins — reschedule, cancellation, modification — were out of scope. In production they were sending a template that said 'Your reservation details are below,' and then nothing.

Concept cover illustrating The Withdrawal I Didn't Authorize
Building & Shipping · July 29, 2026

The Withdrawal I Didn't Authorize

Stripe pulled money out of my platform bank account without asking. It was not a bug. Every step is documented Connect behavior. Here is the exact chain, and the five settings that stop it happening again.

Concept cover illustrating Why My Booking Platform Has No Balance Columns
Building & Shipping · July 24, 2026

Why My Booking Platform Has No Balance Columns

Ask my SaaS what a customer owes and it doesn't run a SELECT. It queries a separate double-entry ledger. Here's why, and what falls out of that decision.

Concept cover illustrating The Booking That Only Exists to Block Time
Building & Shipping · July 22, 2026

The Booking That Only Exists to Block Time

A charter operator running two booking channels asked me to create a $0 reservation with the notifications suppressed. That request is a category of missing feature every multi-channel booking business runs into.

Concept cover illustrating The Migration Nobody Finishes
Building & Shipping · July 21, 2026

The Migration Nobody Finishes

Bookings had softened for no reason anyone could point at. Six hours later the answer was a URL on Google Maps that nobody had updated in three years.

Concept cover illustrating The One-Checkbox Feature That Needed Ten Rules to Ship
Building & Shipping · July 20, 2026

The One-Checkbox Feature That Needed Ten Rules to Ship

An operator settled a cancellation on the phone. The automated email was going to fire anyway. The 'just add a checkbox' fix turned into a ten-rule PRD before I let anyone touch the API.

Concept cover illustrating The Read Path Filtered It. The Write Path Didn't.
Building & Shipping · July 18, 2026

The Read Path Filtered It. The Write Path Didn't.

A booking made it into the system for a slot the availability engine would never have shown. Here's the class of bug that lets that happen — and the guard that closes it.

Concept cover illustrating The First Real Payments Landed. The Dashboard Said Zero.
Building & Shipping · July 17, 2026

The First Real Payments Landed. The Dashboard Said Zero.

Two live pay-link payments hit Stripe, hit the ledger, hit the amount-due totals — and never appeared in the dashboard's Payment History card. The bug had been quietly waiting for a real customer to trip it.

Concept cover illustrating The Two-Hour Booking, and Why Your Defaults Are the Product
Building & Shipping · July 16, 2026

The Two-Hour Booking, and Why Your Defaults Are the Product

A live customer booked a tour two hours before it started. The booking platform did exactly what it was designed to do — which turned out to be the problem.

Concept cover illustrating Wiring Sentry Into a Payments SaaS Without Leaking an Email
Building & Shipping · July 15, 2026

Wiring Sentry Into a Payments SaaS Without Leaking an Email

Every Sentry tutorial ends at 'paste the DSN and go.' That's a fine setup for a blog. It's an accident waiting to happen when your app moves money. Here's what the real config looks like.

Concept cover illustrating Now That Someone Real Is Using It, I Want to Hear the Errors
Building & Shipping · July 14, 2026

Now That Someone Real Is Using It, I Want to Hear the Errors

The difference between a demo and a live operator is that when Freebo breaks now, a stranger's booking breaks. So I wired production up to real error monitoring and started listening.

Concept cover illustrating Two Production Fixes From the Back Seat of a Car
Building & Shipping · July 13, 2026

Two Production Fixes From the Back Seat of a Car

My first live tour operator was taking real bookings when the reschedule flow and a card charge needed fixing. I shipped both from my phone, in minutes, riding through the mountains.

Concept cover illustrating 70,000 Candidates Stuck Behind a Rate Limit
Building & Shipping · July 11, 2026

70,000 Candidates Stuck Behind a Rate Limit

A search firm's entire candidate history was trapped behind a brittle homegrown bot and a throttled API. Freeing the data mattered more than any agent I could put on top of it.

Concept cover illustrating The 20 Emails I Sent Myself Before My First Customer Could
Building & Shipping · July 9, 2026

The 20 Emails I Sent Myself Before My First Customer Could

Before onboarding my first live operator on Freebo, I ran the entire notification lifecycle at my own inbox. This is the prompt I used to hire an AI to prove it worked.

Concept cover illustrating The Domain Email Is the Front Door
Building & Shipping · July 7, 2026

The Domain Email Is the Front Door

I spent a session turning myself into an ebike media outlet. The real gate between a Gmail hobbyist and a free test bike turned out to be five characters after the @.

Concept cover illustrating My Parity Test Was Comparing the Bug to Itself
Building & Shipping · July 3, 2026

My Parity Test Was Comparing the Bug to Itself

I cached Freebo's yacht availability endpoint and wrote a parity test to prove cache == live. It stayed green for weeks while quietly shifting dates by a day. Here's how the test masked the bug — and the two-line fix under it.

Hand-drawn diagram: a $10-a-year SaaS open-sourced after six days from idea to Cloud Run
Building & Shipping · June 22, 2026

I'm Open-Sourcing the SaaS I Just Shipped

Six days from idea to deployed on Cloud Run. The pricing was $10 a year. Then I looked at the math on solo-founded micro-SaaS and decided the better business is to give it away.

Hand-drawn diagram: a faded feedback UI beside a bold export button handing a file to Claude Code
Building & Shipping · June 17, 2026

The Export Button Is the Whole Product

Feedback tools have existed for ten years. The interesting move now isn't the comment UI — it's the file you hand to Claude Code on the other side.

Hand-drawn diagram: Firebase Hosting verification failing because Cloudflare was answering for its own domain
Building & Shipping · June 16, 2026

Firebase Couldn't See Its Own IP

I bought siterevisions.com, pointed it at Firebase Hosting, and waited. Verification kept failing. The bug wasn't DNS propagation — it was Cloudflare answering for itself.

Concept cover illustrating I Built the Pricing Knobs Before I Had Anyone to Turn Them
Building & Shipping · June 13, 2026

I Built the Pricing Knobs Before I Had Anyone to Turn Them

First paying Freebo tenant negotiated 6% instead of the default 10%. The change took thirty seconds because the system was designed multi-tenant from day one.

Concept cover illustrating Forty Seconds on Ten Million Points
Building & Shipping · June 11, 2026

Forty Seconds on Ten Million Points

I built a working LiDAR ground classifier in Rust in one Claude Code session. Forty seconds on the Autzen benchmark, 47 cm RMSE against the professional classification, no PDAL, no GDAL, no Windows.

Concept cover illustrating Why Replit Won't Eat My Booking Platform
Building & Shipping · June 10, 2026

Why Replit Won't Eat My Booking Platform

A friend asked if Replit was going to put Freebo out of business. The honest answer is in five rules I've been writing in production code for months.

Building & Shipping · June 6, 2026

I Said Deploy To Vercel. Railway Heard Me.

I had three static HTML mockups, a client waiting on a link, and a deploy target in my head. Railway had different ideas — and it shipped before I finished my sentence.

Building & Shipping · June 4, 2026

Launch May 2026 Was Still On My Homepage

The hero said 'Launch May 2026.' It was June. I had a customer waiting. Thirty minutes, one Google Calendar embed, and one duplicated-button bug later, the launch date was gone.

Building & Shipping · June 1, 2026

Fifteen Transactional Emails In One Claude Session

Freebo had fifteen Novu workflows all sending the literal string 'set in Novu Dashboard.' One session, one React Email package, fifteen real branded emails in my inbox by morning.

Building & Shipping · May 28, 2026

I Asked Claude Where to Put an Imaginary $100k

A five-dimension rubric, twenty-nine projects, and the uncomfortable answer about what I'm actually building.

Building & Shipping · May 10, 2026

The First Email on My Waitlist Was a Question

doesthisthingwork@gmail.com signed up for the Freebo waitlist. The full Next.js plus Resend pipeline that delivered them, and the small thing that actually mattered.

Building & Shipping · May 6, 2026

When to Bypass Your Own API

I designed ReelForge with immutable brief versions and a clean state machine. Then I needed to fix 30 finalized scripts without triggering a full regeneration — and the right answer was to skip my own API entirely.

Building & Shipping · April 30, 2026

The Fifty-Thousand-Dollar Test Booking

I added an AI agent to Freebo. It told me a $500 booking was worth fifty grand. Here's what went wrong and why it matters.

Building & Shipping · April 29, 2026

Pointing Cloudflare at Railway Without Breaking SSL

The CNAME-already-exists error, the SSL handshake loop, and the port-8080 magic that finally made freebo.ai resolve. Here's the actual sequence that worked.

Building & Shipping · April 23, 2026

A Brand, a Website, and a Rick Burgess Meme

My friend mentioned he sells water filters. A few hours later his company had a name, a site, and a stack of custom video memes on my phone.

Building & Shipping · April 17, 2026

Thirty Seats and a USB Drive

I went from a half-formed idea to a fully planned workshop in one sitting. The curriculum, the pricing, the marketing — all of it.

Building & Shipping · April 11, 2026

The Machine That Draws While You Read

An open-source idea I can't stop thinking about: a tool that generates illustrations for any book, synced to the audio.

Building & Shipping · April 3, 2026

My Startup Is a Folder

Sixteen markdown files. Six layers. Zero incorporation paperwork. The company already has an operating system.

Building & Shipping · April 2, 2026

I Shipped a Button That Called Nothing

Seven builds. One missing variable. A perfectly functional button sending requests into void.

Building & Shipping · March 30, 2026

We Built the Whole Stack, and It's Only the Beginning

Freebo is a booking platform for tour operators with double-entry accounting, real-time availability, multi-tenant isolation, and async financial pipelines. Built by a team of two. Here's what that means for the industry.

Building & Shipping · March 28, 2026

I Locked Myself Inside My Own Desktop

I built a kiosk mode that traps me at my desk until the work is done. On purpose.

Building & Shipping · March 23, 2026

Nobody Tells You Pricing Is the Whole Product

I thought the hard part of building a booking platform was the booking. I was wrong by a mile.

Building & Shipping · October 1, 2025

The Future of Software: Free, Custom, and AI-Powered

Why I believe all software will be free or dirt cheap within 5 years, and how vibe coding will reshape the entire industry.

Building & Shipping · September 22, 2025

Cheap Software, Priceless Value

When B2B software becomes nearly free, where does the real value go?