Wabiro is a collection of short, original tests — purity score, Red Flag, two-person compatibility, dating archetype, flirting style, social battery — whose results are designed to be sent to someone. Every test gives a score or an archetype, a card built for screenshots and a challenge link the friend opens without an account. Scoring is deterministic and public; answers never leave the device.
01 / 06
Problem
Context
Personality and relationship tests are a huge, mediocre search category: endless quizzes, forced sign-ups, results with no method. Wabiro takes the subject seriously on the mechanics — short questions, documented scoring, no data collected by default — and on the tone.
Problem
A test only has value if its result circulates. The product therefore has to solve two things at once: a result precise enough to be recognised (“that is exactly you”) and a format simple enough to be shared and compared. And it has to do so without an account, without an email, without storing the answers — because these are personal questions.
02 / 06
Constraints
- Privacy: answers never leave the device; only the score, the level and the profile name reach the server — never the answers, never in analytics.
- No sign-up before the result: no email, no card.
- No diagnosis: the product never labels anyone toxic or narcissistic.
- Short tests — twelve to fifty questions — that still give recognisable results.
What is difficult
Writing short tests that give results people recognise. Fourteen statements for seven flirting styles, sixteen for eight archetypes: precision comes from the wording of the questions more than from their number.
Keeping the privacy promise while allowing sharing and payment. The line is sharp — score and profile on the server, answers never — and it has to stay true with every feature added.
03 / 06
System
The product as a system
- Search
- Test
- Result
- Share
- Referral
Important product decisions
- Free, no sign-up, complete result. Nothing is asked before the result — no email, no card. An optional magic-link account, with no password, exists only to keep access to a purchased report from another device.
- Deterministic, public scoring, with method pages. Percentiles only appear once two hundred real completions of a test version exist — before that, there is no “you are in the top 10%”.
- Mobile first, built for screenshots: the result card is the unit of sharing, the challenge link the unit of acquisition.
- No diagnosis. The product is a self-reflection and entertainment tool built on documented rules; it never labels anyone toxic or narcissistic, and says so.
Screens


04 / 06
Architecture
From input to fulfillment — every stage, its layer, what happens there.
- Search intentClient
Every test, category and guide is a page that answers a query and leads straight to the test.
- Versioned testDomain
A content unit with a fixed number of questions — twelve to fifty — and an output model: score, level, archetype or profile. Immutable once published.
- In-browser scoringClient
A pure, deterministic module run on the client; answers stay in the device’s local storage.
- Result cardClient
Built for screenshots — the unit of sharing.
- Challenge linkDomain
The friend who opens it takes the same test and gets a head-to-head — the unit of acquisition; they become the second user.
- Shared scoresData
Only the score, the level and the profile name reach the server — never the answers; percentiles from 200 real completions of a version.
- Premium report — StripeIntegrations
One-off purchase (€7.90), unlocked only once Stripe confirms payment to the server; optional magic-link account to find it again.
Product architecture
The loop: a search intent becomes a two-to-five-minute interactive test; the result becomes a personalised card and a challenge link; the friend who opens it takes the same test and gets a head-to-head with a verdict; they become the second user. The premium report is a one-off, optional purchase.
Tests are content units with a fixed number of questions — twelve to fifty — and an output model: a score out of a hundred, a level, one of eight archetypes, or a profile with strengths and patterns to watch. Two-person tests (compatibility) have each person answer separately and show only where styles converge, never the other’s answers.
Engineering decisions and privacy
Answers stay in the browser’s local storage and the score is computed on the client. If the user creates a share link or buys a report, only the score, the level and the profile name are sent to the server — never the individual answers, never in analytics.
That constraint shapes everything: the scoring engine is a pure, versioned module that runs in the browser, and the same module produces the method pages. A test version is immutable once published, which makes percentiles comparable.
Next.js, TypeScript, Postgres for shared scores and reports, Stripe for one-off purchases, Vercel.
Domain model
- Test
- Immutable version, questions, output model, public method page generated from the same module.
- Result
- Score, level, archetype — computed on the client; shared only if the user decides to.
- Challenge
- Link to the same test, head-to-head with a verdict.
- Report
- One-off purchase, attached to a passwordless magic-link account.
05 / 06
Business result
Free tests with no sign-up that grow through search and sharing rather than advertising, monetised by a €7.90 premium report and a €14.90 bundle, in English and French.
Current status
In production, payments live. Free tests with no sign-up, premium report at €7.90 and a three-report bundle at €14.90, in English and French; new tests every few weeks.
Business and operating model
Free, no sign-up, complete result; the premium report is a one-off purchase — no subscription, no fake urgency. Growth comes from search and sharing, not advertising; privacy by design — answers never sent to the server — is the constraint that shapes the product.
What shipped
- The loop: search intent → interactive test → personalised result → shareable card and challenge link → second user → premium report
- Deterministic, versioned scoring with public method pages; percentiles only shown once 200 real completions exist for a version
- Mobile-first UX built for screenshots; results and head-to-heads work without an account
- SEO-driven acquisition across test, category and guide pages; one-off premium reports paid through Stripe
Acquisition architecture
Two channels, two mechanics. Search: every test, category and guide is a page that answers a query and leads straight to the test. Sharing: every result carries a challenge link; the friend who opens it takes the test without friction and becomes a user.
The product is bilingual English / French from the start.
06 / 06
Lessons
- 01A privacy promise is an architecture decision: a pure scoring engine running in the browser makes it holdable, and the same module generates the method pages.
- 02Freeze a published test version — that is what makes percentiles comparable; no percentile before two hundred real completions.
- 03Design the sharing unit first: the card is the unit of sharing, the challenge link the unit of acquisition.
- 04Precision comes from the wording of the questions more than from their number.
What I owned
- Test design and scoring systems
- Versioned, in-browser scoring engine and method pages
- Product and share loop — card, challenge link, head-to-head
- Server-side data model limited to score and profile
- Stripe one-off payments
- Bilingual SEO acquisition — tests, categories, guides
Capabilities proven here
The matching service
Related reading
- Build a SaaS with Next.js, Supabase and StripeThe stack, the order of the steps and the traps — to go from an empty repo to a product that actually charges.Next.js & full-stack7 minRead →
- Next.js architecture for a production SaaS: the decisions I make on every productWhat separates a Next.js project that holds from one that gets rewritten after a year comes down to about ten decisions. Here are mine, as applied on Atamatax, Horvera, Wabiro, SponsorsMetrics — and on this site.Next.js & full-stack9 minRead →
Notes de terrain issues de ce système
Next system
Vellaci