I built a premium course and sold zero copies

Share
I built a premium course and sold zero copies

Since building in public is about sharing both the wins and losses, here's a loss:

TL;DR: I spent months building a polished (if I may say so) course on agentic engineering and launched it to my mailing list and social channels. Not a single person bought it. The core problem: my audience was far too small for a premium launch. The course is now free on YouTube. Full story and learnings below.

After leaving Google last October, I started more seriously experimenting with agentic coding. One of my first experiments was an autonomous AI pipeline (built with Python, Pydantic AI, and Gemini API) that generates startup ideas. I had a hypothesis that distilling business signals and market facts from news (~1000 articles per day) would provide high signal for friction points, meta-trends, and the occasional rabbit hole, which would result in compelling and varied startup ideas. And it worked surprisingly well!

I bought a domain and hosted (still am!) the daily newsletter on a Ghost CMS site, published directly from my pipeline via the API. I also wrote an architecture breakdown post, which got picked up by the TLDR Data newsletter.

That and my LinkedIn posts (I'm fairly well connected there from my 13 years at Google and well over a decade at Silicon Valley startups before that) generated tons of traffic, before it eventually plateaued. I misinterpreted the strong interest in my eng breakdown as signal that there's a market for a course on that topic. That was my first (and probably the main) mistake.

So I proceeded to build the course. I decided to primarily focus the course on teaching agentic engineering and use the pipeline as a perfect example to touch on key topics. How to build iteratively with Claude Code or other AI coding tools, how to verify the results, refactor and debug as needed, improve performance using batching and parallel processing, how to use embeddings and vector similarity to ensure we don't publish the same ideas over and over, how to use synthetic data to improve the ranking functions, how to generate a text, images, and a podcast-style audio-overview, and more.

In a traditional, tutorial-like course, the results are generally deterministic, so you follow along by typing in the same code. But that wouldn't work in my course, due to the non-deterministic nature of agentic engineering. Students would build their own pipeline alongside me, and their results would be different from mine. I thought this might actually be a feature, not a bug - after all, we had to adapt how we teach in the age of AI somehow.

While I wanted to teach how to build a pipeline like mine, I didn't want to distract students with unnecessary infrastructure and production concerns. So I came up with a slightly simplified stack: SQLite3 instead of PostgreSQL, ChromaDB instead of pgvector, and local files instead of publishing to Ghost. Students could either tackle the last mile themselves (if desired), or I might publish a follow-up course that covers the productionization side. To make sure the simplified stack worked as expected, I did a full dry run of re-building my pipeline. I took lots of notes, figured out some rough edges to watch out for, and turned it into a proper script and curriculum.

In parallel to this, I had to figure out the business side of marketing and selling the course. I created a "lead magnet" that would hopefully drive conversions to my course via an email funnel. A nice blueprint PDF that outlined the tech stack and included the starter prompts and a CLAUDE.md file. Enough to get started building their first few pipeline steps and decide if they want to go deeper and buy the course - and hopefully useful on its own as well. I created a squeeze page on MailerLite, an email funnel with 6 carefully drafted emails (sent over a 3 week period), and started marketing the blueprint to my Ghost newsletter, LinkedIn, and here on X. About 20 people downloaded it right away, and I figured the number would grow significantly, as I would continue to market the blueprint on social media and here on GammaVibe before the course launch.

Somewhere around this time, I also made the GammaVibe daily startup idea newsletter free (previously, free users were able to read the high level idea, but only paid users - $10 regular or $5 founder level - had access to the full post, including the business model with go-to-market strategy and revenue models, the proposed tech stack, and more). The subscriber count had plateaued anyway, and I figured the newsletter might serve better as a top-of-funnel to drive conversions for the course. I also added an optional Patreon in case anyone felt like supporting the site, but nobody ended up signing up for a membership yet. But this wasn't something I had banked on, anyway.

I recorded the full course over a 2 week period. I was happy with the outcome - both the recordings and the resulting pipeline code. Editing was a massive effort that took me several months. That topic might warrant a dedicated post at some point, because I made a few painful mistakes (recording & editing software selection, technical issues, etc.), but was able to correct all of them. In the end, I had about 7 hours of reasonably polished video content.

I then set up the course on Teachable, after narrowing it down to that platform because they act as a Merchant of Record, which greatly simplifies international VAT concerns. Not cheap ($89/mo), but based on my research into comparable professional-level courses, I figured I should be able to sell the course at a high enough price point ($497 regular price, $297 founder price) that just selling one course per month would easily pay for those fees (and all the other fees I was still incurring for the pipeline itself - News API subscription, Ghost hosting fee, VPS, AI API costs, MailerLite, etc.). Note that Teachable is a Learning Management System (like Thinkific or Podia), not a Course Marketplace (like Udemy or Coursera). So I would have full control over my pricing and brand, but would be responsible for my own marketing in return.

As a first-time course developer, Teachable was fairly friendly as a platform. Still, it took a lot of time to not only get the course videos uploaded and populate the curriculum with module descriptions, diagrams, and quizzes, but also set up the various pages (sales page, thank you page, etc.), configure pricing plans, hook up payments, integrate with MailerLite (so I could send students a thank you email and reach out for feedback later), create discount codes for early buyers, and other logistics.

In addition to the course, I decided to also offer an optional one-on-one coaching package. I've always enjoyed coaching, and had even set up a dedicated coaching & advisory business (Froehlich Nexus) after leaving Google. I had sidelined this in favor of pursuing my own entrepreneurial ideas, but it was well within my wheelhouse. I figured the coaching upsell could either revolve directly around course topics, or around the client's own business and tech.

I launched the course in early June. My lead magnet mailing list had only grown to 40 members by then, which was a lot smaller than I had hoped for. But now I was committed. And I figured if I don't sell a lot of copies now, this could be a long game. I'd continue growing my audience and building trust on YouTube, X, LinkedIn, and here on GammaVibe. And some of those users would eventually convert to course buyers. At least, that was the theory...

Fast forward 6 weeks: Not a single person purchased the course. The only people that looked at it were some friends and former coworkers whom I had sent a free copy. The 40% discounted founder price (for the first few weeks) wasn't enough of an incentive to drive conversions from my mailing list. Ultimately, 40 subscribers was just not enough. I simply didn't have the reach yet to make this work.

So now I was at a crossroads, with at least 3 possible paths forward:

  1. I could simply keep the course up on Teachable, continue to slowly grow my audience, and hopefully sell some copies eventually. But during this period, I would continue to pay $89/mo for Teachable. So there was a real chance I would just dig myself further into the hole.
  2. I could move the course to a marketplace like Udemy and sell it there for a fraction of the cost, to perhaps recover at least some of my investment. But that would hurt my brand by putting it at the same level as all the mass produced, low effort $15 courses that dominate that platform. And without an existing audience there, it likely still wouldn't generate much revenue.
  3. I could cut my losses and make the course freely available on YouTube.

If I had generated at least one sale, I might have gone with option 1. But that $0 number told a pretty clear story. I dismissed option 2 because it wasn't aligned with the brand I was trying to build. I might reconsider a course marketplace for a simpler, cheaper course in the future (after all, producing the course was quite fun), but not this one.

So I went with option 3 and released "The Agentic Pipeline" course for free on YouTube. I figured this way, people would at least get some value out of it, and I might gain some YouTube engagement and possibly new subscribers.

There was also another reason for pulling the plug so soon: It looked like the course would go stale much sooner than I had expected. I had of course recognized and accepted that risk from the start. To mitigate it, I had deliberately tried to focus as much as possible on teaching the underlying principles and practices, rather than specific tools and technical considerations. I had used Claude Code, but always anticipated that students might use different coding assistants. So I never set out to create a Claude Code tutorial (and intentionally didn't go into topics like Skills or Subagents), but rather an Agentic Coding course that builds comfort with this new way of coding, from the ground up. Even my programming language (Python) was a soft choice. The course should work just fine with JavaScript, Rust, or other languages. Students would need to review their results and iterate accordingly anyway.

And I believe that I largely succeeded with my attempt. Sure, the tools have evolved a bit since I recorded this back in February. The Claude Code UX (both in the terminal and the VSCode extension) has continued to improve, and it's now more likely to spawn subagents for specific tasks, each operating transparently in their own Git worktree. On the model front, Opus 4.8 replaced 4.6, and now we have Fable 5 for more complex needs. But the gist of how we interact with these tools has remained the same.

But in the past 6 months, there's also been a huge cultural shift around AI assisted development. When I first conceived of the course, there was a much bigger separation between "Vibe Coding" and "Agentic Engineering" (though the latter term was only just emerging). Like the name implies, "Vibe Coding" meant operating purely on vibes, often with no understanding of the generated code. It was a very empowering, but not very serious, way for non-engineers to create prototypes or just have some fun. By contrast, "Agentic Engineering" implied being intentional about the architecture and carefully reviewing the code. It felt like a much more black and white difference, and I saw myself more on the Agentic Engineering side (I later recognized it was a more fluid spectrum, and tried to articulate my perspective in this video).

Now, at least if you follow the indie hacking / build in public community on X and other social media channels, that difference has largely eroded. Partially because we've all become more comfortable with the new way of coding, but also because the tools and AI models have continued to improve rapidly. Back in 2024 / early 2025, we were all impressed when AI could build a simple web app, and nobody thought this technology is ready for prime time. Now, it's almost unthinkable that we'd ever go back to manual coding. I've professionally coded for almost 30 years (on and off - for the past decade or so, I mostly worked as a manager, with occasional coding projects in my spare time) - and for over 40 years if I go all the way back to when I taught myself BASIC on my C64. And while I enjoyed it and consider myself at least a decent programmer, there's no question that Claude Code writes better code than myself at this stage - and in a small fraction of the time.

Long story short: AI assisted coding has become the norm. Most developers have at least experimented with it. And the culture has shifted strongly towards trusting the AI output and no longer doing in-depth code reviews - at least in the indie hacking community (though opinions still diverge on this). In the course, I firmly erred on the side of reviewing everything - and I did in fact catch several bugs that way. Still, my sense is that this approach might not land as well now, with how things have evolved. I think this is likely the aspect of the course that will age the fastest. So I consider it another strong argument to make the course free now, while it still resonates with folks.

Here's what I'd do differently next time:

  • The strong response to my architecture breakdown told me people enjoyed reading about the pipeline. It didn't tell me whether anyone would pay to learn how to build one. I treated one as evidence for the other, and it wasn't.
  • I should have taken preorders before recording anything. A refundable founder preorder through a merchant-of-record checkout (no monthly fee, handles VAT) would have surfaced the demand problem months earlier, before I spent the production time. Zero preorders in week one would have taught me the same lesson as zero sales in month five.
  • When I decided to build the course, my lead magnet list didn't exist yet. I assumed it would grow into a real audience during the months of production, and it topped out at 40. I did run the numbers at launch, and they were clearly bad, but by then I was committed. The fix would have been at the start: set a minimum list size as a precondition for recording, and let a missed threshold delay or kill the project.
  • My fallback plan was the long game: leave the course up, keep growing my audience, and let sales trickle in over the next year or two. That plan depended on the material staying relevant for that long, and it became clear it won't. Recording took two weeks, editing took several months, and parts of the field had already shifted by launch day. A topic that moves this fast doesn't leave room for a slow production schedule or a slow launch.
  • At my current reach, this course was never going to make meaningful money directly. Its realistic job was to build credibility and grow my audience, with revenue coming later from whatever I offer that larger audience. I had the order of operations wrong.

So, where do I go from here? First off, there are no regrets. Building and launching the course was a good learning experience. Most of it was enjoyable, and the learnings should carry over to future endeavors. I've spent enough time working at Silicon Valley startups to internalize that it usually takes many failures to eventually land a success. That's not to say that I didn't feel sad and disappointed for a few weeks. But I've gotten over this, and already refocused my energies on new projects.

My main focus for the past month or two has been on my indie apps under the Sunset Mesa Software brand. I already talked about my first app (Rewire Text) here and in my breakdown on YouTube, so check those out if you're curious. I even made my first sales since then! I firmly believe that there should be more single-purchase desktop apps with BYOK and local AI support, and I'm already planning the next one.

I'm also spending more effort growing my audience, which I've realized is critical for anything I launch. As excited as I still am about AI, there's no doubt that it's drastically lowered the barrier to entry, which means that marketing and distribution have become much harder than in the past. So I plan to invest by stepping up my blogging efforts here on GammaVibe, as well as engaging more on X and YouTube. YouTube in particular is very enjoyable (if time consuming). So expect to see more videos from me.

I also have some other project ideas. I firmly believe in a portfolio approach for indie hackers, and for me, a good mix of desktop apps, SaaS apps (maybe even using ideas from my daily startup idea pipeline...), and fun experiments that I can talk about on YouTube and here, feel like the right approach. So stay tuned!

If you're curious what all this effort produced, the full course is free on YouTube:

Or open the full course on YouTube. If it's useful to you, a subscribe over there really helps.

If you found this post through Hacker News or social media: I write these build-in-public updates semi-regularly right here on GammaVibe. Subscribe below, and pick "Lab Updates" if you want just these posts without the daily startup ideas.

Everything else I make, including my desktop apps, lives at mirkof.com.