NanoPhotoStudio: a postmortem
December 2, 2025 to June 2, 2026. Autopsy written September 22, 2026.
What it was
An AI portrait studio. You picked a style, uploaded one selfie, and got a studio-quality portrait in a few minutes: cinematic, vintage, monochrome, editorial. Built solo, as a practice project wearing production clothes.
The numbers
Commits per month. The curve of a project dying is exactly as smooth as you would expect.
How it died
I built for 20 weeks before I tried to sell anything. Edge rendering on Cloudflare Workers, async generation workflows, a payment abstraction, an admin dashboard, a style catalog, 4K upscaling, magic-link auth. Every piece of it worked. None of it mattered, because nobody came.
The market never had a gap. HeadshotPro had 196,000 customers. Aragon claimed about 2 million users. BetterPic raised $2.5M. Google's Nano Banana generates a decent portrait from one selfie, free. My $1-per-portrait price read as a trial price, because that is what this market taught people one dollar means.
In April I finally built the thing I should have built first: a weekly scoreboard. It said 27 visitors a week, 0 clicks on the main call to action, 0 paid orders. I had redesigned pricing three times for that audience. The data was a verdict, and I kept shipping CSS.
The sharpest embarrassment: in March I designed a $10/day Meta ads experiment. Three angles, six creatives, a complete production checklist, an ROAS spreadsheet. I launched none of it. Spending money felt like risk. Redesigning a navigation drawer felt like progress. That sentence is the whole disease.
What I learned
- Distribution is not a phase that comes after building. It is the survival condition. 20 weeks of building with 0 weeks of distribution produced exactly what it should have.
- If nobody visits, conversion optimization is astrology.
- A practice project still sends the invoice. I did learn the stack, and the engineering discipline carried into my current work. But "practice" is also what I hid behind when the scoreboard said stop.
- Ship the scariest task first. Building was my comfort zone, so building is all I did.
- Death deserves a document. This page is that document.
What survived
A production-grade SaaS template (Next.js on Vercel, Cloudflare Workers, D1, R2, Workflows, full test suites, CI). The weekly scoreboard SQL, which now runs in another project. And a standing rule for my next venture: the first 10 hours go to distribution, not to architecture.