Skip to content
Dan Ochoa.All notes

YardPortal · post-mortem

Two cold-starts before either paid off

I built the web app, the mobile app, and started payments — before proving a single street would sign up. A post-mortem on YardPortal.

The idea

Lawn care as a subscription: auto-priced from your yard, fulfilled by a local contractor, and cheaper as your neighbors joined. The pitch was a flywheel — density on a street lowers cost, lower cost pulls in more neighbors.

What I actually built first

In about two weeks I built a web app and a separate React Native mobile app, stood up auth and data on Supabase, and got as far as wiring in Stripe. The git history is honest about where it ended: the last commits are "Broken Supabase" and "stripe-start." I had built two complete front doors and started charging money before I had evidence that anyone would walk through either one.

The reasoning error

The neighbor discount only paid off once a whole street signed up — so there were two cold-starts to clear, homeowners and contractors, before either side got the thing that was supposed to make the model work. Worse, the discount that was meant to drive demand didn't exist until demand was already dense, so the flywheel's first turn required the outcome it was supposed to produce. I had treated a two-sided, density-dependent marketplace as if it were a normal app — build the product, then get users — when the hard part was never the product.

The cheaper test I skipped

The smallest experiment that would have exposed this costs almost no code: pick one street, hand-price a handful of yards myself, line up a single contractor, and see whether neighbors actually convert when a real discount is on the table. If a concierge, manual version of one block doesn't tip, no amount of web-plus-mobile-plus-Stripe makes the flywheel spin. I wrote the software instead of running the block.

What it changed

It's not a coincidence that the products I've shipped since — MassOutage, BlissGarden, LurePassion — are data aggregators that need no second side to cold-start. One of them is useful to the first person who visits, on day one, with nobody else on the platform. YardPortal taught me to ask, before writing anything, whether the thing only works once two groups both show up — and if so, to test that the cheap way first.

All notes