This post is the honest version of the launch story. Not the marketing version. The marketing version is the one I wrote for Product Hunt, short, punchy, leads with the product. This is the long one with the actual numbers, the things that broke, and the calls I'd make differently next time.
The headline: I shipped a paid local-first AI workspace called Projelli on 5 to 10 hours a week, around a full-time job at a health-tech company. The product itself took 18 months to build. The commercial launch took 8 weeks. The split is the whole point of this post, most indie tools die in that 8-week gap, and almost nobody writes honestly about it.
By month 16 of building Projelli, I had a 25,000-line TypeScript codebase, 64 React components, three streaming AI providers wired up, version history, an audit log, undo/redo, wiki-links, backlinks, split panes, an entire workflow engine, and 12 founder-focused templates. The app worked. I was using it daily for my own side projects.
I had also managed to ship exactly nothing publicly except a single Windows v1.0.0 release that had been live since February with 5 .exe and 2 .msi downloads. Five downloads. After 16 months.
The problem wasn't the product. The product was 95% done. The problem was the 5% of work that turns "an app exists" into "people pay money for it." Specifically:
#)Every single one of those is a small thing. None of them is hard. Together they were a wall I'd been staring at for 12 months without crossing.
I'd been treating the launch as one big amorphous "ship it" task. The breakthrough was breaking it into a literal 8-week plan with 60+ specific tickets, and treating Claude (the AI, not me) as my de facto business operator. I have Claude set up as a long-running session that knows the project, has read the code, has read my notes, and makes operational decisions on my behalf. I act as a board member: I ratify strategy, approve spend ceilings, and decide anything that touches my identity or my employer. Everything else, Claude calls.
The 8-week plan looked like this:
| Week | Goal |
|---|---|
| 1 | Move project to server, organize, commit reality, set up legal docs and support email |
| 2 | Cross-platform CI via GitHub Actions. Procure code signing certs. Apply to Apple Developer Program. |
| 3 | macOS notarization. Build the 3 missing templates to honestly hit "15+." Update homepage. |
| 4 | LemonSqueezy account. License validation Bun service on the home server. In-app activation flow. |
| 5 | Polish: demo video, screenshots, first-run onboarding, soft launch on X. |
| 6 | HARD LAUNCH: Product Hunt + Show HN simultaneously. |
| 7 | Distribution waterfall: AlternativeTo, IndieHackers, Reddit, newsletter outreach. |
| 8 | Iterate: conversion analysis, A/B headline, follow up with launch buyers, plan v1.1. |
Most of those tickets are the kind of thing that takes 30 minutes to 4 hours. None of them required new technical knowledge. They required someone to actually do them in order, on a deadline, without losing focus.
For 12 months I'd been quietly thinking of legal docs, payment integration, and code signing as "the boring part", the thing I'd do "later" when I felt motivated. The reframe was admitting that those aren't the boring part. They're the part that converts a hobby into a business. They're literally the work that makes the previous 18 months matter.
Once I started treating a 30-minute task to set up a Brevo sender domain with the same seriousness as a 30-minute coding task, the wall came down faster than I expected.
This is the thing I'd most recommend to other solo founders. I'm not talking about "use Claude to write some code." I'm talking about giving Claude a persistent project context (a memory file, a business plan, a backlog) and treating it as a co-founder who can make calls on your behalf.
The specific structure I use:
PROJELLI_BUSINESS_PLAN.md file in the repo root that documents every CEO-level decision (audience, pricing, channel, tech, legal) with the reasoning. Claude reads this at the start of every session.BACKLOG.md file with week-by-week tickets and statuses, updated as work progresses.~/.claude/projects/-home-jameson/memory/project_projelli.md that Claude automatically loads in every session.Once that structure exists, Claude can pick up where the last session left off, make decisions consistent with the strategy, and execute multi-step operational work without me re-explaining context every time. It's the closest thing to having a co-founder I've ever had on a side project.
I used to dread Tauri release builds. They required me to physically be in front of the Windows machine, run the build, sign the installer, upload it to GitHub Releases, and pray. Setting up the GitHub Actions cross-platform release workflow was a one-time investment of about 6 hours. Since then, every git tag push triggers a clean Win + Mac + Linux build that ends up signed and on the Releases page automatically. I haven't touched the Windows machine for a release since.
The most painful part was the Windows code signing. Microsoft renamed Azure Trusted Signing to Azure Artifact Signing mid-process, the identity validation took 3 days, the cert profile setup needed a service principal in Entra ID with the right RBAC role, and the Tauri build had to invoke AzureSignTool from a wrapper .cmd script because of how environment variables expand on Windows runners. Everything that could fail did fail at least once.
But once it works, it works forever. That's the right shape for infrastructure investments.
I went in assuming I'd use Stripe + Quaderno + Postmark + a custom license stack. Then I read four blog posts from indie founders who'd done that exact build and burned out maintaining it.
LemonSqueezy charges ~5% per sale, which is higher than Stripe's 2.9% + $0.30. In exchange they handle:
If you priced out the engineering hours to build all of that yourself, the 5% fee is laughably cheap. I made the call in week 4 and never regretted it.
About a week before launch, I wrote a single Markdown file comparing Projelli to Notion AI, Obsidian, ChatGPT, Claude.ai, Reflect, Tana, Logseq, Mem.ai, and Cursor. Each comparison had a one-paragraph "vs X" reply that I could copy and paste into Product Hunt or Hacker News comments without writing it from scratch.
On launch day this was the single most valuable hour of preparation I did. Every "how is this different from X?" comment got a thoughtful, coherent answer within 5 minutes because the answer was already written. I didn't have to think under pressure.
I started capturing emails on the homepage about 4 weeks before launch. By launch day I had a list in the tens, not the hundreds. The lesson is brutal: building an email list is a 3-6 month effort, not a 4-week effort. If I were doing this over, the email signup form would have gone live the day I committed to launching, not the week before launch.
I had a clean idea ("indie founder local-first AI workspace, BYOK, one-time pricing") and zero audience to tell it to. My X account had ~100 followers, none of whom were indie founders. My LinkedIn was professional design content with no Projelli mentions.
The fix is simple but it requires biting the bullet on something I'd been avoiding: tweeting publicly about the build, week by week, for the entire 8-week ramp. Cringy at first. Valuable by week 3. By week 6 it was doing more for reach than any single marketing doc I'd written. I'm starting that arc now, after launch, and it's already paying off, but it would have been worth 10x more before.
One of my side projects is called "Healthful", an AI design copilot for healthcare designers. I'd been mentioning it in passing in the Projelli bio block. On launch day, three different journalists asked me about Healthful instead of Projelli, because Healthful sounded more "venture-shaped" to them. Lesson: be ruthless about what you put in your founder bio. Every side project you name competes for attention with the thing you're actually launching.
I'd assumed 60% of paying buyers would pick Pro ($49) and 30% would pick Lifetime ($99). The actual launch-week split was [TBD, fill in after launch]. That suggests the value perception of "lifetime updates" is either much stronger or much weaker than I assumed. I'll know more after a month of real data.
I shipped v1.0.0 without code signing because I wanted SOMETHING out the door. The "Microsoft Defender SmartScreen prevented an unrecognized app from starting" warning that every Windows install showed for the first 8 months almost certainly cost me the entire pre-launch organic adoption window. Code signing should have been week 1, not week 2.
This section will be updated with actual launch-week numbers once they're in. The placeholders are intentional, I'm writing this post in the days before launch, and I want to update it with reality, not projections.
| Metric | Result |
|---|---|
| Time to ship the commercial layer | 8 weeks at 5-10 hrs/week = ~50-70 total hours |
| Cash spent (one-time) | ~$430 (Apple Developer $99, Azure Trusted Signing setup, domain, misc) |
| Cash spent (recurring annual) | ~$220/yr (Apple Dev $99, Azure Trusted Signing ~$120) |
| Lines of code added during the 8 weeks | ~__ (most of the work was infrastructure, not features) |
| Product Hunt rank | __ |
| Show HN points | __ |
| Email signups (launch week) | __ |
| Free downloads (launch week) | __ |
| Paying customers (launch week) | __ |
| Founder's Launch tier sales (of 100) | __ |
| Total revenue (launch week) | $__ |
If you're a developer-designer with a 95%-built product sitting on your hard drive, and you've been telling yourself you'll launch "soon" for over a year, yes, you should. The 5% gap is smaller than you think, and the 8-week structure keeps you honest. The Claude-as-operator pattern saves real time if you invest in the context handoff.
If you're at the start of building the product itself, this isn't the post you need yet. Come back when the product works and you're staring at the commercial wall.
And if Projelli looks useful to you, there's a free tier, a 14-day refund, and the Founder's Launch $29 lifetime is live until I sell 100 of them.
Get Projelli, free or Founder's Launch ($29 lifetime)Found this useful? Share on X · Email me feedback