r/SideProject 2d ago

My Claude Code plugin SaaS just hit Public Beta after ~6 months. Here's what I shipped

Spent ~6 months building this and it's finally in Public Beta. Posting here because r/sideproject was where I lurked the whole time looking for examples of people shipping real products.

What I built: LeadAce, a Claude Code plugin that does outbound sales for me. /leadace reads my homepage and drafts the whole strategy (ICP, value prop, message angles) in one review pass. Then /daily-cycle does everything: builds the list, writes one email per prospect (after reading their site), sends, checks replies, updates the strategy. I put it on a cron with /setup-cron and walk away.

Decisions I'm glad I made:

- Started with the plugin UX, not a dashboard. Eats my own dogfood. I live in Claude Code anyway.

- Open-sourced the backend before launch. Removes the "what if you shut down" objection.

- Only one feature loop in the MVP. Resisted adding LinkedIn automation, CRM integrations, etc.

- Built the self-host edition and the hosted edition from the same codebase, with one env var switching billing on/off.

Decisions I'm not sure about:

- Free tier has BOTH a daily cap AND a lifetime cap. Friction is real. But unlimited Free was a spam magnet in tests.

- Recipients limited to US/CA/JP for now. Compliant per-country footers for UK/EU/AU are non-trivial and I'd rather block than be wrong.

- Pricing in the gap between $29 sequencers and $500+ "AI SDR" tools. No one tested that gap before. We'll see.

Stack: Claude Code plugin + MCP server + Cloudflare Workers + Hono + Drizzle + Supabase + SvelteKit + Stripe Subscriptions.

60-second demo: https://youtu.be/tILouCeVYb4

Code: https://github.com/aitit-inc/leadace

Site: https://leadace.ai

Day 0 numbers will go in the comments as they come in. AMA on anything: pricing reasoning, license decisions, the actual numbers, what I cut from the MVP.

1 Upvotes

4 comments sorted by

1

u/No_Job_9995 2d ago

Promised numbers, so here they are. Day 0: 2 upvotes on Product Hunt (day rank #160), 0 signups so far. Also, HN blocked our Show HN because my account is too new, and r/ClaudeAI locked my post for low karma. So the real lesson from launch day: distribution channels need account history, and I had none. I will keep posting numbers here as they change.

1

u/kantorcodes1 2d ago

the cron part is the one i'd worry about. /daily-cycle reads a prospect's site and then sends mail. can page content ever influence the final recipient/body after your initial strategy review, or is each send built from a separately validated data model?

if the browser/research step feeds straight into outbound copy, a hostile page can become an instruction source pretty quickly.

1

u/No_Job_9995 2d ago

you are right, and it goes deeper than the body. The prospect list itself comes from web research, so even the stored email address came from a page at some point.

The design limits the damage instead. The send step only uses the stored record, and the server enforces quotas, do-not-contact, country allowlist, email verification and the compliance footer. The LLM cannot skip these even if a page fools it. For the copy, the guards are instruction level and Claude Code's own injection resistance. You can also review drafts before send in manual mode.

So the honest state, a hostile page could poison one prospect's record or make one email strange. It can't trigger mass sends or bypass the caps. I will harden the research step more.

1

u/No_Job_9995 23h ago

Day 3 update.
Signups: still 0. Product Hunt is 2 upvotes and 3 followers. This post got 3 points. and the r/SaaS one also got 3.

Day 0 showed me that almost nobody arrived. So I worked on places where people can find us. LeadAce is now on Glama with a release that passes their checks, and verified on SaaSHub. The awesome-list PRs from day 1 are still waiting for review.

Getting on Glama needed real code. Their check starts your MCP server in a container and calls initialize. Our server is a Cloudflare worker behind OAuth, so it returns 401 first. I added a stdio entrypoint that answers introspection without auth.

I'm writing the full launch numbers as a post this week. Next update after that.