The Locast years
Shipping a free over-the-air TV streaming service to millions of Americans, and watching it end in a courtroom.
Between 2018 and 2021, during my long run at Jaybird Group, I was one of two core engineers on Locast — a non-profit service that picked up free over-the-air broadcast television from rooftop antennas and streamed it to users in the same geographic market, for free. At its peak, a few million people watched their local ABC, CBS, NBC, and Fox through software we built.
The engineering was split cleanly. Craig owned the infrastructure, the backend API, and the physical hardware that pulled broadcast signals out of the air. I owned everything a viewer ever touched — every client-facing surface, on every platform, plus the client-side of the admin. A handful of other engineers joined over the life of the project, but the core was the two of us.
In September 2021 a federal court ruled against Locast’s reading of the non-profit exemption in U.S. copyright law. The service shut down the same day. One email, one deploy, one long silence.
It’s still the strangest project I’ve ever worked on.
The shape of the work
Locast was a continent-scale live streaming platform built by two engineers with a small cast of additional hires around the edges. Craig ran the pipes. I ran the glass. What I actually shipped was a family of client apps that each had to do roughly the same thing, on very different hardware:
- Web player — React, HLS.js, adaptive bitrate streaming, live guide, donations flow.
- iOS app — native Swift, AirPlay, Picture in Picture, CarPlay later.
- Android + Android TV — Kotlin, ExoPlayer, remote-first UX on TV.
- Apple TV & tvOS — Swift, focus engine navigation, TopShelf integration.
- Roku — BrightScript + SceneGraph. The platform nobody loves and everybody ships on.
- Client-side of the admin — React web admin for the Locast team to manage stations, markets, streams, donations, outages.
Every one of those had its own quirks, its own debugging rituals, its own review processes. Roku alone will teach you more about patience than any dev book ever written.
What made it hard
Live video has a specific kind of difficulty. It is unforgiving in ways a normal web app isn’t. When a stream stutters, you can’t A/B-test your way out. When an ad break misfires, a million devices miss the same ten seconds. When a station falls over on the ingest side, the incident is visible in every living room in the city within thirty seconds.
The part that taught me the most was the geographic matching — the client side of it. Locast was only legal within the broadcast market (“DMA”) of each station, which meant every client had to decide, reliably and quickly, whether the person watching was in the right place. GPS, IP geolocation, user-confirmed address — every layer was imperfect, and every imperfection was a legal risk. I spent weeks of my life on edge-case logic around one question, across five different platforms: is this household really in the New York DMA?
The second hard thing was the platform matrix. Two engineers, five active client platforms, one non-profit budget. Every feature had to ship roughly in sync across web, iOS, Android, Apple TV, Android TV, and Roku — because a free-TV audience does not read changelogs, and they notice when Roku gets a guide improvement that Apple TV doesn’t have yet. The discipline that came out of that period was the discipline of keeping six codebases breathing in step without a team manager.
The ending
In August 2021 a judge ruled that Locast’s interpretation of the non-profit clause wasn’t what Congress had meant. The service was enjoined. Craig and I spent a week wrapping it up responsibly — farewell email to a few million subscribers, sunset page across every client app, an orderly shutdown of every station’s ingest. Then we pushed deploy one last time, and the lights went out.
It was not a bug. It was not a business failure. It was not even a product miss. It was a court case. After three years of shipping every week, the thing stopped because the legal ground it stood on turned out to be softer than anyone thought.
What I took away from it
Three things, all of them quiet but durable:
- Technology is never the thing that kills a product. Locast had excellent software. It was killed by a statute interpretation.
- Millions of real users are their own reward. I have shipped things to much smaller audiences since. You feel the weight of a live audience differently than you feel a beta list.
- The platform matrix doesn’t have to break you. Most engineers won’t write production code for six very different platforms in their careers. Doing it for three years taught me the boring truth: they’re all the same problem in different accents.
Locast doesn’t exist any more, but the engineering lineage of working on it — cross-platform, live, continent-scale, small team — is exactly the shape of work Cybind is built to do. A smaller version of the same muscle, now pointed at different problems.