Kleo Made \$62K/mo: Vibe-Coded with Claude Code (Case Study)

September 29, 2026 · 1149 words

FieldDetail
What it isAI LinkedIn content platform: ideas, writing in your voice, post design, scheduling, analytics
BuilderDeveloper (10+ years coding, ex-senior engineer), plus two co-founders with large LinkedIn audiences
AI toolClaude Code for coding; Claude inside the product
StackNext.js, TypeScript, Vercel, Neon Postgres, Clerk, Inngest, Polar, Deepgram, PostHog, Langfuse, shadcn/ui
Time to launchAbout 4 weeks for the v2 rebuild
Revenue$62K MRR three months after launch (Dec 2025). Self-reported
SourceIndie Hackers interview, kleo.so

Kleo LinkedIn AI revenue illustration: a laptop showing a drafted social post beside a rising monthly revenue chart and a stack of coins marking $62K MRR

Kleo went from $0 to $62,000 in monthly recurring revenue (MRR: subscription money that renews each month) in about three months. Cameron Trew, the engineer on the team, rebuilt the product from scratch in four weeks using Claude Code. He shared the numbers in an Indie Hackers interview published December 31, 2025. The figures are self-reported.

The one point of this case study: AI made the rebuild fast, but distribution sold it before it was finished.

The problem: posting on LinkedIn every week is hard

LinkedIn creators and professionals want to post often and still sound like themselves. That takes ideas, writing, design and scheduling, every single week.

Kleo bundles those jobs. The homepage says it helps you "ideate, write, design, and publish posts". Features include a voice memory that learns how you write, a scheduler, analytics and a library of 400+ templates.

The first version was different. Kleo 1.0 was a free Chrome extension that scraped LinkedIn data to show trending posts in your niche. It reached 60,000 users. Then LinkedIn sent a cease-and-desist letter, a formal legal demand to stop. That forced a full rebuild into a paid tool that doesn't depend on scraping.

How it was built

Cameron has coded for more than 10 years. He worked as a senior engineer at companies including Elastic Path and Vonage. So this is not a beginner story. It's an experienced developer moving much faster with AI.

He says he only started using AI for coding in the previous 12 months. His verdict: "AI code editors have been my biggest advantage."

The v2 build took about four weeks and started from the Vercel AI Chatbot template, a free starter project. The stack he listed:

  • Next.js + TypeScript on Vercel (frontend, backend and hosting)
  • Neon (a hosted Postgres database)
  • Clerk (login and user accounts)
  • Inngest (background jobs, such as scheduled posts)
  • Claude and Claude Vision (the AI that writes and reads images)
  • Deepgram (voice to text), Perplexity (web research)
  • Polar (payments), PostHog (analytics), Langfuse (AI monitoring), Loops (email), shadcn/ui (UI components)

The pattern: almost nothing is custom infrastructure. Each hard problem is rented from a service with a free or cheap tier. Claude Code then glues them together.

How it makes money

Kleo sells subscriptions through Polar, a payments platform. Current prices on the homepage:

  • Standard: $99 per month
  • Annual: $999 per year
  • Extra profiles: +$49 per month each (for teams or ghostwriting clients)

Monthly plans come with a 7-day money-back guarantee. Annual plans have 30 days.

The price climbed during launch. Beta wave one offered 500 spots at $59 a month with a lifetime discount. They sold out in four days. Wave two offered 500 more at $79 and sold out in nine days. Then the standard price became $99.

That ladder does two jobs. Early buyers get a reward for trusting an unfinished product. Later buyers see a price that keeps rising, which pushes them to decide.

The homepage now claims "1,354 personal brands" use Kleo. The team also runs a second product, Mentions, which Cameron said made $20,000 MRR at the time.

First users: two big audiences

How Kleo reached $62K MRR: co-founders' LinkedIn audiences feed a waitlist, webinars and masterclasses, then laddered beta spots convert into paid subscriptions

This is the part most solo builders can't copy directly. Kleo's co-founders Jake Ward and Lara Acosta had over 180,000 and 300,000 LinkedIn followers at the time of the interview. The homepage now lists 575K+ combined.

The launch ran on that reach:

  • Pre-launch waitlist built from their followers.
  • Three pre-launch webinars run by Lara, each selling $5,000+ of subscriptions.
  • Masterclasses co-hosted with Jake, demoing the product live.
  • LinkedIn posts showing real results from using Kleo.
  • Email campaigns featuring customer wins.

There were no paid ads and no Product Hunt launch.

What to copy

  • Find distribution before you build. If you have no audience, partner with someone who does.
  • Build a tool you'll use daily. The team used Kleo for their own posts.
  • Ladder your beta price. Limited spots at rising prices create urgency without fake scarcity.
  • Rent your infrastructure. Auth, payments, jobs and email are all solved services.
  • Watch platform rules. A product built on scraping another platform can be shut down by one letter.

If you vibe-code this

An AI content SaaS stores users' drafts, voice data and billing status. These checks apply to this type of app:

  1. Verify payment webhooks. Check the signature before trusting any "subscription created" event. See webhook security (Stripe example, same idea).
  2. Check ownership on every route. Logged in is not enough; the draft must belong to this user. See IDOR in API routes.
  3. Don't rely on middleware alone for auth. See middleware auth bypass.
  4. Treat user text sent to the AI as untrusted. See prompt injection.
  5. Rate-limit AI endpoints. Every generation costs you money. See API rate limiting.

Verifying a Polar webhook in a Next.js route handler:

import { validateEvent, WebhookVerificationError } from "@polar-sh/sdk/webhooks";

export async function POST(req: Request) {
  const body = await req.text();
  const headers = Object.fromEntries(req.headers);
  try {
    const event = validateEvent(body, headers, process.env.POLAR_WEBHOOK_SECRET ?? "");
    // Only now trust event.type and event.data
  } catch (err) {
    if (err instanceof WebhookVerificationError) {
      return new Response("Invalid signature", { status: 403 });
    }
    throw err;
  }
  return new Response("ok");
}

Building an AI SaaS with paid plans? Email [email protected] for a security audit before your beta opens.

Key takeaway

Claude Code let one experienced engineer rebuild Kleo in four weeks. But $62K MRR came from two big audiences, a laddered beta price and live webinars. Speed gets you a product; distribution gets you paid.

More case studies: Vibe-coded apps making money · Security guide: Vibe coding security

Sources