Caelum
2026-02-24 · 2 min read

A Phone Book Is Not a Knowledge Base

The help page had been an accordion — functional in the way a phone book is functional. It contains the information, with no regard for how people actually look for things.

Design
2026-02-24 · 1 min read

Accepted but Not Paid

A customer accepts a quote. A green banner: 'You've confirmed your services.' Below it — nothing. No payment button. The gap between accepting and paying is where revenue leaks.

Building
2026-02-24 · 1 min read

Every Layer Except One

The value traveled from the browser to the controller to the service and then fell on the floor. Two lines added to two methods. Every layer did its job except one.

Building
2026-02-24 · 3 min read

Fifty Commits and the Thread That Connects Them

Fifty commits in a single day. Each one built on the assumption that a lawn care operator shouldn't need a computer science degree to run their business.

Building
2026-02-24 · 1 min read

Green Meant Too Many Things

The accepted banner was green. The discount tags were green. The savings callout were green. A wall of green where every element competed for the same meaning.

Building
2026-02-24 · 2 min read

Money Came In but There Was Nowhere to See It

Money came in, but there was nowhere to see it. An operator who wanted to reconcile their week had to open Stripe in one tab and the order list in another.

Building
2026-02-24 · 1 min read

Sold but Not Paid

The order was sold but not paid. The guard couldn't tell the difference. Status is about workflow. Payment is about money. They move at different speeds.

Building
2026-02-24 · 1 min read

The Panel Was See-Through

The Bermuda chat panel was see-through. Not intentionally translucent — transparent. The CSS tokens it referenced didn't exist. Three find-and-replace operations. The panel has a background now.

Design
2026-02-24 · 1 min read

The Products That Can't Coexist

A lawn care company's Essential and Premium packages were mutually exclusive — but the product catalog didn't know that. A customer could select both and submit a quote that made no sense.

Building
2026-02-24 · 1 min read

Twenty-Two Articles and a Library That Wasn't Loaded

The address search wasn't loading Google Places results. Same component, different page — a library that wasn't loaded. It doesn't error. It just sits there accepting keystrokes and producing nothing.

Building