
Yesterday BuildBase got its first paying customer. $99/month plan. Someone we've never spoken to, never DMed, never met.
I want to write this down while it's fresh, because the gap between "signups" and "revenue" is the part nobody talks about honestly.
The setup
BuildBase (buildbase.app) is a backend platform for React/Next.js SaaS founders. One npm install gives you auth, billing, workspaces, RBAC, feature flags, webhooks, workflows, email, and about a dozen other modules. You bring your own Stripe, we take 0% of your revenue. Two people, no funding, closed source.
We built it because we were running five of our own products and kept rebuilding the same backend. So we made it once and started dogfooding it across all five.
The numbers before yesterday
100+ signups. Zero paying customers. Months of build-in-public posting across X, LinkedIn, Reddit, here.
Every signup felt like progress. It wasn't. It was a leading indicator of nothing until someone paid.
What one sale actually means
I'm not calling this traction. One customer is not a business.
But it answers a question that no amount of signups can: will a stranger pay for this specific thing? Until yesterday, every user was either us, someone we knew, or someone on a free trial who never converted. Now there's one data point that says the problem is real and the solution is good enough to pay for.
That's the line between "cool project" and "market exists."
Things I'd tell myself six months ago
Stay paid-only. We never launched a free tier and I'm glad. Free tiers would have inflated signups and left the revenue line exactly where it was.
Stop optimizing distribution before activation works. Every post I wrote before fixing the popup was pouring water into a bucket with a hole in it.
One conversion teaches you more than a thousand impressions. I learned more from watching one person go signup to paid than from every analytics dashboard combined.
Be honest about stage. Every post I've written says pre-revenue, v0.0.x, two brothers. It never hurt. If anything it's why people trusted the product enough to try it.
What's next
Customer two. Then a proper Product Hunt launch once docs and pricing pages are where they need to be.
If you're building a React/Next.js SaaS and currently stacking Clerk + Stripe + Knock + LaunchDarkly, buildbase.app is what we built to replace that. Docs at docs.buildbase.app.
Happy to answer anything about the activation fix, the pricing, or the stack.
The “stop optimizing distribution before activation works” point really resonates. It’s easy to spend weeks on SEO, launch sites and traffic while assuming more visitors will solve conversion.
I’ve found that getting users to the first successful result with as few decisions as possible often matters more than adding another acquisition channel. I’d be really interested to see the activation path of the first paying customer compared with the other 100 signups.
closed source w/ two ppl is a big ask when it holds ur auth and billing. that might be what the other 99 stalled on, not the popup.
Congrats on the first paying customer. The popup fix is the detail I was most curious about: what was it preventing people from doing? That bit of the story could be especially useful to someone sitting on signups but no sales.
Congrats on the first $99 customer—that’s a much stronger signal than 100 signups. While the path is fresh, I’d document the exact sequence from first visit → first successful outcome → payment (source, promise, objection, time-to-value), then repeat it with 5–10 similar prospects. For customer two, keep the activation change constant and test whether the same path repeats before widening distribution. One repeatable conversion is the next milestone. — Francisco / TrixellaIQ
Congrats on the $99 signal. The paid-only choice makes the 100+ signups more useful to analyze, especially after fixing the activation popup. I’d tag every signup by the first module they touched and compare that with the one customer’s path; that should point to the smallest “aha” flow to improve before pushing distribution again.
The line that will age best here is signups being a leading indicator of nothing. We have the same shape from the other side. On our free scan the email capture event fires every day, and the click through to signup has fired zero times in 28 days. Not low, zero. A free thing that fully answers the question someone arrived with does not lead anywhere, it substitutes.
Where I would push: you have one conversion and are about to write a playbook from it, and at one you cannot tell which change did it. The bigger sample is the hundred who did not pay, and they are still reachable. One email asking what they used instead will teach you more than customer two, and you can only send it while they still remember signing up.