Isaac Hess
All writing

September 3, 2026

Why I Built CageList

I ran a lesson business in Phoenix, then Central Florida, then coastal Georgia. Never leased a building once.

The reason that worked is boring and the reason it was hard is the same thing: I rented time instead of space. Cages by the hour, park space, a school gym in the off-hours, somebody's backyard.

And every single time I moved, I lost a week of my life to the same problem. Where do I put a kid and a bucket of baseballs, at 4:30 on a Tuesday, for the next six months?

The cages were already there

This is the part that eventually broke my brain.

The supply existed. It always existed. Every town has cages sitting empty most of the week — academies with dead midday hours, a little league complex nobody uses on Thursdays, a family with a good backyard setup they built for one kid who now plays travel ball three towns over.

None of it was findable. None of it was bookable. If you wanted cage time you called around, left voicemails, showed up hoping, or you knew a guy.

Meanwhile the owners of those cages were sitting on an asset making nothing for twenty hours a week and had no way to change that short of putting a sign out front.

That's not a demand problem. That's not a supply problem. That's a matching problem, and matching problems are what software is actually good at.

What I built

CageList is a marketplace for booking batting cages. You search where you are, you see what's actually available, you book it, you go hit.

On the other side, someone with a cage — a backyard, an academy, a full facility — can list it and turn dead hours into income. Payments run through Stripe, waivers are signed digitally, hosts get reviewed.

That's the whole idea. It is not clever. The hard part was never the concept.

The hard part

I wrote it myself. Schema, payments, bookings, the lot.

Two-sided marketplaces are brutal in a specific way that nobody warns you about, and it isn't the code. It's that the thing has no value until both sides show up, and neither side shows up until it has value. A booking site with no cages is useless. A cage listed on a site with no players is worse than useless — it's a host who tried you once and won't come back.

There is no amount of engineering that solves that. You solve it by going and getting supply, one host at a time, in one geography, until the density is real enough that a player searching finds something worth booking.

The engineering problems were real too — the double-booking constraint, webhook dedupe, who's allowed to see what — and I wrote all of that down. If you're building something similar, the whole thing is documented here for free: what it cost, what I got wrong, what I'd do differently. Real invoices, no theory.

What it turned into

It stopped being only about booking.

People kept asking what it costs to build a cage, so there are now cost guides and a calculator covering backyard, DIY, and full installs. People kept asking who could build one, so there's a builder network. Teams kept asking where to find players and players kept asking where to find teams, so that's there too.

That wasn't a roadmap. That was users telling me what the thing actually was, repeatedly, until I listened.

Why a pitcher ended up writing software

In February 2011 I threw a bullpen for the Arizona Diamondbacks and got told it wasn't going to work out. By October I was cold-calling small businesses on commission. I've written about that stretch elsewhere — it's the least glamorous part of my story and probably the most important.

What I learned selling SEO to small businesses is that most of them had an operationally sound business and a completely broken way of being found. That is exactly the batting cage situation. A functioning asset, invisible to the people who want it.

So when I hit the same wall myself for the fourth time as a coach, I didn't see a nuisance. I saw the shape of something I already understood.

Who it's actually for

If you're a player or a parent: you shouldn't have to know somebody to get reps. Search, book, hit.

If you own a cage: your empty hours are inventory. Listing it costs nothing and the hours you don't want to sell, you simply don't list.

If you coach without a facility: this is the exact problem I built it for. The lease is what kills most independent coaches, and you don't need one.

The honest state of it

It's running, in production, with real money moving through it. It is also not finished, because marketplaces are never finished — density is a permanent project, city by city.

I'm not going to tell you it's the biggest thing in baseball. I'll tell you it exists because I got tired of leaving voicemails, that I built it alone, and that everything I learned doing it is written down where anyone can take it.

That's the part I'm actually proud of.

I coach people through this.

Hip replacement coaching, from someone who has one. Whether your surgery is scheduled or ten years behind you, the goal is the same: get everything out of the new hip, and don't pay for it later.

Work with me

Get the comeback in your inbox

Occasional notes on the grind, the gear, and what keeps me on the mound. No spam.