What a darkroom hobby teaches you about shipping AI products
Part three, and the last of the GlassMeter posts. The lessons from a hobby that followed me back to my day job.

This is the third and final post about GlassMeter, the film light meter I built to actually understand how metering works. The first was the why: a broken meter, a darkroom class, nine months of nights. The second was the afternoon an AI agent rewrote the whole app. This one is the part I didn't see coming, which is how much a hobby about hundred-year-old film chemistry taught me about my actual job, building AI products.
I build software for a living. I did not expect a light meter for film nerds to be where some of my clearest product lessons of the year came from. But the distance helped. It's easier to see how you work when the stakes are a roll of Tri-X instead of a launch. Here's what transferred.
Build for an audience of one, ruthlessly
The bar I set for GlassMeter was selfish and specific: would I carry it into the field instead of my real meter? Not "would people like it." Would I reach for it, on a real shoot, when getting it wrong meant a wasted sheet of film. For a long time the answer was no, and that no was the entire to-do list.
A single, demanding, real user surfaces truth faster than a fuzzy imagined million. The failure mode I see constantly in AI products is building for "users" in the abstract, an average person who doesn't exist, and shipping something that's plausible to everyone and indispensable to no one. One sharp user you actually know, even if that user is you, keeps the scope honest. They notice the thing that's almost right, which is the thing that matters.
Make the magic auditable
It is easy to fake a film look. Drop a preset, warm it up, add grain, call it Portra. I refused to do that. Every film stock in GlassMeter is built from the manufacturer's own published datasheet, the real characteristic curves and reciprocity tables, and I wrote the engineering notes so a stranger could check my work. When the app says Tri-X needs a stop more light at one second, that traces to a number Kodak printed.
The pull in AI is the exact opposite direction. The incentive is the dazzling demo, the answer that sounds authoritative and can't be inspected. But the products people actually come to trust are the ones that show their work: the citation, the eval, the honest "here's where this is shaky." In the GlassMeter post I included a whole section on where the app is still wrong, on purpose. Naming the limits is not a weakness in a tool people rely on. It is the thing that makes them able to rely on it.
Let the domain write the roadmap
I never sat down and brainstormed a feature list for GlassMeter. My darkroom syllabus wrote it for me. Darkroom I was 35mm and the fundamentals. Darkroom II brought the Zone System, push processing, and contrast filters. Darkroom III is large format. Each idea showed up in class on a Tuesday and in the app a week or two later, because I was living the workflow and feeling exactly where it hurt.
You cannot fully shortcut that with user interviews. There's a kind of product knowledge you only get by doing the work yourself, badly, until you feel the friction in your own hands. The PM version of "go shoot the film" is to actually live inside the workflow you're building for until the roadmap becomes obvious rather than invented. The best features I've ever shipped came from being annoyed personally, not from a research deck.
Treat your foundations as reversible
The second post in this series was about an agent rewriting the app in an afternoon. The product lesson underneath that story is bigger than one rewrite: the cost of changing your mind about a foundation has dropped through the floor.
That changes how you should make early decisions. For years the smart move was to agonize over the first architecture, because you'd be stuck with it. Now the smart move is often to build the fastest version that teaches you something, knowing you can re-pour the concrete later for cheap. Optimize the early phase for learning velocity, not for being right the first time. The thing you learn from the wrong version is what lets you specify the right one, including to an agent.
Ship when you reach for it, not when the calendar says
I didn't release GlassMeter on a date. I released it the week the honest answer to "do I reach for this first" finally flipped to yes. No readiness signal is more trustworthy, and none is more tempting to override with a roadmap commitment or a launch window.
Dogfooding isn't a QA step you do at the end. It's the spec. If the people who made the thing don't actually use the thing, no amount of polish fixes what that's telling you.
Restraint can be the product
GlassMeter collects nothing. No account, no analytics, no servers, no network calls at all. The App Store privacy label reads "Data Not Collected," because there is nothing to collect. That wasn't a sacrifice I made grudgingly. It's one of the best things about the app.
In a field whose default setting is to instrument and capture everything, deciding not to is increasingly the differentiator. Saying no to a feature, a data grab, a bit of cleverness, is a product decision with as much weight as any feature you add. Often more.
The real return

The artifact, a light meter used by a handful of film photographers, is not the return on nine months of nights. The return is judgment, and I spend it every single day at work.
The whole case for building to learn is simple. The small, deep version of a thing is the cheapest way I know to earn a real opinion about how something works, and opinions are the only thing that actually transfer. You can't borrow them from a blog post, including this one. You have to go build the thing and let it correct you.
So pick yours. The system you've been circling, half-understanding from the outside. Build the small version, badly, and let it fail at you until it hands you the map. It has never once let me down.
That wraps the GlassMeter series. If it sounds like your kind of thing, it's on TestFlight at glass-works.ai, and if you go build your own rad thing because of these posts, tell me what it taught you.


