How VantageKit Was Vibe-Coded with Claude Code: Stack, Pricing and First Users

October 7, 2026 · 1248 words

QuestionAnswer
What it isA lightweight data room for pitch decks, proposals and due-diligence docs, with Google Docs live sync, page-level analytics and AI Q&A
BuilderDeveloper (long-time PM getting back into coding, solo)
AI toolClaude Code
StackNot disclosed (integrates Google Docs, Slides and Sheets; LLM layer for Q&A)
Time to launchJust under two months, part-time (first commit Dec 26)
RevenueNot disclosed. 20+ teams, 4 paying, at launch (self-reported, Mar 2026). Paid plans from $19/user/mo (pricing page)
SourceShow HN, Mar 4, 2026

Claude Code SaaS case study illustration: a secure data room with pitch deck and due-diligence documents behind a shield, page analytics bars and a chat bubble for AI questions

VantageKit had 4 paying teams out of 20+ when its founder posted it on Show HN. He built it solo and part-time in just under two months. His first commit was on December 26. He says he moved that fast by leaning heavily on Claude Code.

The revenue figure isn't public. But four paying teams in the first two months is a real signal for a B2B tool. So is the fact that one team was already running a large live deal on it.

The problem: the typo after you hit send

Founders and sales teams share pitch decks, proposals and due-diligence documents all the time. Due diligence is the document review a buyer or investor does before a deal. The founder, who posts on HN as xheggs, described two bad options in his Show HN post.

You can email a PDF, and then you have no idea who read it. Or you use a data room, a secure website for sharing deal documents. But data rooms treat files as static uploads. Spot a typo five minutes after sending? You export a new PDF, log in, delete the old file and upload the new one.

VantageKit sits between simple link trackers and heavy enterprise data rooms. The pitch is a data room that updates itself.

How it was built

How VantageKit staging works: edit the document in Google as usual, preview the change in staging, then publish it to the live room while the share link stays the same

He had been a product manager for a long time and decided to get back into coding. Claude Code was the accelerator. It is Anthropic's AI coding agent. It works in your terminal, reads your project and makes changes across files.

He did not share his stack. What he did share is the feature set, and it is not small for under two months of part-time work:

  • Staging with live sync. You connect Google Docs, Slides or Sheets. You edit in Google as usual, preview the change in a staging area, then publish it to the live room. The share link never changes.
  • Security controls. Watermarking, domain allow and deny lists, and download blocks.
  • Read tracking. Per-page attention and scroll depth.
  • An AI layer. Viewers can ask the documents questions. The app also gives each viewer an intent score from 0 to 100, based on how they engage.
  • A viewer portal. Recipients log in once and see every room shared with them.

How it makes money

The pricing is per user. These are the annual-billing prices (the site says annual saves 17% versus monthly):

PlanPriceMain limits
Free$010 docs, 1 deal room, 5 links, 500 views/mo, VantageKit branding
Growth$19/user/mo, billed annuallyUnlimited docs, links and rooms; 10,000 views/mo; up to 5 members; custom branding; 150 AI queries/mo; 30-day audit log
Scale$39/user/mo, billed annuallyUnlimited views and members; custom domains; NDA gating; cross-document search

The free plan needs no credit card. The paid line sits at volume and branding. Once you share more than a few docs, or want your own logo, you pay.

Per-seat pricing fits the buyer. Deal teams are small, and a single live transaction can be worth far more than a year of seats.

The homepage now says VantageKit serves "500+ teams." That is a marketing claim I can't verify. The number I can source is the one from launch: 20+ teams, 4 paid.

First users: a live deal as a stress test

The most useful detail in the post is about one customer. A paying team was relying on VantageKit for a large-scale live transaction. The founder called it an incredible stress test.

That is a strong early signal. Nobody runs a real deal on a tool they don't trust.

He also removed friction for HN readers. Instead of a sign-up wall, he shared a public, read-only demo room. Anyone could see exactly what a recipient sees, without giving an email. The roadmap is public too.

What to copy

  • Attack one specific annoyance. "Fix a typo without re-uploading" is easy to understand in one sentence.
  • Let people try it without signing up. A read-only demo room shows the product to people who would never make an account.
  • Charge early. Four paying teams at launch means the paid plans existed from the start.
  • Build for a workflow you know. He spent years as a PM before this. Pick a problem you have watched up close.

If you vibe-code this

A data room holds some of the most sensitive files a company has. Add an AI layer that reads those files, and the stakes go up. Here is what I would check in any app of this type. This is about the category, not VantageKit.

  1. Check access on every file request. Not just when the room page loads. Serve files through short-lived signed URLs from a private bucket. See Supabase storage bucket security.
  2. Make share links unguessable, and enforce expiry on the server. Sequential IDs let people walk through other rooms. See API route IDOR.
  3. Scope the AI to one room. The Q&A should only read documents in the room the viewer can access. Documents can also contain hidden instructions. See prompt injection.
  4. Protect Google tokens. Ask for the smallest OAuth scopes you need, and store tokens encrypted. See secure authentication.

Here is item 1 with Supabase Storage:

// Serve a document only after checking the viewer's access to this room
const allowed = await canViewRoom(viewer.email, roomId); // your allow/deny + expiry check
if (!allowed) return new Response("Not found", { status: 404 });

const { data, error } = await supabaseAdmin.storage
  .from("room-files") // a PRIVATE bucket
  .createSignedUrl(`${roomId}/${fileId}.pdf`, 60); // valid for 60 seconds

if (error || !data) return new Response("Error", { status: 500 });
return Response.redirect(data.signedUrl, 302);

Building something that stores other companies' confidential documents? I review vibe-coded apps before launch. Email [email protected].

Key takeaway

VantageKit shows that a returning coder with Claude Code can ship a serious B2B product part-time in under two months. What made it work was a sharp problem, a no-signup demo and paid plans from day one. Four paying teams followed.

More case studies: Vibe-coded apps making money. Before you launch: Vibe coding security guide.

Sources