


Sell before coding, time-to-value under 5 min, pricing before features, product observability, native multi-tenant: what separates SaaS that take off from those that sleep.
Shipping a B2B SaaS as an agency is less a tech question than a product discipline question. Five products in eight months — here's what separates those that take off from those that sleep.
At Ubuntu Consulting, I shipped five B2B SaaS products in eight months: Prospect-Pro AI, RunWeek, HomeEnergy, MailCraft and a data enrichment platform. Three found rapid commercial traction. Two never took off despite impeccable tech.
The difference didn't come from code. It came from how we approached the MVP-to-traction transition. This article condenses the patterns I saw work.
A technically working MVP has zero value if the promise isn't clear. The promise is what you say in one sentence to a prospect.
Good promise: "We automate B2B prospecting with AI scoring — 60% more conversion, 15 hours saved per week."
Bad promise: "We have a modern lead management platform with artificial intelligence."
The first promises a quantified result. The second describes a category. Of the five products, those without a clear promise stayed technical PoCs.
The first product that worked (Prospect-Pro) started with 12 user interviews before a single line of code. Format: 30 min, two questions:
No mention of the planned product. Just listening. Out of 12 interviews, 8 described the same problem — manual Excel files, 6-month-old contacts, generic messages that don't work.
That became the product brief. Tech followed.
Conversely, the two products that didn't take off started with "we saw a tech opportunity" without preliminary interviews. Result: six months of dev on features nobody requested.
Before the functional MVP, we sold three licenses on a "Wizard of Oz" demo: real interface, hand-cranked backend. Customers didn't know — for them, the app worked. For us, it validated that people were ready to pay for that precise outcome, regardless of implementation.
This pattern (Wizard of Oz MVP) takes guts but avoids months of wasted dev. If nobody pulls out their card on the demo, the product has no market — regardless of the tech you'd have written.
On RunWeek, the first try sent users through 14 minutes of setup (Garmin connection, HealthKit authorization, parameter selection, history import). We lost 70% at step 3.
Funnel redesign:
After redesign: time-to-value at 3 min 20 sec. Activation rate ×4.
Rule: every second of friction between install and first "wow" costs retention. Measure that time. Lower it like a product sprint of its own.
Classic mistake: stack features, then figure out how to sell them. Better: define pricing first, only add features that justify a tier.
On HomeEnergy, three tiers:
Each feature developed asked itself: "does it justify a tier or enrich an existing one?" If neither, we cut.
Result: compact roadmap, readable pricing, free-to-pro conversion at 8% (vs typical 1-3%).
Without data, you're improvising blind. Three things to instrument from the MVP:
Each key step between signup and first "wow" is tracked. On Prospect-Pro:
| 1 | [Signup] → [Onboarding step 1] → [First search] → [First export] → [First contact sent] |
| 2 | 100% 78% 52% 38% 22% |
The biggest drop (step 2 → 3) signaled a confused onboarding. Redesign → drop halved.
For each cohort (signups from a given week), track % returning the following weeks. Without this, you confuse growth with churn.
| 1 | W+1 W+2 W+4 W+8 |
| 2 | Cohort W12 65% 48% 35% 28% |
| 3 | Cohort W14 72% 58% 45% 38% ← palpable improvement |
Not the automated 30-day NPS that teaches nothing. Conversational NPS: call the first 10 paying customers, ask "what would make you leave us?" and "what would make you commit more?". Answers guide the roadmap better than any form.
On the tech side, three principles to avoid shooting yourself in the foot:
Next.js + PostgreSQL + Tailwind covers 90% of B2B SaaS. Pointless to chase an experimental framework to do the same slower and riskier. The more common the stack, the easier to hire and collaborate.
A B2B SaaS serves multiple clients. Isolate data by tenant_id everywhere, from line one. Cost: 5% more effort. Benefit: no painful migration at the 50th client.
| 1 | CREATE TABLE leads ( |
| 2 | id UUID PRIMARY KEY, |
| 3 | tenant_id UUID NOT NULL, |
| 4 | name TEXT NOT NULL, |
| 5 | ); |
| 6 | CREATE INDEX ON leads (tenant_id, created_at); |
| 7 | CREATE POLICY tenant_isolation ON leads |
| 8 | USING (tenant_id = current_setting('app.tenant_id')::uuid); |
Every non-trivial new feature ships behind a flag, activatable per tenant. You can test on 3% of clients without risking the other 97%. On MailCraft, this pattern avoided three production rollbacks.
Commercial reality of B2B SaaS in West African and French markets:
So: product pages with a client story told as narrative, more effective than a feature table. Visible logos. Pricing displayed (not "contact us"). 2-click clickable demo.
B2B SaaS sites doing "mystical premium" without visible pricing filter out 80% of qualified prospects who go see a transparent competitor.
On paying tiers, offer monthly + annual with ~20% discount. Multiple effects:
On Prospect-Pro, adding annual/monthly side-by-side raised CAC payback from 11 to 5 months.
| Pitfall | Symptom | Fix |
|---|---|---|
| Code before listening | Features nobody wants | 10+ user interviews before code |
| Time-to-value > 10 min | Massive onboarding drop | Measure and reduce each step |
| Hidden pricing | Pre-contact drop | Display transparent pricing |
| Feature before business model | Incoherent pile-up | Pricing first |
| No product observability | Blind decisions | Funnel + cohort + conversational NPS |
| Late multi-tenant | Painful migration | tenant_id from initial schema |
| Selling to engineering | Nobody signs | Sell to business decider |
| No annual prepay | Tight cash flow | Visible annual option |
Across the five Ubuntu products:
| Product | Traction | Missed pattern |
|---|---|---|
| Prospect-Pro AI | Strong | — |
| RunWeek | Medium | Initial onboarding too long |
| HomeEnergy | Strong | — |
| MailCraft | Strong | — |
| Enrichment platform | Weak | No user interviews before code |
The three that took off share: preliminary interviews, short time-to-value, visible pricing, native multi-tenant. The two that stagnated skipped one of those steps.
B2B SaaS isn't a tech problem. Tech is the means. The problem is finding a clear promise, validating it pre-sale, shipping short time-to-value and instrumenting retention.
If starting today: six weeks of discovery before the first code sprint. Three visible pricing tiers. Multi-tenant from day 1. Tracked activation funnel.
The rest follows. Otherwise, your SaaS joins the graveyard of technically impeccable MVPs that nobody bought.
If this topic feels close to a real product problem, I can help on diagnosis, architecture, backend, interface and automations that make a platform usable in production.
Reader reactions
No comment yet
Be the first to share your reaction.