LOG 066 · TECHNICAL · 2025-12-01
Shipped a paid AI product in under two weeks, then rebuilt it when the requirements grew
2 min read
Situation
Goodpods is a podcast discovery app. In December 2025 the client wanted to try a new paid product called Magic Marketing: a podcaster picks an episode, pays, the episode gets transcribed, and an LLM generates marketing copy like tweets from it, with a thumbs up/down feedback loop. It was an attempt at a new product marketed to existing Goodpods users, not a feature of the main app.
Task
I built the backend; the clients set the product direction and told us what to build. My job was to get a working paid MVP live fast, then keep evolving it as the requirements changed.
Action
I started with a 422-line spec covering the schema, the endpoints, and the payment flow, then built from it: Replicate for transcription, OpenAI for generating the marketing copy. The MVP was generating and storing content in under two weeks. A few decisions after the initial build mattered more than the build itself. I replaced the direct OpenAI integration with OpenRouter, a router that fronts many LLM providers. We had seen the ChatGPT API go down before, so I wanted redundancy, and it also let us use cheap open source models for queries that did not need frontier intelligence, alongside GPT-5.2 for the ones that did. QA showed generations sometimes failed depending on when we ran them, so I traced why and hardened the generation path with retries. The product ran on its own subdomain, ai.goodpods.com, because the client wanted users to create accounts separate from Goodpods while still trading on the Goodpods brand. I built a custom auth header scheme and the CORS setup for that split, and later the Stripe payment integration with webhooks and coupon support. The biggest call was the rewrite. v1 was a classic “build one to throw away”: it went out extremely fast, and when the client then asked for several much more complex features, the initial architecture did not allow for them. I rewrote it as Magic Marketing v2 in January, and in March deleted all of v1, roughly 2,600 lines of code and tests.
Result
The product shipped end to end: pick an episode, pay via Stripe, get AI-generated marketing copy. Commercially it did not take off; only a few people paid, under $100 in total. As engineering it did what a fast prototype should: it proved the idea quickly, and when the requirements outgrew it, I rebuilt on an architecture that could carry the new features instead of patching the throwaway version.