revenue-centric-design
Revenue-Centric Design (RCD) — evidence-backed principles for making a SaaS or startup product convert, retain, and monetize. Use when the user works on a landing page or CRO ("my page isn't converting"), onboarding/activation ("users sign up but don't stick"), churn/retention ("
Install
npx skills add https://github.com/fabricioctelles/skills/tree/main/skills/revenue-centric-design
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install fabricioctelles-skills@llmmart
git clone https://github.com/fabricioctelles/skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole fabricioctelles/skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Revenue-Centric Design
134 principles distilled, with the author's permission, from product designer Richard (@richardrx, ex-Volkswagen, PayPal, IBM; translated from Portuguese; every principle links to its source post). The philosophy, Revenue-Centric Design (RCD): a design decision must serve the user and the business — value and revenue, never one or the other.
Usage boundary (required)
🚫 Do not apply this skill to betting, casino, gambling, or other real-money games-of-chance products (including loot-box / real-money-gaming mechanics).
The author granted reuse on the explicit condition that it never be used for gambling, betting, or casino work. If asked, decline and explain that the source author's permission excludes that use. Hard constraint, not a stylistic choice.
Enforced, not just stated: while this skill is active, the boundary check
(scripts/check_usage_boundary.py) must run on every prompt and on every file write/edit,
blocking with exit 2 when gambling context is detected. On a false positive (e.g., "bet" as
an unrelated codename), only the user may waive the guard by creating .rcd-boundary-ok
in the project root — never create it on their behalf.
Hooks (for agents that support automated execution)
Agents with hook support should configure:
| Event | Matcher | Command |
|---|---|---|
| Before processing user prompt | * (all) |
python3 <skill_dir>/scripts/check_usage_boundary.py |
| Before writing/editing a file | Write\|Edit |
python3 <skill_dir>/scripts/check_usage_boundary.py |
<skill_dir>= root directory of this skill.- Exit code
2= violation detected → block the operation. - Exit code
0= cleared to proceed.
For agents without hook support, the operator must run the check manually before applying RCD principles in unknown context.
How to use
- If
rcd-log.mdexists in the project root, read it first — it records which principles were already applied to this product and what happened. Never re-prescribe a move the log shows failed, and don't repeat one still pending results. - Route with the table below and open only the matching reference file(s). Every principle has a fixed shape — principle → apply when → the move → evidence → source — so scan the headings, then read only the entries that match the user's situation.
- When the advice involves numbers — A/B sample size, churn→LTV, CAC per closed deal — run
scripts/revenue_math.py(see--help) instead of estimating. - A recommendation is done only when it (a) names the mechanism (decoy effect, Zeigarnik, GBB, loss aversion, Schwartz awareness level…), (b) cites the specific principle, and (c) carries that principle's evidence or source link. Missing any of the three → not done.
- For audit runs (page, pricing, onboarding, cancellation), deliver in the shape of references/audit-template.md.
- Close the loop: append what you prescribed to
rcd-log.md(format below), creating the file on first use.
The spine: RCD in 9 principles
- Neutrality is omission — an interface that doesn't direct hurts conversion.
- Who talks to everyone convinces no one — no ICP → generic value → worse retention.
- Value first, ask later — proof must arrive before the user questions their choice.
- Your promise is the size of your proof — the market believes what you demonstrate, not what you claim.
- Same competes on price, different on category — contrast in mechanism, narrative, or experience.
- Default is the decision you made for the user — the initial state defines mass behavior.
- Retention is built, not requested — perceived loss retains more than promised benefit.
- Expansion is born of usage — upgrade at the moment of the limit, never by interruption.
- Price is a filter — pricing defines who enters, who stays, and who expands.
Reference library
| When the question is about… | Open |
|---|---|
| LP audit / diagnostic — where is the sale breaking before redesign | lp-diagnostic-framework |
| Landing pages, hero/copy, CTAs, social proof, awareness levels, CRO | conversion-and-landing-pages |
| Checkout, forms, payment UX, dropdowns, field friction | checkout-and-forms |
| Dashboards, KPI density, data viz cognitive load | dashboards-and-data-viz |
| First-run, empty states, aha moment, TTV, activation, trial-as-onboarding | onboarding-and-activation |
| Cancellation, retention, expectation debt, NRR, jobs-to-be-done, support load | churn-and-retention |
| Pricing tables, decoy/anchoring, GBB, trial-with-card, upgrade paths | pricing-and-monetization |
| Cognitive biases & persuasion tactics (cross-cutting toolkit) | behavioral-science-toolkit |
| Feature scope, Swiss Knife Index, feature adoption, attention hierarchy | product-strategy-and-features |
| Design philosophy, the RCD principles, design process & method | revenue-centric-design |
| ICP, niche, founder-fit, distribution, PLG, Bullseye, first customers | positioning-icp-and-gtm |
| Differentiating in the AI era, moats, commoditization | ai-era-differentiation |
| A/B testing rigor, vanity metrics, churn→LTV math, signal quality | metrics-and-experimentation |
Some principles carry a Visual. line — a text description of the diagram or screenshot from
the original post, often with a path under assets/. Open that file locally, or follow the
principle's Source link for the original post.
Gotchas
- Scarcity must be real. Booking's "1 room left" works because it's true. Fabricated scarcity destroys trust when detected (and is illegal in several markets). Never invent counters, timers, or stock levels.
- Loss aversion vs dark pattern — the line: the claim is true and the exit stays easy. Framing a real loss is persuasion; manufacturing fear or trapping cancellation is not.
- "Kill outbound links" is a conversion-page rule. Blog posts, docs, and SEO pages need outbound links; don't export LP rules to content.
- 4.2–4.5 stars means let real criticism show — never fabricate negative (or positive) reviews to hit the number.
- Don't answer this skill with 30 A/B tests. The metrics principles themselves warn against
underpowered tests: compute the sample-size floor first (
scripts/revenue_math.py sample-size), test big levers, and below the floor decide by qualitative research. - Evidence is benchmark, not guarantee. Figures come from the author's cases (mostly Brazilian SaaS, values in BRL). The mechanism transfers; the exact percentage may not.
Related skills
RCD supplies the principle and its evidence; execution skills own the workflow. The skills below are from Corey Haines' marketingskills — if they aren't installed, apply the RCD principles directly instead of deferring.
Full page-audit workflow → cro · cancellation-flow build → churn-prevention · test design &
stats → ab-testing · writing the copy → copywriting · pricing-page build → pricing ·
post-signup flow build → onboarding. When one of those runs, cite RCD principles inside it
rather than duplicating its process here.
Project log (rcd-log.md)
Per-project memory, kept in the project root — read at the start of every engagement (step 1), appended at the end (step 6). One entry per engagement:
## 2026-07-02 — pricing page redesign
- via: rcd (direct) # or the skill that led the run: cro, pricing, churn-prevention…
- principle: Decoy effect (pricing-and-monetization)
- move: added GBB middle tier at 80% of the top price
- result: pending # update when data arrives: "+12% upgrades", "no effect"
The via: field doubles as trigger telemetry: if entries accumulate where RCD led a run an
execution skill should own (a full page audit, a cancellation build), that is the signal to
narrow this skill's description to the principle/evidence angle.
License
Source-available, not open-source — see LICENSE (must accompany any copy or
derivative, in full): attribution to @richardrx required; gambling/betting/casino use
prohibited. This skill is a derivative of
heliocosta-dev/revenue-centric-design,
restructured and extended here (gotchas, audit template, revenue-math script, project log).
Principle library synced to upstream 1942760 (CHANGELOG 1.3.0 / 134 principles); see UPSTREAM_COMMIT.
Files (skills)
-
assets
-
1985681720104903142__1.jpg 88.6 KB · in bundle
-
1999584679247134761__1.jpg 74.6 KB · in bundle
-
2000930776636940333__1.jpg 486.3 KB · in bundle
-
2011427153133351046__1.jpg 23.5 KB · in bundle
-
2011427153133351046__2.jpg 44.7 KB · in bundle
-
2011427153133351046__3.jpg 116 KB · in bundle
-
2013264068518289753__1.jpg 40.9 KB · in bundle
-
2013264068518289753__2.jpg 66.2 KB · in bundle
-
2013597792447394034__1.jpg 222.4 KB · in bundle
-
2014317885494059106__1.jpg 74.6 KB · in bundle
-
2017274698699067466__1.jpg 20.3 KB · in bundle
-
2018357024543715480__1.jpg 116.2 KB · in bundle
-
2018693884449009956__1.jpg 11 KB · in bundle
-
2018693884449009956__2.jpg 104 KB · in bundle
-
2018693884449009956__3.jpg 243.4 KB · in bundle
-
2018693884449009956__4.jpg 48.1 KB · in bundle
-
2019019293761941566__1.jpg 38.8 KB · in bundle
-
2019019293761941566__10.jpg 102.1 KB · in bundle
-
2019019293761941566__2.jpg 60.2 KB · in bundle
-
2019019293761941566__3.jpg 82.5 KB · in bundle
-
2019019293761941566__4.jpg 161.5 KB · in bundle
-
2019019293761941566__5.jpg 56.3 KB · in bundle
-
2019019293761941566__6.jpg 74 KB · in bundle
-
2019019293761941566__7.jpg 94.6 KB · in bundle
-
2019019293761941566__8.jpg 79.4 KB · in bundle
-
2019019293761941566__9.jpg 53.5 KB · in bundle
-
2019514730696565238__1.jpg 170.6 KB · in bundle
-
2022255404743381289__1.jpg 41.3 KB · in bundle
-
2022255404743381289__2.jpg 83 KB · in bundle
-
2022255404743381289__3.jpg 100.3 KB · in bundle
-
2022255404743381289__4.jpg 232.3 KB · in bundle
-
2022255404743381289__5.jpg 49.8 KB · in bundle
-
2023777916673220817__q__1.jpg 658.4 KB · in bundle
-
2024141244717281514__1.jpg 123.1 KB · in bundle
-
2025246347587162602__q__1.jpg 97.2 KB · in bundle
-
2026605258152038780__1.jpg 79.9 KB · in bundle
-
2026978144343687177__q__1.jpg 297.2 KB · in bundle
-
2028471666297217460__1.jpg 78.4 KB · in bundle
-
2028777831233114152__q__1.jpg 134.9 KB · in bundle
-
2028837448717926518__1.jpg 78.6 KB · in bundle
-
2029226965580804593__1.jpg 101.2 KB · in bundle
-
2029623167900061970__1.jpg 69.8 KB · in bundle
-
2031722047080960265__q__1.jpg 71.3 KB · in bundle
-
2031722047080960265__q__2.jpg 42.4 KB · in bundle
-
2031722047080960265__q__3.jpg 13.3 KB · in bundle
-
2031722047080960265__q__4.jpg 33.3 KB · in bundle
-
2033880553607364684__1.jpg 165 KB · in bundle
-
2034638793219694734__q__1.jpg 316 KB · in bundle
-
2036035304868434115__1.jpg 31.7 KB · in bundle
-
2036461688505909250__1.jpg 184.9 KB · in bundle
-
2037316988981174464__1.jpg 173.9 KB · in bundle
-
2037583944283996418__1.jpg 163.7 KB · in bundle
-
2039399756452057159__1.jpg 39.8 KB · in bundle
-
2040415841628651689__1.jpg 24.4 KB · in bundle
-
2041829519611371727__1.jpg 91.4 KB · in bundle
-
2042013751742705816__1.jpg 58.8 KB · in bundle
-
2042558822825239030__1.jpg 52.9 KB · in bundle
-
2054283657934758021__1.jpg 143 KB · in bundle
-
2054910531132183030__1.jpg 631 KB · in bundle
-
2057124008445796659__1.jpg 165 KB · in bundle
-
2057872036718899256__1.jpg 10 KB · in bundle
-
2059236567533650119__1.jpg 112.2 KB · in bundle
-
2059951433827426437__1.jpg 133.7 KB · in bundle
-
2059997257156399233__1.jpg 107.8 KB · in bundle
-
2059997257156399233__2.jpg 473.9 KB · in bundle
-
2059997257156399233__3.jpg 184 KB · in bundle
-
2062554393447141438__1.jpg 210.7 KB · in bundle
-
2062621019978760424__1.jpg 58 KB · in bundle
-
2067987722954735812__1.jpg 67.7 KB · in bundle
-
2070140923380420796__1.jpg 40.4 KB · in bundle
-
2081714430811730162__1.jpg 39.7 KB · in bundle
-
2092692547244007852__q__1.jpg 106.6 KB · in bundle
-
2092692547244007852__q__2.jpg 118.1 KB · in bundle
-
2092692547244007852__q__3.jpg 110.7 KB · in bundle
-
-
references
-
ai-era-differentiation.md 8.6 KB
# AI-Era Differentiation & Moats > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## Faster building doesn't fix churn — activation does **Principle.** Build speed was never the bottleneck. Shipping the same confusing interface faster is just a more efficient route to churn. The real gap is the space between a user entering the product and understanding what to do. **Apply when.** Vibe coding is sold to a founder as "the product got cheaper to build," and the team equates speed with progress. **The move.** Obsess over activation, not velocity. Attack the three things vibe coding never touches: onboarding, attention hierarchy, and value delivery in the first sessions (TTV). More products now compete for the same user attention, so close the entry-to-understanding gap. **Voice.** "Build speed without an obsession for activation is just a more efficient way to reach churn." **Source.** [@richardrx · 2026-04-02](https://x.com/richardrx/status/2039685818273378644) ## Same engine, different UX: don't compete on the commodity **Principle.** AI turned your codebase into a near-commodity — under the hood ~90% of new tools call the same APIs. Engineering solves the base function; design and packaging are what differentiate and resist copying. **Apply when.** Your "engine" is effectively identical to a competitor's and a generic interface is pulling you into a price war. **The move.** Win on UX architecture, not the engine. Superior UX (1) removes initial friction → lifts conversion; (2) fits the user's workflow → cuts churn, raises LTV; (3) eases continuous/collaborative use → enables upsell. This builds a differentiator that lowers copy risk and keeps the customer paying. **Evidence.** VW Up, Seat Mii, and Skoda Citigo share the exact same platform — chassis, drivetrain, and the identical EA211 engine — yet are designed and packaged for different ICPs (young, pragmatic-utility, reliability). **Voice.** "The engine may be identical, but it's the architecture of the user experience that builds your moat." **Source.** [@richardrx · 2026-03-03](https://x.com/richardrx/status/2028837448717926518) ## A validated idea is a short-term game — plan the moat **Principle.** If your only advantage is the codebase, you've merely built a validated MVP for better-funded competitors to execute. Structural barriers to entry (the moat) are planned, never accidental. **Apply when.** Your tech is easy to replicate and the product identity is generic — clones can ship within days. **The move.** Plan three deliberate moats: (1) Brand Power — a proprietary visual identity with above-average UX signals less risk and sells perceived safety (conversion); (2) Switching cost via UX — intuitive flows users have internalized make moving to a 20%-cheaper clone costly in productivity (retention); (3) Expansion architecture — internal network effects (invite-to-collaborate) are harder to copy and pull in new users (LTV). Users who perceive a value ecosystem prefer paying more over adapting to a worse, cheaper product. **Evidence.** The "Roast My Startup" tool was cloned within a week — copies flooded the timeline — proving a codebase-only edge is no defense. **Voice.** "Clones can't copy trust." **Source.** [@richardrx · 2026-03-03](https://x.com/richardrx/status/2028777831233114152) ## Design for shrinking attention spans **Principle.** Short-form video acts on the brain like a variable-reward slot machine, switching off the attention filter and eroding self-control — leaving users with high anxiety and low focus. If your user's attention keeps shrinking, design must be militarily focused. **Apply when.** Building any product whose users are conditioned by infinite short-video feeds (attention economy). **The move.** Engineer for the attention limit: (1) drastically reduce cognitive load; (2) direct absolutely toward the target task (conversion); (3) build interfaces that respect the human attention ceiling. **Evidence.** An EEG study (Fabiano et al., Frontiers in Human Neuroscience) links short-form-video addiction to reduced frontal-lobe activity and weakened ability to focus. **Voice.** "TikTok is the hot dog of social media — hyper-palatable, but nutrient-poor: you consume endlessly and it never nourishes you." **Source.** [@richardrx · 2026-02-26](https://x.com/richardrx/status/2026978144343687177) ## Sell the value, not the feature list — and show the product **Principle.** AI auto-generates landing pages, but ~90% share the same defects. A generic, inconsistent hero is what loses visitors, not the absence of fancy design. **Apply when.** Auditing an AI-generated LP that leans on features and trendy gradients instead of the user's pain. **The move.** Fix the three recurring failures: (1) generic, inconsistent aesthetics (every component a different color, purple/green gradients on dark/white); (2) over-indexing on features instead of the value/pain they address; (3) barely showing the actual product. Build the hero to pass the 5-second test — what does this do, why care, what next. **Visual.** Supafast's "SaaS Hero Section Formula" — 5 elements with before/after copy: Headline (≤8 words, attack the #1 pain), Subheadline (show the transformation), Primary CTA (specific to outcome), Secondary CTA (low-commitment), Trust Bar (5 logos or one specific number) — `../assets/2025246347587162602__q__1.jpg` **Source.** [@richardrx · 2026-02-21](https://x.com/richardrx/status/2025246347587162602) ## Don't let AI-to-Figma-to-code factory technical debt **Principle.** A Claude → Figma → Code flow looks like speed but creates two documents that drift out of sync, plus inconsistent components — a maintenance Frankenstein, not velocity. **Apply when.** A tool promises round-tripping AI output through the design canvas into code as a shortcut. **The move.** Refuse the false shortcut. Without a design system and context, generated components are superficially similar but fundamentally inconsistent (random button padding, off-brand colors, inconsistent UX patterns). Manual tweaks don't flow back to code, so the source of truth reverts to the canvas and the two files desync. For devs it's useless (V0/Lovable already emit code without the full-seat toll); for designers it's a distraction that skips information architecture to spit out a screen fast. **Voice.** "A technical-debt factory." **Source.** [@richardrx · 2026-02-18](https://x.com/richardrx/status/2024076972565963186) ## Beat the four AI failure modes that make a vibe-coded SaaS feel like a fraud **Principle.** When the barrier to entry tends to zero, competition tends to infinity. AI lowered that barrier and amplified Dunning-Kruger — you feel omniscient but lack the base to judge if its output is a solution or wasted time. You shipped code, not a seductive product, and you're diving into a red ocean. Code is no longer the asset — just one ingredient. **Apply when.** A "complete SaaS in a weekend" is validated but feels hollow, generic, and clonable by Wednesday. **The move.** Fix the four pillars where AI fails: (1) **Generic-product trap** — AI is trained on the internet's average, and average builds nothing extraordinary; escape commoditization by building the only possible tool for an ignored niche (not "CRM for doctors" but "CRM for facial-harmonization clinics" with a `last_toxin_date` field and a 110-day retouch-alert cron). (2) **Value delivery / TTV** — don't ship login → empty dashboard (the 99% default); build an on-ramp to value, an onboarding assistant, not a desert. (3) **Trust / visual confidence** — in a sea of V0/Tailwind templates, aesthetics, personality, and consistency are the last remaining trust proxies; intentional, human-aligned pixels signal authority, build trust, and lower CAC. (4) **Human touch** — cheaper code should buy more time for the memorable details (kind error messages, a 404 that returns the user, business logic that anticipates mistakes, a 200ms confirming micro-interaction) — humans are predictably irrational, full of bias. **Evidence.** Johnson & Goldstein (2003), *Science* — a mere "opt-out" default produced +90% organ-donation consent, proving small design choices move behavior. **Visual.** The Dunning-Kruger curve — confidence spikes at "Ignorant" (low knowledge), craters at "Cultured," and climbs toward "Expert," with a labeled "confidence gap" — `../assets/2013264068518289753__2.jpg` **Voice.** "You can own all the cement in the world, but without the blueprint and structural engineering you're just a pile of gray concrete." **Source.** [@richardrx · 2026-01-19](https://x.com/richardrx/status/2013264068518289753) -
audit-template.md 1.9 KB
# Audit Output Template Deliver every audit run (landing page, pricing page, onboarding flow, cancellation flow, features page) in this shape. A row may only enter the table once it passes the completion criterion — named mechanism + cited principle + attached evidence. ## Header > **Target:** <URL or flow name> · **Date:** <date> > **ICP:** <buying criteria — trigger, pain, prior attempt, proof needed; not demographics> > **Awareness level:** <Schwartz stage of the arriving traffic> > **Verdict:** <one sentence — the single biggest revenue leak found> If ICP or awareness level can't be stated, that **is** finding #1 — the debug order starts there (ICP → awareness → proof → visual), never at the visual layer. ## Findings Ordered by expected revenue impact, not by position on the page. | # | Finding | Mechanism | Principle (reference file) | The move | Evidence | |---|---------|-----------|----------------------------|----------|----------| | 1 | Hero opens with the product category, not the visitor's pain | 5-second test | "Pass the 5-second test — lead with the problem" (conversion-and-landing-pages) | Rewrite the first line to the pain: "Your team loses 6 hours a week hunting for information" | Descriptive vs transformation-led LPs: 0.5% vs 3% across 30 Brazilian SaaS ([source](https://x.com/richardrx/status/2045154631974539650)) | When a finding involves numbers (A/B sample size, churn→LTV, CAC per closed deal), paste the actual `scripts/revenue_math.py` output into the Evidence cell — never an estimate. ## Close - **Do first:** the top 1–3 moves, each with one line on why it outranks the rest. - **Don't:** any tempting change the SKILL.md gotchas rule out (fabricated scarcity, LP rules applied to content pages, review manipulation, underpowered tests…). - Append the prescribed moves to the project's `rcd-log.md` (format in SKILL.md) so the next engagement starts from what was already tried. -
behavioral-science-toolkit.md 8.6 KB
# Behavioral Science & Persuasion > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## You can't un-hear your own product **Principle.** Once you know how your product works, that knowledge permanently rewrites your perception — what feels obvious to you is just "tap-tap-tap" to a first-time user. You'll mistake confused users for dumb users. **Apply when.** You think onboarding is unnecessary because "the product is simple," or a question your support answers weekly seems already-answered on screen. **The move.** This is the curse of knowledge — you can't switch the music off, so collect feedback from people who've never seen the product, without steering or naming things, and watch behavior. Run it continuously: use support/CX as an insight collector (tabulate each issue by %, impact, insight), Clarity/PostHog for heatmaps and session replays, sampled user interviews, and competitor benchmarking. **Evidence.** Tapping-vs-listening study: tappers hear the full song in their head; listeners only get the taps. Listeners guessed 3 of 120 songs correctly (2.5%) — far below tappers' expectations. **Voice.** "You're humming the whole song in your head; your user only hears 'tap, tap, tap.'" **Source.** [@richardrx · 2026-06-04](https://x.com/richardrx/status/2062509937037590997) ## Set the default — it's the most underrated lever in conversion **Principle.** The pre-selected option captures the overwhelming majority of choices, because deciding is expensive and the lazy brain takes the easiest path. Smart defaults beat copy persuasion. **Apply when.** Any choice the user must make — pricing tier, billing cadence, seat count, notifications, checkout — especially before you spend hours rewriting CTAs. **The move.** Exploit status-quo bias plus cognitive-load reduction. Pre-select the mid-tier you want to sell (the default takes 60–80% of choices); default billing to annual to lift contracted MRR without changing price; start the seat selector at your ICP's typical count (anchoring); run a reverse trial where premium is the default and free is the opt-out, so the user must actively give up what they already have. Three rules: defaults must be ethically defensible (checkbox tricks become churn and complaints), smart defaults beat copy, and a default acknowledges the user won't burn energy deciding what's trivial to you. **Evidence.** Organ-donor study (Science, 2003): opt-out countries register ~6× more donors than opt-in. Germany (opt-in) ~12% vs Austria (opt-out) ~100% — culture/religion don't explain it; it's a pre-checked box. Richard raised average ticket 60% and saw up to 4× LTV applying this to plan acquisition. **Visual.** Bar chart of effective organ-donor consent by country: opt-in nations low (Denmark 4.25%, Germany 12%, UK 17.17%, Netherlands 27.5%) vs opt-out nations ~100% (Austria, France, Hungary, Portugal). — `../assets/2057872036718899256__1.jpg` **Voice.** "You can spend the rest of your life optimizing copy, or you can change 5 defaults over the weekend." **Source.** [@richardrx · 2026-05-22](https://x.com/richardrx/status/2057872036718899256) ## Reinforce the decision the user just made **Principle.** After committing to a choice, people actively seek information that supports it — choice-supportive bias. You can feed that need to make the decision feel right. **Apply when.** Right after signup, purchase, or any meaningful commitment, when buyer's remorse or doubt could creep in. **The move.** Use choice-supportive bias deliberately: send a strong welcome email with clear next steps so the new user feels embraced and validated in having chosen you. (Analogy: someone joins an EV-lovers group right after buying the car.) **Source.** [@richardrx · 2026-04-29](https://x.com/richardrx/status/2049392897598849333) ## Architect for what users fear losing, not just what they gain **Principle.** Builders obsess over features (gains), but conversion and retention are cemented by what the user fears losing — the pain of abandoning a built-up ecosystem outweighs the pain of paying a subscription. **Apply when.** Designing trials, retention/renewal flows, and offboarding for any product where users accumulate data, history, or workflows. **The move.** Exploit loss aversion and sunk cost. Convert with zero risk — let users import real competitor data in shadow mode so they can test without fear. Retain by designing the product to make users build workflows and accumulate history from day 1, so at renewal they weigh the headache of rebuilding from scratch, not the monthly fee. At offboarding, don't add friction — make cancellation easy but the loss tangible (e.g., "You'll instantly lose 41 active automations and 6 months of data"). **Evidence.** Sunk cost is what keeps many users on certain LLMs — fear of losing your memory/history, even when it could be exported with a copy/paste. **Visual.** Hotel-listing UI using scarcity ("Only 2 rooms left") — illustrative example of a loss-framed cue. — `../assets/2028471666297217460__1.jpg` **Source.** [@richardrx · 2026-03-02](https://x.com/richardrx/status/2028471666297217460) ## Use precise numbers, not round ones, to signal truth **Principle.** Exact figures read as more credible than rounded ones; round numbers signal marketing while specific numbers signal reality. **Apply when.** Writing any claim, stat, or social-proof number — landing pages, ads, results, testimonials. **The move.** Lean on the precise-number effect: say "526 houses," not "over 500." Nothing about the claim changes except the precision, yet trust rises. **Evidence.** Schindler & Yalch (2006), 199 participants, fictional deodorant: claims of "47%" or "53%" longer-lasting were judged ~10% more accurate than the rounded "50%" claim — only the precision changed. **Visual.** Real billboard: "LAST YEAR WE SOLD 526 HOMES. YOUR COUSIN SOLD 2. LIST RESPONSIBLY." — the precise number doing the persuasion. — `../assets/2024141244717281514__1.jpg` **Voice.** "'526 houses' inspires confidence; 'over 500 houses' signals marketing." **Source.** [@richardrx · 2026-02-18](https://x.com/richardrx/status/2024141244717281514) ## Guide the eye — don't give every option equal weight **Principle.** The brain uses contrast to make fast decisions (Von Restorff effect). When competing options carry identical visual weight, you create mental friction, decision time rises, and conversion falls. Guiding the user isn't manipulation — it's respect for their time. **Apply when.** You have 3 plans, two equally-weighted buttons, or any "democratic" interface where everything looks the same (a common founder error, and a default of AI-generated UIs). **The move.** Exploit the Von Restorff effect: make the value-generating option visually dominant and de-emphasize the rest (e.g., a ghost-styled "Cancel" beside a bold, colored primary). If you know your ICP's pains and desires, you have a duty to highlight the highest-value solution. Slow decisions accumulate into a "hard-to-use" perception that becomes churn. **Visual.** Good/bad confirm dialog: bad = both buttons same green weight; good = a ghost-text "Cancel" beside a solid red "Delete now," so the primary action stands out. — `../assets/2014317885494059106__1.jpg` **Voice.** "If everything grabs attention, NOTHING grabs attention." **Source.** [@richardrx · 2026-01-22](https://x.com/richardrx/status/2014317885494059106) ## Cut cognitive load — every choice you remove can lift conversion **Principle.** Each extra field, choice, or block of complex text spends the user's mental energy and triggers analysis paralysis. Your product can be complex; your interface doesn't have to be. **Apply when.** Checkout, signup, and subscription screens — anywhere the user must decide or input under doubt. **The move.** Strip the interface to the essential decision; when options can't be cut, break the flow into smaller steps (e.g., a 4-step checkout). Remember the failure is invisible: users don't complain or open tickets — they close the tab as "silent churn" and your CAC is wasted. Then dogfood your own onboarding as if you were a stranger. **Evidence.** Removing 1 checkout field raised conversion 10%. Richard has seen reworked subscription screens lift LTV 200% just by simplifying the decision. **Visual.** Mobile checkout labeled "Analysis paralysis": payment options split into smaller stages — advice to break choices into ~4 steps. — `../assets/2013597792447394034__1.jpg` **Voice.** "They don't file a support ticket. They just close the tab — and your CAC goes in the trash." **Source.** [@richardrx · 2026-01-20](https://x.com/richardrx/status/2013597792447394034) -
checkout-and-forms.md 6 KB
# Checkout & Forms (Conversion-Completion Layer) > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. The checkout is where ~70% of drops happen — it's the highest-leverage page most founders treat as an afterthought. ## Friction kills conversion — field count, input type, and perceived risk all compound **Principle.** More fields = lower conversion, but the *type* of input matters too: text fields usually generate less impact, while dropdowns and textareas hurt more. Phone number drops conversion; any data that raises perceived risk or invasiveness does the same. And perceived effort ≠ real effort — 5 steps with 2 fields per screen can beat 2 screens with 7 fields each. **Apply when.** Optimizing lead forms, pre-checkout, signup. **The move.** Count perceived effort, not steps. A screen full of text, warnings, secondary info raises cognitive load even without interaction. Ask: how much effort can I remove without destroying the business value of that data? Sometimes the fix is between things — more breathing room, less noise, clearer hierarchy. Your form should look like a corridor, not an interrogation room. **Evidence.** HubSpot study across 40,000+ landing pages: 3-field forms convert above 25%; adding fields trends conversion down. Phone field drops conversion to ~13.5% vs 19% without. **Source.** [@richardrx · 2026-08-12](https://x.com/richardrx/status/2087502085151424711) ## Microcopy at the point of fraud risk beats friction everywhere else **Principle.** Design must protect the user from the real environment the product lives in — especially in low-trust economies. One line of microcopy in the right place prevents scams that cost more than the friction of adding it. **Apply when.** Users are getting scammed through a flow your product enables (delivery PIN sharing, social engineering). **The move.** Add microcopy at the exact risk moment: "Never share your number outside the app. The store and courier already have your contact via chat." Transparency is the antidote in low-trust verticals (auto repair, delivery). **Voice.** "Scam costs more than friction." **Source.** [@richardrx · 2026-06-29](https://x.com/richardrx/status/2071546806987538924) ## You lose money on the boring screens **Principle.** Registration forms are where you lose users one input at a time, creating holes in your bucket and wasting CAC — while founders polish the hero. The idea is to remove cognitive load until the flow is so smooth the user doesn't notice it. **Apply when.** Conversion leaks between signup and first value; form-heavy onboarding. **The move.** (1) Ask less — only what's relevant at that specific step; more questions = less conversion. (2) Avoid typing when possible (swipe/tap costs less than entering data, especially mobile). (3) Explain when asking for sensitive data (documents) — increases completion. (4) Never block paste (card numbers, CEP get copied, not memorized). (5) Help users not mistype passwords (optional visibility toggle). (6) Avoid dropdowns — they hide the answers from the user; with fewer than ~6 options, use a button group instead. **Voice.** "You lose money on the boring screens." **Source.** [@richardrx · 2025-12-23](https://x.com/richardrx/status/2003495704849760387) ## Checkout is where ~70% of drops happen — every extra input is less conversion **Principle.** At checkout, less is more. Each extra input is less conversion; ask for the minimum possible. Any new negative surprise is a reason to cancel — expensive shipping, paid shipping at all, service fee, packaging fee — embed every extra charge into the product price, never as a hidden extra. **Apply when.** Auditing or building any checkout, signup-to-paid flow, or high-stakes form. **The move.** (1) Minimum fields only. (2) No surprise fees — bake costs into the price. (3) Show security signals (even a lock icon with "Compra segura" — "Secure purchase" — lifts conversion). (4) Show an extra discount in the cart if you have one (anchoring works for you there). (5) Display the CNPJ (Brazilian company-registration number) — a real company converts more. (6) Show product photos even for digital products. (7) Split what you can to reduce barriers and cognitive load. (8) Use mobile-appropriate inputs (numeric keyboard for phone). (9) Yes, social proof in checkout works. (10) Test — different ICPs perceive risk differently. **Visual.** Richard's own checkout applying the list at once: lock icon + "Site Seguro" in the header, four fields only (name, surname, e-mail, +55 phone with a numeric mask), a product thumbnail in the order summary, "Desconto 5% PIX" and free shipping on the receipt, a "Compre com confiança" trust list (100% money-back, support 7 days a week, 10,000+ sales) with a named testimonial, and the CNPJ in the footer — `../assets/1999584679247134761__1.jpg` **Voice.** "I worked at PayPal literally designing checkouts for the biggest e-commerces and brands in Brazil. Hundreds of them." **Source.** [@richardrx · 2025-12-12](https://x.com/richardrx/status/1999584679247134761) ## 97% of visitors buy nothing — the leaks are known and fixable **Principle.** Cart abandonment reasons are mapped and mostly design-fixable: late extra costs (49%), forced account creation (24%), slow delivery (19%), complicated checkout (18%), distrust of the site (17%), unclear price (17%), site errors (12%), bad return policy (11%). **Apply when.** Diagnosing why traffic isn't converting to purchase. **The move.** Treat this as a checklist: eliminate late costs, allow guest checkout, show delivery time early, simplify checkout, add trust signals, show total price upfront, test for errors, publish return policy. Amazon shows international products with "no additional costs after" — do the same. **Voice.** "You can frame this as winning new conversions, or as better capturing what you're losing today." **Source.** [@richardrx · 2025-12-09](https://x.com/richardrx/status/1998432350842016222) -
churn-and-retention.md 15.1 KB
# Churn & Retention > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## The funnel leaks at three points — diagnose which before fixing **Principle.** The three most common SaaS funnel holes for Brazilian founders: (1) cancel in month 1–2 → onboarding missing or LP promised the wrong thing (brought off-ICP users); the first is a product problem (shorten path to value), the second marketing (tighten the promise). (2) Many trials, few paid → paywall at the wrong moment or a broken value ladder. (3) Many visits, few signups → confused ICP and/or generic value proposition — but check the acquisition source first; wrong traffic can't be saved by copy. **Apply when.** Triage where the funnel is leaking. **The move.** Match symptom to owner: month-1 churn → activation/expectation; trial-no-convert → paywall timing/value ladder; visit-no-signup → ICP/positioning/traffic source. These mix — a clear ICP + good offer first, then an experience aligned to the promise. **Evidence.** Kyle Poyar/ChartMogul+ProductLed (Jan): median free-to-paid 8%; trial-without-card good 4–6%, great 10–15%; trial-with-card good 25–35% (US). **Source.** [@richardrx · 2026-08-05](https://x.com/richardrx/status/2085056354360729949) ## Churn and payback are one problem, measured in two places **Principle.** Churn and payback look like two problems (often with different owners) but are the same one — both decided in the user's first session, in the gap between entering and feeling the product works. **Apply when.** You're fixing churn at the cancel screen and chasing cheaper CAC in the ad manager at the same time. **The move.** Both are the wrong place — the decision was made earlier. Activation fixes both: shrink TTV and you retain more AND get each customer across the payback line before they vanish. A customer who dies in month 2 with a 4-month payback never closes the account. Caveat: not all churn is activation (price, a bad channel exist) — but before chasing cheaper CAC, count how many customers die before repaying what they cost. **Voice.** "A customer who dies before repaying his CAC is a bill you paid and never collected." **Source.** [@richardrx · 2026-06-30](https://x.com/richardrx/status/2071931705573748896) ## Switching cost is what turns months of LTV into years **Principle.** The same product, designed differently, yields months vs. years of LTV. Switching cost = the effort a user *perceives* in leaving; low switching cost means thin history and an easy exit. **Apply when.** Designing for retention/lock-in, or explaining why a useful product still churns. **The move.** Engineer switching cost deliberately — a "compound interest" that grows the product's value over time. Five levers: **muscle memory** (Superhuman/Photoshop shortcuts), **mental model** (Mac↔Windows, Gmail labels), **accumulated personalization** (Spotify playlists, home-screen layout), the **vault effect** (iCloud/Drive/years of WhatsApp), and **autopilot/habit** (variable-reward Skinner-box loops). Sunk cost holds them the way it holds an investor in a falling stock; habit can take months to install but is the difference between LTV of months and years. **Source.** [@richardrx · 2026-06-23](https://x.com/richardrx/status/2069382946214080985) ## Tell the existing base about upgrades before they want to leave **Principle.** Reactive improvement communication is a sneaky churn vector: if you only market new versions to cold traffic to avoid cannibalizing the old product, your base assumes the old version is the ceiling and leaves when a competitor looks better. **Apply when.** You shipped a better version/feature but only announced it externally; support pitches the migration only at the cancel moment. **The move.** Proactively offer upgrades and migrations to active users — not release emails nobody reads or an Instagram post. Ask: "When we shipped the last relevant feature or version, how many active customers were told?" Offering migration at cancellation converts a clean expansion into emergency retention. Track Net Revenue Retention (NRR); in B2B SaaS, NRR above 110% separates sustainable growth from a leaky funnel. **Voice.** "The migration only showed up as a reaction to my complaint, after I started making noise." **Source.** [@richardrx · 2026-05-19](https://x.com/richardrx/status/2056715097796411514) ## Design the cancel screen — it's your last conversation, not a form **Principle.** The cancellation screen is the most ignored yet one of the most important pages in the product; treating it as a bureaucratic form wastes your final chance to retain. **Apply when.** Cancel flow is just "Are you sure?" with two buttons, or Stripe's default template, while signup was crafted with care. **The move.** Three plays: (1) Show concrete loss — "You'll lose access to relationship data on your 476 configured clients and 8 months of history"; concrete loss outweighs abstract benefit (loss aversion). (2) Offer an alternative before goodbye — "Pause 30 days instead?" or one more free month (ChatGPT nails this). (3) Collect the reason usefully via an open question — "What was missing for you to stay?" — not a dropdown that rarely lists the real reason. **Voice.** "If you invested to bring your user here, invest the last 30 seconds trying to keep them." **Source.** [@richardrx · 2026-05-13](https://x.com/richardrx/status/2054562119962501186) ## Churn starts on the landing page, not at cancel **Principle.** If the LP promises one thing and the product delivers another, you create an expectation debt that charges interest every day the user thinks "this isn't what I expected" — and the disappointment is pre-programmed even if the product is excellent. **Apply when.** 30-day churn is high but NPS is fine — the problem is likely what you promised before they entered, not the product. **The move.** Audit three common mismatches: (1) result promise vs. tool delivery ("Increase sales 30%" → a metrics dashboard); (2) simplicity promise vs. complex product ("Set up in 5 minutes" → 47 fields, 3 integrations, 20-min tutorial); (3) promise aimed at the wrong ICP (LP speaks to a 2-person startup; product was built for a 15-person team at scale). Recalibrate the promise to match real delivery and ICP. **Voice.** "The user bought a result and got a colorful spreadsheet." **Source.** [@richardrx · 2026-04-29](https://x.com/richardrx/status/2049568514311172355) ## Anchor one-time-job products to a recurring life event **Principle.** A product hired to solve a one-off problem generates structural churn: a user who loves it and still cancels isn't unhappy — they finished the job they came to do, and there was no continuous value to bring them back. **Apply when.** You have 4.2 stars and positive NPS yet rising churn; the product solves a point problem (resume builder, contract/legal-doc generator, data migration tool, pitch-deck builder, due-diligence platform). **The move.** Use jobs-to-be-done thinking. Instead of faking engagement, anchor the product to an event that already recurs in the user's life and returns yearly without a push. Ask: "If the job my product does is finished, what life event justifies the user coming back?" If there's no answer, it's a business-model problem, not a product problem. **Evidence.** TurboTax (US income-tax software) tied itself to tax season, turning the product into a ritual because the event makes the use inevitable. **Source.** [@richardrx · 2026-04-24](https://x.com/richardrx/status/2047620778338795918) ## Treat support volume as a design problem, not a staffing one **Principle.** What looks like a support problem is usually a design problem — you cut ticket volume during onboarding itself, with an interface that answers questions before they're asked. Low-ticket digital products generate up to 3x more support than conventional tickets. **Apply when.** Support is your biggest bottleneck, especially with low-ticket/impulse-buy products; you're tempted to just automate tickets. **The move.** Three drivers of low-ticket support load: different buyer profile (less patience, less digital familiarity, more expectation of human help); impulse purchase (low friction → buys without understanding → seeks support); inverted opportunity cost (asking is easier than searching). For SaaS, redesign the journey: contextual in-product FAQ, self-answering UI. Automating support treats the symptom; redesigning the journey fixes the cause and can cut churn too. **Evidence.** An old McAfee case cut support volume by 90% by implementing an FAQ — plain text, no chatbot. **Source.** [@richardrx · 2026-04-23](https://x.com/richardrx/status/2047289409238712726) ## Strip the jargon before you blame onboarding **Principle.** Churn that looks like a product problem is often a language problem: a technical founder writes product and sales copy in jargon, the ICP buys on a leap of faith, never perceives value, accumulates small disappointments, and cancels — looking like a missing feature on the dashboard. **Apply when.** Churn is high and you've already revised onboarding and product — revise language and structure next. **The move.** Watch two biases: the curse of knowledge (you know too much and forget the other person doesn't) and the easy-speech bias (simple language reads as more trustworthy and raises awareness). Rewrite dense, jargon-heavy copy into plain language even for complex topics. **Visual.** Side-by-side: a dense, legalese contract clause (red X) vs. a plain-language rewrite "In this contract you authorize the bank…" (green check), with an "Easy-speech bias" callout. — `../assets/2041829519611371727__1.jpg` **Voice.** "On the dashboard it looks like a missing feature; it was a mismatch between your discourse and their understanding." **Source.** [@richardrx · 2026-04-08](https://x.com/richardrx/status/2041829519611371727) ## Retention is raising the cost of leaving day after day — iFood's behavioral lock-in **Principle.** iFood isn't just a business model — it's Brazil's most sophisticated behavioral lock-in. Each layer (delivery, data, credit, card) raises the psychological and operational cost of leaving: sunk-cost effect plus ecosystem dependency. The restaurant doesn't stay because iFood is good; it stays because leaving got too expensive. Retention isn't a feature — it's the accumulated cost of exit. **Apply when.** Designing long-term retention/lock-in at any scale. **The move.** Learn from the mechanism, ethically: every layer of value (data history, integrations, financial products, workflow embedding) makes leaving more expensive. The design goal isn't just "satisfy" — it's to increase the cost of leaving over time. **Source.** [@richardrx · 2026-03-27](https://x.com/richardrx/status/2037543117612630126) ## Churn math: restructured onboarding can preserve R$4.8k MRR from an existing base **Principle.** 6% churn on 900 users at R$300 ARPU is 54 cancellations, or R$16.2k MRR, leaving each month. Restructured onboarding (contextual welcome + empty state + activation checklist) cut cancellations by ~30%: about 16 accounts retained, preserving R$4.8k MRR — a R$57.6k ARR run-rate or R$52.8k over the post's stated 11-month average lifetime. No new traffic, no new feature. **Apply when.** Justifying onboarding investment to a numbers-driven founder. **The move.** Keep the units explicit: monthly cancellations = base × monthly churn; prevented cancellations = cancellations × relative reduction; recovered MRR = prevented cancellations × ARPU; ARR run-rate = recovered MRR × 12. For cohort value instead, multiply recovered MRR by the stated average lifetime in months. Lower churn also raises valuation because every growth action operates with more margin. **Source.** [@richardrx · 2026-03-19](https://x.com/richardrx/status/2034571753263939621) ## Engineer addiction like a game so CS isn't a churn tax **Principle.** Customer Success is the tax you pay for a non-addictive product — if you need an army of CSMs to stop cancellations, the product failed. Your real competitor isn't another startup; it's boredom, and boredom has infinite CAC. The CNPJ buying your SaaS is the same brain that plays Candy Crush; reward neuroscience is identical. Win retention across three game-design phases. **Apply when.** Diagnose by behavior: dropout at minutes 2–8 of onboarding = Phase 1; ~1.3 logins/week when it should be 4x = Phase 2; one departing employee kills the whole account = Phase 3. LTV:CAC below 3:1 means you're funding a product that can't stand organically. **The move.** **Phase 1 — Time-to-value vs. cognitive load:** ditch the setup wizard (asking work before delivering value reads as hostile territory in 10 seconds); use progressive disclosure, let users create and see results before asking for email/card. Mechanism: Zeigarnik effect (incomplete-loop tension) + endowment effect (people value 3x more what they helped build). Empty states must sell the dream — never show "0 data" or blank templates; populate a demo simulating day-30 usage. **Phase 2 — Habit loop / retention as biology:** passive software that only reacts is a failure to build dependency; ship proactive variable rewards. The mesolimbic reward system releases dopamine on anticipation, not the reward itself; predictable rewards (monthly report) build tolerance, variable ones ("we detected a positive anomaly yesterday") keep the loop alive. Convert vanity metrics into loss-aversion triggers: "Your team broke a record and you haven't seen it" + temporal data scarcity ("sync in 24h or lose the weekly benchmark"). **Phase 3 — Defensive moat:** single-player products die when the champion leaves — you built dependence on a person, not the org. Build multiplayer mode + data debt via social switching cost + network effects. Make User A's work block/depend on User B; reports needing multi-stakeholder approval; dashboards aggregating 3 departments. When quitting requires an alignment meeting across Sales, Ops and Finance, you reach negative churn by bureaucratic inertia; accumulated datasets add organizational endowment effect. **Voice.** "Stop blaming the customer. Your product is boring. And in the attention game, boring is bankruptcy." **Source.** [@richardrx · 2026-01-30](https://x.com/richardrx/status/2017274698699067466) ## The 3 biggest churn reasons — and the fix for each **Principle.** Most churn traces to three causes, each with a distinct fix. (1) Bad onboarding → gradual guided immersion to what users value most, a Zeigarnik progress bar (incompleteness nags), and targeted tooltips on unexplored features. (2) Missing perceived value → show user ROI in a simple dashboard (Grammarly shows words helped), promote feature discovery continuously, build community. (3) Hard/confusing interface → fix via a proper product design project. **Apply when.** Churn is high and you don't know which of the three it is. **The move.** Diagnose first: users who never reach value (activation) vs users who reached it and still left (perceived value) vs users who struggled (interface). Each has a different owner and a different fix — don't treat all churn as one problem. **Source.** [@richardrx · 2025-12-17](https://x.com/richardrx/status/2001408166404530231) -
conversion-and-landing-pages.md 27.2 KB
# Conversion & Landing Pages > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## Performance is conversion: 31% better LCP → +8% sales (Vodafone A/B) **Principle.** You can raise conversion before opening Figma — web performance is a conversion lever, not an engineering nicety. Vodafone Italy A/B tested web-vitals optimization (LCP 31% better than control, same offer/creative/screen, 100k clicks and 34k visits/day per variant, paid traffic): +8% sales, +15% lead-to-visit, +11% cart-to-visit. **Apply when.** Founders separate "conversion work" from performance work. **The move.** Treat LCP/web vitals as a conversion experiment with the same rigor as copy tests — especially on paid traffic where every bounce is paid for. **Source.** [@richardrx · 2026-08-04](https://x.com/richardrx/status/2084589988843299217) ## Compliments aren't validation — "what's missing for you to PIX now?" is **Principle.** Everyone loves your idea, nobody bought. Compliments are free and worth nothing (like your freemium). The simplest validation test: try to sell. If you can't close inside your ICP, ask directly: "Falta o que pra você fazer o PIX agora?" ("What's missing for you to send the PIX instant payment right now?") The pause reveals the truth — either the real objection (your build list) or excuses (the "loved it" was just politeness). Follow up: "If it had that, would you pay now?" Then do 20 sales this way. **Apply when.** Collecting praise but no revenue. **The move.** Sell before building. Richard sold 20 subscriptions off a gray clickable wireframe — the QR code wasn't even real. Nobody said "paint the wireframe"; they asked for invoices and a second mechanic login. Those doubts became sales arguments and FAQ items. The gray was enough to prove the only thing that mattered: people with the pain and in a hurry to pay. Design came after, to scale what conversation already proved sells. **Source.** [@richardrx · 2026-07-07](https://x.com/richardrx/status/2074539418266812580) and [@richardrx · 2026-06-24](https://x.com/richardrx/status/2069743203863962080) ## "Paint the button" is judging the last line of a long cascade **Principle.** The visual layer of a landing page is the tip of a cascade that begins at the ICP — so "make it more colorful" critiques the *end* of a process as if it were the start. **Apply when.** Gathering or acting on LP feedback, or reaching for button color first. **The move.** Work the cascade in order: ICP → the buyer's **awareness level** (Eugene Schwartz's 5 stages) → what you say and how → visual positioning (tone → form, color, type, space). Low awareness: open on the problem, name the pain in the first fold, then the mechanism and your fix. Higher awareness: go straight to your advantages vs. alternatives. Jump to button color and you've silently (and probably wrongly) answered who you sell to, their awareness, which pain, and what tone. **Voice.** "They're looking at the end of a process and thinking it's the beginning." **Source.** [@richardrx · 2026-06-23](https://x.com/richardrx/status/2069469303464730988) ## Scaling cold traffic is an honesty test for your page **Principle.** Conversion measured on warm audiences (existing followers) is inflated — they forgive the page's flaws. Only cold traffic reveals how much of your rate is the page versus borrowed trust. **Apply when.** Ad spend goes up but revenue barely moves, and the conversion rate "drops" even though you fixed nothing. **The move.** Treat any baseline built on warm public as fiction, not a performance number. When you scale budget into cold traffic and the rate collapses, that gap is the page's real ceiling — fix the obvious page defects first, then judge media. **Evidence.** A founder tripled ad spend; revenue rose only 11%. Warm-traffic conversion of ~3% (driven by Instagram followers) cratered to 0.5% on cold traffic; fixing the obvious lifted it to 2% — 4x the real number. **Voice.** "Scaling budget into cold traffic works like an honesty test: it shows how much of your conversion is your page and how much is borrowed trust." **Source.** [@richardrx · 2026-06-08](https://x.com/richardrx/status/2063972594223661127) ## Test hero comprehension with a stranger from your ICP **Principle.** The cheapest usability test nobody runs: show your LP hero to one person for 5 seconds, take it away, ask "What does this product do? For whom?" If they can't answer, the hero failed — no matter how pretty it is. In those seconds the brain asks three questions, almost in order: what is this → is this for me → why should I care now. The mechanism is cognitive load: every second spent decoding what you do is a second closer to giving up — clarity beats cleverness at the top of the funnel, always. **Apply when.** A hero trades clarity for "creativity" ("Revolutionize your workflow" doesn't say what it does; "The definitive productivity platform" doesn't say for whom). **The move.** A hero needs: (1) a headline saying what the product does, in the customer's language, not internal jargon; (2) a subheadline nailing the ICP and the concrete result; (3) real visual proof — a screenshot of the product working, not a generic smiling illustration; (4) a specific CTA; (5) immediate social proof (a logo or a number) above the fold. Specificity sells: "Controle de comandas pra oficina mecânica" ("Work-order control for auto repair shops") beats "Software de gestão" ("Management software"). If you covered everything on the page except the hero, could a stranger from your ICP say what you sell in 5 seconds? Read with "Pass the 5-second test — lead with the problem, not the feature" (2026-05-01): that post argues for a pain-led headline, this one for a what-it-does headline — both demand the what / for whom / why-now answers inside 5 seconds. **Source.** [@richardrx · 2026-05-29](https://x.com/richardrx/status/2060409264683044995) ## Write the CTA microcopy, not the button color **Principle.** The CTA label moves conversion far more than button color or shape — it's the last thing the user reads before deciding, so it must reduce the mental effort of simulating what happens next. **Apply when.** A technical founder is A/B testing button colors for weeks over a 0.3% (non-significant) delta while the label still says "Sign up" with no click trigger. **The move.** Make the CTA answer the three questions the brain asks before clicking: (1) what happens when I click, (2) how long it takes, (3) what it costs/commits. "Sign up" answers none; "Start free in 30s" answers two. Add a click trigger (the small line under the CTA) to answer the rest and break an objection: "Start Free Trial" + "14 days, no card". Rooted in outcome bias and Construal Level Theory (making the outcome concrete). **Voice.** "The button is the last thing the user reads before deciding — treat it as such." **Source.** [@richardrx · 2026-05-25](https://x.com/richardrx/status/2058875777739866490) ## Cut CAC by filtering on the landing page, not the media **Principle.** High CAC is rarely a media problem — it's usually a filtering problem. The landing page can qualify leads before the form, killing deals that were never going to close. **Apply when.** Clicks become leads, leads become SDR calls, calls don't close, and founders react by swapping creative or channel (or blaming the SDR). **The move.** Pull three filtering levers so the lead self-selects without feeling filtered: (1) copy specificity — "Cash flow for service providers billing R$500k–R$3M" beats "Organize your finances"; (2) visible pricing — screens out no-budget leads so sales only meets real objections; (3) a qualification question as the first interaction (or copy/examples that play that role). CAC is cost per closed deal, not cost per lead. **Evidence.** If you close 1 in 50 leads, dropping to 30 leads with 1 close nearly doubles media efficiency — same spend, lower CAC. **Voice.** "The lead with no money won't magically generate money between the landing page and the sales call." **Source.** [@richardrx · 2026-05-18](https://x.com/richardrx/status/2056385204785213446) ## Aim for 4.2–4.5 stars, not a perfect 5 **Principle.** A flawless rating reads as fake; consumers distrust unanimity. A profile that includes constructive criticism feels more authentic and converts better than pure praise. **Apply when.** Building or curating reviews/ratings and social proof on a landing page or product. **The move.** Let imperfection show. Stack the highest-converting combination: a detailed case study with quantifiable ROI, ideally a video testimonial from a brand recognizable to your ICP, plus customer logos. Avoid the common failure — social proof done badly: identical cards, first-name-only, all 5 stars, generic avatars instead of a real photo. Make each review verifiable (e.g., link to the actual LinkedIn post). **Evidence.** Northwestern: purchase probability peaks at 4.2–4.5 stars, not 5. Testimonials lift LP conversion up to 34% (VWO); 5+ reviews → 270% more likely to be bought (Yotpo); 93% read reviews before buying (BrightLocal). **Visual.** A social-proof wall done right: real faces, names + roles, verifiable reviews, and recognizable client logos (Volkswagen, Coca-Cola, Samsung, Itaú, Volvo, DocuSign, Hotmart) under a "+10,000 professionals" headline — `../assets/2054910531132183030__1.jpg` **Voice.** "Credibility drives conversion." **Source.** [@richardrx · 2026-05-14](https://x.com/richardrx/status/2054910531132183030) ## Compress the decision window — shorten the path to action below the path to doubt **Principle.** The purchase decision is mostly made before checkout. Conversion is architecture: the user converts when the path to the action is shorter than the path to doubt, because every extra second of deliberation raises the odds they close the tab. **Apply when.** You're optimizing the checkout, CTA, or headline while ignoring the deliberation time upstream. **The move.** Compress decision time two ways: pressurize the environment with real scarcity ("Only 1 room left at this price", "Booked 3 times in the last hour") — driven by loss aversion (Kahneman: losing hurts up to ~2x more than the equivalent gain), so "1 left" registers as "I'll lose this"; or remove steps entirely (Amazon's patented 1-Click ordering). **Evidence.** Booking runs 1,000+ simultaneous experiments (per Lukas Vermeer, 8 yrs leading experimentation); showing sold-out hotels alongside available ones *raised* bookings by sharpening perceived scarcity. **Voice.** "The user converts when the path to the action is shorter than the path to doubt." **Source.** [@richardrx · 2026-05-11](https://x.com/richardrx/status/2053832356293738914) ## Don't clone the page — the converting layer is invisible **Principle.** A converting sales page is the visible shell of an invisible system. Copying the layout copies what's cheapest to produce; the expensive part (research) stays invisible and gets left behind. **Apply when.** A page "looks like it works" and you're tempted to clone it for your own offer. **The move.** Before copying, ask: what on this page is a function of the *product*, and what is a function of the *customer research* done before writing each line and placing each element? The hidden layer is customer vocabulary pulled from interviews, objections ordered to the ICP's specific fear, social proof hand-picked to resonate, and a core promise tuned to the stated desire. This error has a name: cargo cult — replicating the visible ritual hoping to summon the result, without grasping the causal mechanism. **Evidence.** Two ~95%-identical pages, same niche/offer/order: 4% vs 0.6%. The 4% page belonged to Richard's client; the 0.6% was a near-pixel clone by a builder — who unknowingly DM'd the original team to complain it wasn't converting. **Voice.** "There's a name for copying the form expecting the function. It's called cargo cult." **Source.** [@richardrx · 2026-05-09](https://x.com/richardrx/status/2053086365781205142) ## Pass the 5-second test — lead with the problem, not the feature **Principle.** A visitor scans your LP for ~5 seconds. If they can't answer what it does, who it's for, and why they should care, they leave — they won't stay to figure it out. Conversion begins on the first line. **Apply when.** Your hero opens by describing what the product *is/does* (a feature/category) instead of the visitor's pain. **The move.** Open with the visitor's problem, not yourself. "AI-powered project management platform" → meh; "Your team loses 6 hours a week hunting for information" → keep going. One talks about itself, the other talks about me. If the first line doesn't connect with the pain, the rest of the page goes invisible. **Voice.** "If you who built it can't answer in 5 seconds, your visitor can't either." **Source.** [@richardrx · 2026-05-01](https://x.com/richardrx/status/2050280273682510230) ## Fix contrast, layout, and trust before rewriting copy **Principle.** The brain processes three pre-verbal variables — contrast, on-screen placement, and trust — before it reads the words, and they usually move the needle more than any headline. **Apply when.** You're rewriting home copy for weeks chasing conversion without touching the visual/attentional layer. **The move.** (1) Contrast is relative to surroundings, not an isolated color — a big, differently-shaped button in whitespace is *seen before it's read* (accessibility ratio 4.5:1 is a floor, not the goal). (2) Placement: Fitts's law (closer, bigger targets get clicked more) plus the F-pattern (Nielsen Norman eyetracking) — a CTA bottom-right with no visual anchor sits outside the attentional map. (3) Trust is built in four reinforcing layers: a real (non-stock) human face, a known brand or specific verifiable proof, an offer that fits the stated problem, and a solution mechanism logically coherent with the promise. When all four align, the user converts without knowing why; when one fails, they invent a rational reason to leave. **Voice.** "Optimizing copy without working contrast, placement, and trust is masking the symptom." **Source.** [@richardrx · 2026-04-28](https://x.com/richardrx/status/2049215050997784774) ## Specificity is the difference between decoration and persuasion **Principle.** Generic LP copy gets discarded by the brain; specific messages are processed faster and generate more trust. A converting LP shows the *transformation* the product causes, not just what it does. **Apply when.** Your hero reads "The complete platform for [generic category]", a 5-feature subtitle, "Start free", and no real social proof — the default Brazilian SaaS template. **The move.** Fix the four standard failures: (1) "Complete platform" means nothing → "Cut new-dev onboarding time 40%"; (2) features on top → lead with the pain, feature as the solution (nobody wakes up wanting a "custom report feature"); (3) "Start free" is the weakest CTA (no value, no risk reduction, no urgency) → "See your first report in 2 minutes"; (4) "Used by Company X" proves nothing → "We cut Company X's churn from 12% to 6%". One page describes, the other sells. **Evidence.** Across 30 Brazilian SaaS LPs: descriptive vs transformation-led ran 0.5% vs 3% conversion — same traffic, 6x more leads — driven by argument sequence and promise specificity, not visual design. **Source.** [@richardrx · 2026-04-17](https://x.com/richardrx/status/2045154631974539650) ## Users scan, they don't read — give the primary action obvious contrast **Principle.** Users scan interfaces, weighing cognitive effort against payoff, and ignore most of it. They enter with one question — "What can I do here?" — so the primary action must win on contrast within seconds. **Apply when.** The main CTA competes with 6 other elements, or the most important action is buried inside a dropdown that requires a click to reveal. **The move.** Make the primary action visually dominant so it's found in a glance. If the key button competes with too many elements it loses prominence; if it's hidden behind interaction it's effectively invisible. Leverage image superiority to guide attention down the page. **Visual.** A login screen annotated with two biases — "limited choice bias" (a single dominant Google sign-in button) and "image superiority" (a vivid hero illustration pulling the eye) — `../assets/2042013751742705816__1.jpg` **Source.** [@richardrx · 2026-04-08](https://x.com/richardrx/status/2042013751742705816) ## Judge a landing page by conversion, not by beauty **Principle.** A landing page isn't a beauty contest — it has one measurable job: qualify the user and lower CAC by turning traffic into revenue. Evaluating a static image with no context is nearly useless. **Apply when.** The timeline turns into "AI vs human" / "who designed it better" debates that ignore conversion, while obvious conversion flaws go unaddressed. **The move.** Treat conversion as a continuous loop, never an isolated event: form a thesis → ship the interface and collect data → find where the user hesitated, form a new hypothesis, and optimize the next cycle. The debate defaults to aesthetics because it's easier to opine on looks than to measure results — which is exactly what keeps most LPs underperforming. **Visual.** A side-by-side "Google Stitch vs Human" LP comparison being judged on looks alone — context for the argument, not a model to copy — `../assets/2034638793219694734__q__1.jpg` **Voice.** "Product design doesn't compete with art. It sells." **Source.** [@richardrx · 2026-03-19](https://x.com/richardrx/status/2034638793219694734) ## Converting pages are often ugly — design for performance, not applause **Principle.** There's an invisible war between branding (looking good in the screenshot) and performance (conversion, retention, expansion). The page that puts money in the till is often visually aggressive, text-heavy, and far from the Apple aesthetic founders dream of. **Apply when.** You're choosing between a page that wins design compliments and one built to convert. **The move.** Engineer the converting pattern even if the artist in you cringes: (1) one obvious attention point — eyes go where they must; (2) a high-contrast CTA with redundancy; (3) a clear promise delivering easily-perceived value; (4) guarantee, social proof, and a free element to reduce risk aversion; (5) organic images by the second fold to back the offer and build trust. **Evidence.** The analyzed page (quoted): 100 visits → 19 signups, a 19% conversion rate. **Visual.** An "ugly-but-converts" waterproofing LP: urgency bar, high-contrast orange CTAs, a short above-the-fold form, stat row (12,500+ / 4.9★ / 20+ yrs / 100%), and a trust-badge strip (incl. lifetime warranty) — `../assets/2023777916673220817__q__1.jpg` **Voice.** "Some LPs go after compliments, others go after conversion." **Source.** [@richardrx · 2026-02-17](https://x.com/richardrx/status/2023777916673220817) ## Design the features page for skimming, not reading **Principle.** Almost nobody reads your features page — they skim three bullets and hunt for a demo video. Design for that behavior (with the caveat that the more conscious, technical slice of your ICP *will* read the detail). **Apply when.** You're packing a features page with dense prose expecting visitors to read it top to bottom. **The move.** Front-load three crisp bullets and make a demo video easy to find; let the deep copy serve the minority of technical, high-awareness buyers who actually read it. **Source.** [@richardrx · 2026-02-09](https://x.com/richardrx/status/2020815036168437814) ## No clicks out, plus brutal CTA contrast **Principle.** For conversion you want little distraction and lots of redundancy. Any clickable element that leads off-page is lost conversion — no matter how prestigious the source. **Apply when.** You're tempted to link out to a glowing NY Times piece or a top influencer's video, or your CTA blends into the interface. **The move.** Kill outbound clicks entirely. Make the CTA generate strong contrast against the rest of the interface in position, size, and color — if it isn't easy to notice and click, it won't be clicked. **Visual.** A wireframe showing the level of contrast a CTA button needs against the surrounding interface — `../assets/2019514730696565238__1.jpg` **Source.** [@richardrx · 2026-02-05](https://x.com/richardrx/status/2019514730696565238) ## Debug ICP and awareness level before touching design **Principle.** Conversion is context engineering — who arrives, with what pain, at what stage, needing what proof. Two invisible variables must be debugged before writing a line of code: the Who (ICP) and the When (awareness level). Visual design comes last. **Apply when.** Your LP underperforms and you reach for button-color tweaks; or you define ICP by demographics. **The move.** (1) Reject the demographic fallacy: geography/age/income is a bad proxy — King Charles and Ozzy Osbourne are demographic twins with opposite needs. Real ICP is *buying criteria* (trigger, pain, prior attempt, proof needed); persona is just biography, the spec for your user. (2) Map the visitor's Eugene Schwartz awareness level. Rule: headline speaks to the current stage; proof pushes them one stage forward. Selling "Solution" to the "Unaware" is proposing on a first date. Debug order: ICP wrong → awareness wrong → proof insufficient for the stage → only then touch visual design. Awareness → angle / hero / proof: - **Unaware** — symptom & identity / "Still doing X this way?" / simple diagnostic, checklist, benchmark - **Problem-aware** — cost & urgency / "If you have X, you're losing Y" / numbers, before/after, calculation - **Solution-aware** — trade-offs & selection / "3 ways to solve X — why the 3rd scales" / honest comparison, matrix - **Product-aware** — differentiation & proof stack / "Why us, why now" / cases, demo, objections - **Most aware** — final risk & friction / "Swap X for Y in Z days, no risk" / guarantees, onboarding, effort reduction **Visual.** Schwartz's 5 awareness stages as a rising ramp (Unaware → Problem → Solution → Product → Most Aware) — `../assets/2011427153133351046__3.jpg`; plus the demographic-twins diagram (Charles vs Ozzy, identical on paper) — `../assets/2011427153133351046__2.jpg` **Voice.** "There's no 'conversion rate' in a vacuum. There's contextualized conversion." **Source.** [@richardrx · 2026-01-14](https://x.com/richardrx/status/2011427153133351046) ## The 2026 landing page checklist **Principle.** An all-in-one checklist for a converting LP — @namyakhann's (Supafast) list, which Richard translated and endorsed in full: Hero (1 clear promise / 1 specific audience / 1 exact-action CTA / show-don't-explain visual / trust seal above the fold). Copy (headline <10 words, benefit before feature, customer language, one central transformation, scannable in 5s). Social proof (logos if you have names, metrics if you have traction, specific result testimonials, zero generic praise). Structure (Hero → Pain → Solution → Proof → CTA; max 3 feature sections; FAQ kills top 5 objections; CTA repeated 2–3x). Technical (<3s load, real mobile-first, single-scroll flow). **Apply when.** Auditing or building any LP. **The move.** Run the checklist top to bottom. Mantra: Clarity > creativity. Result > feature. Speed > polish. If it doesn't convert in 2026, it's not your traffic — it's your page. **Source.** [@richardrx · 2026-01-02](https://x.com/richardrx/status/2007216871607771303) ## Click triggers: one line of risk-reducing microcopy next to the CTA **Principle.** A single line of text reducing perceived risk can save conversion — in CRO these are "click triggers" (marketing calls it objection-breaking): "Lifetime guarantee," "Free shipping," "7 days free, no card." It's certainty placed on top of a known ICP doubt. **Apply when.** Users hesitate right before the CTA. **The move.** Find the real objections by talking to customers and reading complaint pages (ReclameAqui) and app-store comments; then test which click trigger performs best. No mystery, just work — and it works. **Source.** [@richardrx · 2025-12-19](https://x.com/richardrx/status/2002076748112875558) ## Founder LP guide: platform doesn't matter, load time does; proof must outweigh the promise **Principle.** Profits are more sensitive to conversions than to costs, and the landing page is often the first gate between a founder's product and its users. The platform matters less than speed, clarity, contrast, proof, and direct action. **Apply when.** Building a first LP cheaply. **The move.** Follow five rules: (1) use any platform, but deliver content fast and target an "A" on GTMetrix; (2) lead with a short pain or clear benefit, then make the promise tangible in the subhead; (3) create visual contrast with what the ICP sees daily; (4) ensure proof ≥ promise, moving from strong/shallow at the top to denser evidence below; (5) use direct CTAs tied to the outcome about every 1.5 sections. **Voice.** "Nobody wants to know about your product's features — they want what it generates or the pain it kills. Not 6GB of space, 3,000 songs in your pocket." **Source.** [@richardrx · 2025-11-10](https://x.com/richardrx/status/1987842649261261240) ## Match CTA microcopy to the funnel stage **Principle.** Button text should change with the user's progress in the funnel — the verb matches the mental state at each stage. First interaction: "Descubra como funciona" ("See how it works"). Product page: "Quero esse produto" ("I want this product"). Checkout: "Finalizar minha compra" ("Complete my purchase"). Short (≤4 words), clear, directional. This discreet personalization raises perceived control, confidence, and conversion. **Apply when.** One generic CTA label serves the whole journey. **The move.** Audit every CTA against the stage it appears in; test stage-matched variants. Small adjustments, large results. **Source.** [@richardrx · 2025-11-07](https://x.com/richardrx/status/1986836679953719632) ## Real humans outconvert models — banner blindness explains why **Principle.** Highrise, the 37signals CRM, tested homepage variants with different human figures; real users and actual team developers converted best on average — above stock-photo models. (37signals later became Basecamp.) Likely explanation: banner blindness — we learn to ignore what looks like advertising and give attention to what's organic or unusual. **Apply when.** Choosing imagery for LPs and proof sections. **The move.** Prefer real users/team over polished models; user-generated reviews and simple real photos often beat studio shots. Chinese sites exploit this at scale with gamified UGC. **Evidence.** The stock-model / team-developer comparison is the post's. 37signals' own writeup of the test ([Signal v. Noise, "Behind the scenes: A/B testing part 3"](https://signalvnoise.com/posts/2991-behind-the-scenes-ab-testing-part-3-final)) photographed only real Highrise customers — no stock models, no staff — and found the specific person barely mattered: the lift came from the person-photo layout beating the long-form page. **Visual.** The Highrise homepage test side by side — the illustrated "original design" vs the "person design" fronted by a real customer's photo and quote, marked +102.5% — `../assets/1985681720104903142__1.jpg` **Source.** [@richardrx · 2025-11-04](https://x.com/richardrx/status/1985681720104903142) -
dashboards-and-data-viz.md 4.2 KB
# Dashboards & Data Visualization (Retention Surface) > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Dashboards aren't reporting tools — they're retention surfaces. A good dashboard eliminates churn by delivering so much value the user feels the need to return. ## Removing information creates room for direction — the dashboard should say what to do with the data **Principle.** Good product design work is mostly *removing*: showing less and giving clarity to what remains, based on what the user needs on that screen. Removing information opens space for direction — the app stops just showing data and starts saying what to do with it. That's the actionable layer. **Apply when.** A dashboard shows everything but guides nothing. **The move.** Compare before/after: giant number fighting the chart below, tabs inside tabs, bars that tell nothing → chart that breathes, selected month popping, space for a card that warns "two installments end in August, save what's left over." Less on screen = shorter learning curve; a product that guides gives a reason to return — engagement becomes retention (+LTV). **Source.** [@richardrx · 2026-07-10](https://x.com/richardrx/status/2075623473565647202) ## A good dashboard informs at a glance — like a car dashboard, the user must focus on where they're going **Principle.** A good dashboard is informative and effortless to read — the main KPI sits top-left (F-pattern), every element either earns its place or is noise. The goal isn't informing: it's eliminating churn and maximizing LTV through value so large the user feels the need to return. **Apply when.** Designing or auditing any analytics/admin dashboard. **The move.** (1) Define who it's for (ICP) — information without context is spam. (2) Everything not useful is noise — each extra line/card/icon is cognitive load unless indispensable for consuming the data. (3) F-pattern: main KPI top-left. (4) Attach meaning to data — "You generated 500 tickets" → "That's 15% above your monthly target"; use framing ("You're in the top 20%") for belonging/social proof. (5) Design for the empty state (good empty states, guide users to fill them). (6) Drive to action, not excess — an actionable panel beats a "complete" one (GA4 has everything, little usable). (7) Personalize by role — a CEO panel ≠ a marketing analyst panel. **Visual.** An annotated repair-shop dashboard ("Quadro Geral") with seven callouts: 01 logo, 02 sidebar navigation, 03 the main revenue KPI (R$57,257, ↗6.2% vs last month) top-left, 04 average ticket, 05 the Max / 12-month / 3-month / 30-day range tabs, 06 a single primary action ("Adicionar OS"), 07 the composition card's ⋮ options menu (personalize what the panel shows) — plus a revenue-composition donut, a 12-month revenue history and services / parts / outsourcing breakdown cards — `../assets/2000930776636940333__1.jpg` **Voice.** "Information without context is spam." **Source.** [@richardrx · 2025-12-16](https://x.com/richardrx/status/2000930776636940333) ## Dashboards: not a pile of gauges — every extra indicator slows the scan for what's actionable **Principle.** The original "dashboard" was a board on carriages that kept horse mud off the passengers; the first Ford T kept the design with just an ignition key and an ammeter, and gauges accumulated from there. That industrial-era aesthetic survives in luxury cars and watches — the "complications" on a Patek Philippe or a Pagani — where it's interesting; in a software dashboard it isn't. The more information on screen, the higher the cognitive load and the longer it takes to scan for what is important and actionable. A good dashboard is built around the business's main indicators. **Apply when.** Stakeholders keep asking to add "just one more" KPI. **The move.** Pick the KPI shortlist for the business type and leave the rest off the panel. E-commerce: conversion rate, average order value (AOV), CAC, customer lifetime value (CLV), cart-abandonment rate, ad return (ROAS/CPA). SaaS: MRR, churn, CAC, LTV, ARPU. Apps: DAU, MAU, retention rate, ARPU, app-store rating, engagement (session length, frequency), cost per install (CPI). **Source.** [@richardrx · 2025-11-04](https://x.com/richardrx/status/1985828780838097317) -
lp-diagnostic-framework.md 13.3 KB
# LP Diagnostic Framework > A 10-step diagnostic framework for landing pages, distilled from @richardrx's comprehensive article. Use this **before redesigning** — it identifies where a sale breaks before touching visual design. Synthesizes Eugene Schwartz awareness levels, PAS/AIDA narrative structures, and modern CRO practices. ## The Core Insight > "Percebeu que o visual aparece quase no final?" The visual layer comes **almost last** in this framework. Before opening Figma, understand: who arrives, where they came from, what they're looking for, what they already know, what problem they're trying to solve, what result they expect, what objections they carry, and what action you want to generate. --- ## SOP: The 10-Step LP Diagnostic ### Step 1: Context — Where did this user come from? **Principle.** The LP must continue the conversation that started before the "landing". Each traffic source carries a different expectation — misalignment between ad and page burns money. **Apply when.** Diagnosing any LP, especially when paid traffic scales but conversion drops. **The diagnostic questions.** 1. What's the traffic source? (Meta ads, Google, outbound, SEO, founder post, referral?) 2. What happened before the click? What promise brought them here? 3. Desktop or mobile? 4. First contact with the company or returning visitor? 5. Dedicated session or distracted mobile user? **The failure mode.** Paying expensive CPCs to send users to a page that doesn't match the ad's promise. Every mismatch = money burned. **Voice.** "Se você está pagando caro para levar um usuário até uma LP, cada desalinhamento entre anúncio e página pode virar dinheiro queimado." --- ### Step 2: ICP — Who is this page selling to? **Principle.** As a product matures, communication often tries to speak to everyone — and convinces no one. Generic ICP definitions ("B2B companies with 10-500 employees") are useless. **Apply when.** The LP uses vague, broad language; or the product has traction but copy hasn't evolved to match learned segments. **The diagnostic questions.** 1. What job does this customer need to accomplish? 2. What problem are they trying to solve? 3. What context are they living in? 4. How much does this problem cost them? 5. Which segment delivers best LTV, lowest churn, highest expansion potential? **The failure mode.** Trying to sell the same way to a 15-person startup and a 300-person enterprise. The pain changes, urgency changes, objections change, acceptable ticket changes — and the reason someone buys changes. **Voice.** "Quer me falar que tanto o G4 quanto uma oficina de bairro são seu ICP?" --- ### Step 3: Awareness Level — What does this user already know? **Principle.** The visitor's knowledge level completely changes page structure. Map to Eugene Schwartz's 5 stages (simplified to 3 operational levels). **Apply when.** Structuring any LP, or when the same page serves multiple traffic sources with different awareness. **The three operational levels.** | Level | User state | Page must do | |-------|-----------|--------------| | **Unaware** | Problem exists but isn't clear to user | Build perception, show impact of current scenario, create space for solution | | **Problem-aware** | Pain is clear, looking for a way out | Structure: pain → impact → opportunity → mechanism → solution → proof → offer → FAQ | | **Solution-aware** | Category known, comparing alternatives | Move faster to mechanism, differentiation, proof, reason to choose you | **The failure mode.** Selling "Solution" to the "Unaware" = proposing on a first date. Different LPs for different channels, segments, and funnel moments — no perfect message for everyone. **Visual reference.** Eugene Schwartz's 5 awareness stages diagram (Unaware → Problem → Solution → Product → Most Aware). --- ### Step 4: Message — What's being sold here? **Principle.** "What's being sold?" must be understandable in seconds. And it must matter to **this ICP**. **Apply when.** The hero uses generic positioning, feature-first language, or internal jargon. **The diagnostic questions.** 1. What's being sold here? 2. Can you understand it in a few seconds? 3. Does this matter to this ICP? **The failure modes.** - "Plataforma all-in-one" — says nothing - "IA de última geração" — says nothing - "Transforme seu negócio" — says nothing **The move.** Communicate: (1) what problem is being solved, and (2) what result that produces. Match the channel — if the ad promises churn reduction, the page develops that conversation. **Visual reference.** XKCD comic satirizing the gap between what users want vs. what university sites offer. --- ### Step 5: Sales Structure — Is there a narrative progression? **Principle.** Read the page as a narrative. There must be a progression leading the user from first question to decision. **Apply when.** The page reads as disconnected sections rather than a coherent argument. **The expected structure.** ``` Problem → Consequence → Opportunity → Mechanism → Solution → Proof → Offer → Risk Reduction → CTA ``` **Why it matters.** A small difference in LP efficiency can become a large difference in CAC, opportunity volume, and revenue from the same investment. **Voice.** "A LP como parte do sistema de aquisição, não como página isolada." --- ### Step 6: Value Proposition — Does the hero work? **Principle.** The hero needs three elements: headline, description, and trust element. **Apply when.** Auditing the above-the-fold section of any LP. **The three components.** | Component | Job | |-----------|-----| | **Headline** | Speaks to the problem or result (promise) that matters to this ICP | | **Description (subheadline)** | Explains how the product delivers that | | **Trust element** | Answers "Why should I believe you?" — clients, numbers, logos, results, demo, guarantee, certifications | **The move.** For SaaS at scale, show **specific evidence from the ICP you want to attract** rather than a collection of unknown logos. A case from a similar company sells more than ten unfamiliar logos. --- ### Step 7: Proof & Objections — Are objections broken during the narrative? **Principle.** Objections are broken throughout the page, not just in the FAQ. **Apply when.** The page leaves objections unaddressed until (or only in) the FAQ section. **Common objections and their counters.** | Objection | Counter | |-----------|---------| | Price | Comparative proving better cost-benefit | | Implementation | "Setup in 5 minutes, see how" | | Security | "Secure site seal" | | Learning curve | "See how this company transformed their process in 3 days with X" | | Team required | "You alone can use it, assisted by up to 50 agents" | **Why it scales with ticket.** A R$100 subscription can be impulsive. A R$1,000 or R$10,000 purchase involves more people, more questions, more perceived risk. The LP must help advance that decision. **The proof principle.** In the AI era, a real WhatsApp screenshot, a customer-recorded video, or a result capture carries more credibility than a perfect card written by marketing. **Visual reference.** The "paredão" — a social proof wall where each card links to the original LinkedIn post. --- ### Step 8: Friction + CTA — What's blocking conversion? **Principle.** Hunt everything that can hinder conversion. **Apply when.** Auditing the conversion path and form experience. **The friction checklist.** - [ ] Too many fields (cognitive overload) - [ ] Too many decisions (analysis paralysis) - [ ] Too many steps - [ ] Confusing offer - [ ] Hidden pricing without reason - [ ] Form asking unnecessary information - [ ] CTA doesn't explain the next step **The commitment level insight.** | Lower commitment | Higher commitment | |------------------|-------------------| | "Start free" | "Schedule a demo" | | "Test for 14 days" | "Talk to sales" | Each CTA places a different effort burden on the user. **The move.** The primary action must be clear and appear at the right points on the page — especially after arguments that increase purchase intent. Create the transition: "this seems relevant to me" → "I'll take the next step". --- ### Step 9: Attention & UI — How does the interface direct attention? **Principle.** The page must create rhythm, hierarchy, and focal points. **Apply when.** Visual design review — **after** steps 1-8 are diagnosed. **The failure mode.** Every section has exactly the same composition (image right, text block left) — the experience becomes predictable. **The moves.** - Vary composition when it helps the narrative - Change density, create contrast - Highlight important information (skeuomorphism helps) - Draw attention to proofs and CTAs - Control reading rhythm **What to notice.** Typography, color, grid, spacing, components, images, animations — but now each decision has a clear function. --- ### Step 10: Strangeness — Where's the personality? **Principle.** After solving the structure, personality needs to enter. An unexpected image, a metaphor, an absurd illustration, an unusual composition, or an easter egg. **Apply when.** The page works structurally but feels generic, same visual language as everyone in the category. **Why it matters.** Strangeness creates attention, differentiation, and memory. It can support brand positioning. As a company grows, it's easy to fall into pages with the same visual language, layouts, and words as everyone else. **The constraint.** Strangeness should carry a function (but not always). **Visual reference.** Car silhouettes image — "Which cars do you recognize here?" --- ## The Framework in Practice ### Diagnostic sequence ``` 1. Context → 2. ICP → 3. Awareness → 4. Message → 5. Structure ↓ ↓ ↓ ↓ ↓ 6. Hero → 7. Proof → 8. Friction → 9. UI → 10. Strangeness ``` ### Connect to metrics (for SaaS in traction) The diagnostic must talk to real numbers: - **CAC** — Cost per Acquired Customer - **Conversion Rate** — Overall and by stage - **Activation** — First value moment reached - **Trial to Paid** — Conversion of trials - **Revenue** — Not leads, revenue - **LTV** — Lifetime Value - **Churn** — Yes, the LP can affect churn (especially if it makes promises the product can't keep) ### The LP doesn't exist in a vacuum > "A LP faz parte de um sistema que começa no canal de aquisição e termina em receita." Before redesigning an LP, discover **where the sale is breaking**. It could be: - Traffic (wrong people arriving) - ICP (talking to everyone, convincing no one) - Message (doesn't resonate) - Awareness level (selling solution to unaware) - Offer (not compelling) - Proof (insufficient for the ask) - Something else entirely You can increase traffic, hire more salespeople, produce more creatives, put more money into acquisition. An LP that keeps losing opportunities in the middle of this system will keep leaking water. --- ## Theoretical Foundations This framework synthesizes several established methodologies: | Framework element | Origin | |-------------------|--------| | 5 Levels of Awareness | Eugene Schwartz, *Breakthrough Advertising* (1966) | | Problem → Solution structure | PAS (Problem-Agitate-Solution), AIDA | | Hero section pattern | Copyhackers (Joanna Wiebe), StoryBrand (Donald Miller) | | Objection handling in narrative | Classic copywriting principle | | "Strangeness" / Pattern interrupt | Marketing differentiation theory | | Context-first diagnosis | Growth/performance marketing practice | | Metrics connection | Modern SaaS operations (CAC, LTV, Churn) | --- ## Source **Framework author.** Richard ([@richardrx](https://x.com/richardrx)) — "Design for startups" **Original article.** [Um framework para descobrir por que uma LP não converte](https://x.com/richardrx/status/2089755232511123628) — published 2026-08-18 **Visual assets in original.** Cover image, niche example (harmonização facial), Schwartz awareness diagram, XKCD comic, Baralho de Vieses hero, "paredão" social proof wall, car silhouettes. --- ## Integration with RCD Workflow Use this framework as the **diagnostic phase** before applying specific RCD principles: 1. Run the 10-step diagnostic 2. Identify the breaking point(s) 3. Open the relevant RCD reference file for principles addressing that break 4. Apply principles with mechanism, citation, and evidence 5. Log to `rcd-log.md` | Breaking point identified | Open RCD reference | |--------------------------|-------------------| | Steps 1-4 (Context, ICP, Awareness, Message) | [positioning-icp-and-gtm](positioning-icp-and-gtm.md), [conversion-and-landing-pages](conversion-and-landing-pages.md) | | Step 5 (Structure) | [conversion-and-landing-pages](conversion-and-landing-pages.md) | | Step 6 (Hero/Value Prop) | [conversion-and-landing-pages](conversion-and-landing-pages.md) | | Step 7 (Proof & Objections) | [behavioral-science-toolkit](behavioral-science-toolkit.md), [conversion-and-landing-pages](conversion-and-landing-pages.md) | | Step 8 (Friction + CTA) | [conversion-and-landing-pages](conversion-and-landing-pages.md), [onboarding-and-activation](onboarding-and-activation.md) | | Steps 9-10 (UI, Strangeness) | [product-strategy-and-features](product-strategy-and-features.md) | | Metrics disconnected | [metrics-and-experimentation](metrics-and-experimentation.md) | -
metrics-and-experimentation.md 6.5 KB
# Metrics, Experimentation & Business Math > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## Duolingo's lesson: optimize the metric that moves DAU, not the borrowed mechanic **Principle.** Duolingo copied game mechanics twice and failed both (a Gardenscapes moves-counter: neutral; a referral program copied from Uber: +3% because the reward excluded the best users). They stopped picking mechanics and modeled which number to move: bucketing users by engagement and simulating +2%/quarter for 3 years, CURR (current-user retention rate) had ~5x the impact of the next-best metric. Then gamification worked: CURR +21% over 4 years, daily churn of best users −40%+, DAU ×4.5. Leaderboards alone +17% total learning time and tripled highly-engaged learners — because they switched to competing with users of *similar prior-week engagement* (auto opt-in = default effect, no extra tasks). **Apply when.** Adding gamification by copying a mechanic instead of finding your CURR. **The move.** Find the single retention metric that compounds your DAU before choosing mechanics. PBL (points, badges, leaderboards) is the free sample — there are ~290 gamification mechanics. Useful three: competition (defined start/middle/end missions), progress bars as trajectory achievement (not just onboarding), engagement-unlocked content (a forecast panel opens only after 30 real entries — blocked as a ladder, not a paywall). **Visual.** Duolingo's DAU curve from mid-2018 to mid-2022, marked "Started working on CURR" at the inflection, with a 4.5× arrow from there to the top right — `../assets/2081714430811730162__1.jpg` **Source.** [@richardrx · 2026-07-27](https://x.com/richardrx/status/2081714430811730162) ## Don't mistake signups for traction **Principle.** Signups are the cheapest action a user takes, so they measure curiosity, not value — especially in freemium. Real growth is whether people come back and do the action that delivers value. **Apply when.** A rising signup curve on the dashboard feels like proof of traction, particularly under a freemium model. **The move.** Treat signups as top-of-funnel only — never stop reading there. Track who returns on day 2 and day 7 (D1/D7 retention) and how many complete the value-delivering action (activation). Paid media can inflate signups while real retention stays flat. **Voice.** "The signup curve climbs with paid traffic, but usage and activation only climb with a good product." **Source.** [@richardrx · 2026-06-11](https://x.com/richardrx/status/2065082771987394651) ## Don't bet your product on an underpowered A/B test **Principle.** Most A/B tests in small SaaS lack the volume to prove anything, yet founders swap the whole product on the result. Testing without enough sample to conclude is the trap. **Apply when.** You're in traction or survival stage, ran a test for a week, saw "variant B won by 12%," and want to ship it everywhere. **The move.** Before running, compute the minimum sample size (free calculators exist); if you can't hit that floor in reasonable time, don't start. Test big things (headline, offer, pricing structure, onboarding) since large effects need less sample. Never stop a test because the number looked pretty mid-way. With no volume, decide by qualitative research — five good interviews beat an underpowered A/B test. Beware the law of small numbers and confirmation bias. **Evidence.** ProfitWell is categorical: don't A/B test price — you'll never have the volume or context for it to mean anything. **Source.** [@richardrx · 2026-06-01](https://x.com/richardrx/status/2061463480868229189) ## Celebrate signal quality, not list size **Principle.** A waitlist exists to validate that a pain is one people pay to solve — not to sell. Absolute size is a vanity metric; conversion-weighted quality is the real signal. **Apply when.** You launch a waitlist and feel tempted to celebrate raw headcount. **The move.** Convert size to expected customers before reacting: a good waitlist converts 15–20% to paying, above 30% is excellent. 53 people at 20% = 10 customers; 1,000 people at 1% = 10 customers — same result, different perception. Until there's a transaction, there's no validated hypothesis. **Voice.** "Founders celebrate the size of the list when they should celebrate the quality of the signal." **Source.** [@richardrx · 2026-04-17](https://x.com/richardrx/status/2045094511106220220) ## Translate churn points into LTV, not percentages **Principle.** Most people watch churn %, but few compute what each point costs in accumulated LTV over 12 months. Cutting churn is a cash lever that needs no price hike or new acquisition. **Apply when.** You're staring at a churn percentage and treating it as a vanity number rather than money. **The move.** Do the churn→LTV math: at 25% monthly churn on 1,000 users you must add 250 new users/month just to break even — kill paid traffic and the product dies in ~4 months. Then improve retention without Figma: define the Aha Moment, measure time-to-value (TTV) from signup to it, ask "how do I deliver this faster?", break it into micro-wins if you can't, then test, measure, repeat. **Evidence.** Finance SaaS, ARPU R$120: cutting churn 5 points (25%→20%) is +R$72,000/year in cash, with no price change and no extra acquisition. **Source.** [@richardrx · 2026-04-06](https://x.com/richardrx/status/2041184077106004289) ## Nine product metrics, each telling one thing **Principle.** ARR = size (not necessarily health). Burn rate = risk (time until death). CAC = efficiency (but obsessing over lowering it can worsen conversion with a less-qualified cohort). DAU/MAU = engagement (<20% = bad sign). LTV = product (does the customer see value?). Churn = fit (user doesn't understand or see value → cancels). NRR = real growth (>100% = good). Gross margin = model (<70% in SaaS = problem, except AI wrappers). Runway = survival (<12 months = danger). Metrics are like a blood panel — one bad reading is critical, but all-good is real health. **Apply when.** A founder fixates on one number or conflates what each metric diagnoses. **The move.** Use each metric as a diagnostic for its matching layer, then read the full panel before prescribing a fix: ARR alone cannot prove health, low CAC can hide a weak cohort, and strong growth without margin or runway can still be fatal. Treat one bad result as a specific warning and the bundle as the business's health check. **Source.** [@richardrx · 2026-01-12](https://x.com/richardrx/status/2010675817483817384) -
onboarding-and-activation.md 23.2 KB
# Onboarding & Activation > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## Map the whole journey to value — then fix the biggest drop, not the first step **Principle.** Founders rush to the top of the funnel when activation falls, but the leak is usually in the middle — the step where effort is already high and the user hasn't seen proof it's worth it. Method: (1) Define what "value" is (the first moment the user gets the promised result — measurable, visible in data). (2) List every step between signup and that value (every screen, click, wait, field — always more than you remember). (3) Measure drop per step; find the steepest fall. (4) Fix the biggest drop first — that's where the money is. (5) Diagnose why: friction (cut), confusion (direct attention), ordering (deliver value before asking effort). **Apply when.** Activation is low and you're not sure where the leak is. **The move.** Count the steps before first value — each is a chance to quit. High activation lives in the shortest path to first result, not the most complete product before it. Almost every founder has this map in their head and never on paper; the head version always looks shorter. **Source.** [@richardrx · 2026-07-08](https://x.com/richardrx/status/2074814716824731651) ## An onboarding video welcomes — it doesn't teach **Principle.** A good onboarding video isn't a manual (nobody reads their car's or iPhone's). It welcomes, builds connection, shows the product at a glance, and points to where value comes fastest. **Apply when.** Designing first-run onboarding or a welcome video. **The move.** Aim it at cutting TTV, support tickets, and the lost feeling — not at educating. Length follows your ICP's urgency (someone rushing vs. someone happy to build Lego). No actor or fancy set — Richard recorded his in Screen Studio and it beat many big products'. **Visual.** A "Your account was created!" welcome modal with an embedded intro-video thumbnail and a single "Next" CTA — `../assets/2067987722954735812__1.jpg` **Voice.** "Your product doesn't need a manual either — have you read your car's?" **Source.** [@richardrx · 2026-06-19](https://x.com/richardrx/status/2067987722954735812) ## Rising MRR with rising churn means you lost them on day one **Principle.** When MRR and churn climb together, the user didn't leave in month 2 — they were lost the first day, dropped into a dead empty-state dashboard with nothing guiding them to value. **Apply when.** Churn is creeping up and you're tempted to blame the product or add features. **The move.** It isn't a feature gap — measure **TTV** (time-to-value) and get obsessed with shrinking it. CAC, LTV and activation are *product* metrics, not marketing; with weak retention, acquiring more just fills a leaky bucket faster. **Voice.** "It took two months to cancel, but you lost him the first day after signup." **Source.** [@richardrx · 2026-06-18](https://x.com/richardrx/status/2067591574138052804) ## Measure activation, not signups **Principle.** Technical founders track the wrong onboarding metrics; signups, session time, and tour completion all flatter you without proving the user reached value. **Apply when.** You're judging onboarding by signups, time-in-product, or "completed the tour." **The move.** Swap each vanity metric for its real counterpart: signups → activation rate, session time → time-to-first-useful-action (and its repetition), onboarding completion → D7 retention. Find your aha moment empirically: look at what every paying customer did in week one that churned users didn't (often a collaborative act — invite, share, comment). Anchor on TTV/time-to-value. **Evidence.** Userpilot benchmark (547 companies): avg TTV 1d 12h 23m; top performers under 5 min. SaaS activation rate avg 30–37%, top quartile 40%+, under 20% = structural problem. D7 retention avg 10–15%, over 30% is strong. **Voice.** "If you can't say how long your user takes from signup to aha moment, you're not measuring what matters." **Source.** [@richardrx · 2026-05-27](https://x.com/richardrx/status/2059616501544468624) ## Put friction in the right place, not zero friction everywhere **Principle.** Friction in the wrong place kills the product; friction in the right place qualifies and retains. "Less friction" is not a universal law. **Apply when.** You're reflexively cutting clicks and fields, or your human sales team is doing qualification the product should do. **The move.** Remove friction at trial signup (it kills acquisition), but add calibrated friction in three spots: (1) trial with card upfront filters commercial intent; (2) mandatory onboarding before the dashboard turns users into power-users faster; (3) a 6–8 field enterprise demo form (role, team size, current tool, budget, timeline) lowers lead volume but raises close rate. The mechanism is effort justification (Aronson & Mills, 1959) — same root as the endowment and IKEA effects. **Evidence.** ChartMogul 2026: opt-in trial (no card) converts 8.9%; opt-out (with card) converts 31.4%. Superhuman requires a 30-min human call before access. **Voice.** "How much qualification effort is your human seller doing that the product should do before they even step in?" **Source.** [@richardrx · 2026-05-21](https://x.com/richardrx/status/2057436163841941980) ## Never ship a blank dashboard **Principle.** The empty dashboard arrives at the user's peak of curiosity and answers it with a void — this is where most SaaS loses the trial. Every second spent deciding what to do is a second closer to quitting. **Apply when.** A new user lands post-signup on a screen with no data and no direction. **The move.** Four fixes: (1) empty state with a next-action hint — the CTA points straight to value; (2) seed sample data so they see the destination before starting; (3) one single clear action ("Import your first spreadsheet"), not eight, not a 12-step tour; (4) visible progress from the first click — start the bar at 20%, not 0%, so completion feels already underway. **Voice.** "A blank dashboard looks neutral, even tidy — but it just makes the user stop and think about what to do." **Source.** [@richardrx · 2026-05-12](https://x.com/richardrx/status/2054283657934758021) ## Design onboarding as a behavioral trigger, not a feature tour **Principle.** Silent non-activation — users who sign up, vanish in five minutes, and never formally churn — is an activation problem, not a product one. Onboarding should fire a behavior, not narrate features. **Apply when.** New users evaporate without complaint and you never learn their name. **The move.** Find the single behavior that statistically separates retained from lost users, make it your activation north star, and measure every onboarding decision against it. Shift focus from explaining features to forcing that behavior fast. Exploit the Zeigarnik effect: open small loops (complete profile, invite 3 colleagues, send first message) so the user carries an unfinished task. **Evidence.** Slack: teams exchanging 2,000 messages had 93% probability of staying. Facebook's equivalent: 7 friends in 10 days — the company's single focus, repeated at every all-hands. **Voice.** "What's the number that separates who stays from who evaporates — and how does the user hit it in under 24h?" **Source.** [@richardrx · 2026-05-11](https://x.com/richardrx/status/2053878928494690414) ## Map the journey from session replays, not from your diagram **Principle.** The founder's 12-step journey is built top-down (what the product wants); the user runs 4 steps bottom-up (the specific problem they opened the tab to solve). The gap between them is where avoidable early-stage churn lives — and it's invisible because the founder only ever lived the creator's journey. **Apply when.** You "know" the happy path but can't state what % of users actually execute it. **The move.** Three steps, no Figma: (1) write your version of the user journey in numbered steps, on paper; (2) open five real session recordings from the first 7 days and note what each user actually does, in order, with timing — including what they try and abandon; (3) lay both lists side by side. The report is in the differences; each divergence is a hypothesis to confirm or kill. **Voice.** "The user journey is what shows up in the replay; what's in Figma and Excalidraw is a hypothesis." **Source.** [@richardrx · 2026-05-08](https://x.com/richardrx/status/2052711138572263474) ## Add declarative friction, cut administrative friction **Principle.** "Good onboarding is short onboarding" is incomplete. There are two frictions: administrative (collects data the system uses later, buys the user nothing) and declarative (forces the user to state what they came to do — costs a beat, buys commitment, customization, and journey direction). **Apply when.** Auditing onboarding steps; deciding what to cut versus expand. **The move.** Test each step: is it collecting data or making the user declare intent? Collecting only → candidate to cut. Declaring intent → candidate to expand. A declaration ("what do you sell, what's your long-term goal?") creates a micro-commitment to the outcome before the user touches the product, and lets the journey branch (recommendations, tutorials, next actions) off that answer. **Evidence.** Brazilian payments platform cut time-from-signup-to-first-sale from 24.2 to 2.5 days by adding a ~30-second intent step (positioned between signup and product), not by removing steps. **Voice.** "Onboarding is also the first chance the user has to declare to themselves what they came to do." **Source.** [@richardrx · 2026-05-07](https://x.com/richardrx/status/2052350703541039324) ## Trial conversion is a journey problem, not a pricing problem **Principle.** A trial is a test of value; if the user never proves value to themselves, no price or trial length saves it. Conversion fails for three diagnosable reasons. **Apply when.** Users sign up, do "a bunch of nothing," and never return. **The move.** Diagnose which failure mode applies: (1) blank dashboard → make the first step obvious and immediate, drive to value or a micro-win, drop "explore our product"; (2) lost before value → install Clarity, watch where they stall, optimize that click; (3) lost to life → send a progress email ("you created 3 reports, your team accessed 12 times, you're in the top 20%"), not a generic "trial ending." **Voice.** "The longest trial in the world doesn't save bad onboarding." **Source.** [@richardrx · 2026-05-06](https://x.com/richardrx/status/2052096365128273956) ## Make onboarding active, not passive **Principle.** Passive onboarding (tooltips, guided tour, docs — learn if you want) assumes the user will explore. They won't: they have 47 tabs open, WhatsApp pinging, and will do the bare minimum before deciding whether to return. Active onboarding designs a sequence where each action delivers value and that value triggers the next. **Apply when.** Your onboarding opens with "Welcome, here's the documentation." **The move.** Assume you know the shortest path to value better than the user does. Design that path, strip the friction, and make sure they arrive. Don't ask "what's the minimum the user must do?" — ask "what's the smallest action that delivers the most value in the least time?" **Evidence.** Slack drops you into a channel and makes you send a message first — you use the product before any tutorial. **Voice.** "Understanding by doing beats understanding by reading." **Source.** [@richardrx · 2026-04-22](https://x.com/richardrx/status/2046959126245249288) ## Treat sub-30-day churn as an onboarding fix, not a feature gap **Principle.** Most early-stage SaaS churn happens in the first 30 days — which means it's onboarding, not product. Adding features only makes it worse by adding complexity. **Apply when.** Users leave before they ever liked what you built, and you're tempted to ship more features. **The move.** Diagnose with three questions: (1) how long to the first real result? If "it depends" or over a day, you're bleeding users; (2) does the user know where they are? Use a progress bar/checklist — Progress effect: someone seeing 30% done is likelier to finish than someone at 0%, so starting at 0% is a design error; (3) what happens when they drop mid-flow — email, push, nothing? Use the Zeigarnik effect to remind them they started. **Voice.** "Sub-30-day churn rarely dies to features; it dies to the right sequence of micro-interactions that deliver value before asking for effort." **Source.** [@richardrx · 2026-04-20](https://x.com/richardrx/status/2046212675017887881) ## Deliver the promised result before teaching mechanics **Principle.** Nobody wants to learn to use your product; they want the result you promised in the landing-page hero. Teaching mechanics first ("create a project → add a member → configure integrations") is boring; delivering value first converts. **Apply when.** Your onboarding is a checklist of setup mechanics rather than a path to the outcome. **The move.** Lead with the outcome ("In 2 minutes you'll see your first report → let's start with the data you already have → done, that's the insight competitors pay consultants for"). Reframe progress with the Progress effect by crediting effort already spent ("You've done the hard part, just 3 steps left"). Keep loops small (Zeigarnik effect — people close loops only if they look closable). Pre-select the right plan from data you collected instead of asking, then offer the upsell. **Voice.** "The gap between 5% and 15% trial conversion is in these details — not features, not price — in the sequence of micro-decisions you designed without realizing you were designing." **Source.** [@richardrx · 2026-04-16](https://x.com/richardrx/status/2044785090832543998) ## Qualify by behavior, not by a long signup form **Principle.** Friction at the wrong moment kills conversion, and qualification by behavior is more precise than qualification by form. The "more qualified leads" argument for long forms usually loses. **Apply when.** You're weighing an 8-field signup form against email + password. **The move.** Default to the minimal form and let qualification happen later, inside the product, from real behavior. Deciding where to add versus remove friction is what separates a product that grows from one that spins its wheels — but it's contextual ("it depends"). **Evidence.** Same product, two founders: 8-field form (name, email, company, role, phone, segment, team size, how-did-you-hear) → 12% signup rate; email + password only → 34%. **Visual.** Annotated onboarding step (DevNoodles): an ICP/intent question flagged "Zeigarnik effect" (the step progress dots) and a B2C/B2B card selector flagged "Default effect" (the B2C card is pre-badged "Mais comum") — showing where each bias is engineered into the flow. — `../assets/2042558822825239030__1.jpg` **Source.** [@richardrx · 2026-04-10](https://x.com/richardrx/status/2042558822825239030) ## Celebrate the activation moment, don't just confirm it **Principle.** At the emotional peak of activation, a number is data but a rising graph is progress — and progress triggers dopamine and an emotional memory tied to the product. Most SaaS confirms where it should celebrate. **Apply when.** A user completes a hard-won first action (first transaction, first integration) and you respond with a static success state. **The move.** Engineer the peak moment precisely at the point of highest emotional vulnerability in activation — right after the user clears the effort. Show motion and accomplishment proportional to the effort invested. This is the peak-end rule: users judge an experience by its emotional peak and its ending, rarely by the average. **Evidence.** Stripe shows a rising graph (not a number) the moment the first transaction processes — the founder who integrated it at 3am remembers exactly where they were. **Voice.** "A number would have done the job. The graph created a customer." **Source.** [@richardrx · 2026-04-04](https://x.com/richardrx/status/2040415841628651689) ## Cut time-to-value by reorder and removal, not feature changes **Principle.** High TTV is almost never product complexity — it's the form and order in which things happen. Each day between signup and first result is another day of abandonment risk; abandonment = churn. **Apply when.** Your activation flow is slow and you assume the product itself is the bottleneck. **The move.** Three iteration cycles, no product changes: (1) reduce cognitive load by grouping and standardizing what the user must fill in; (2) work with legal/compliance to strip everything required by habit but not by actual necessity; (3) invert the sequence so the user feels value before facing the heaviest step. **Evidence.** Major Brazilian payments platform: 24 days → 2.5 days to first sale (89.7% reduction), no product changes, no cutting of mandatory compliance steps. **Visual.** Month-by-month TTV table: Jan 24.2d → Feb 19.6d → Mar 16.8d → Apr 9.3d → May 2.5d, alongside accounts created / approved / new sellers per month. — `../assets/2037583944283996418__1.jpg` **Source.** [@richardrx · 2026-03-27](https://x.com/richardrx/status/2037583944283996418) ## Give the trial an active goal, not passive access **Principle.** A passive trial ("use it if you want, cancel guilt-free") builds no commitment; a trial with an active goal builds commitment before billing. Each completed day raises the psychological cost of canceling — the user starts defending a decision they already made, before paying. **Apply when.** Your trial is open-ended access with no challenge or target. **The move.** Set a recurring daily goal during the trial that the user opts into and completes. The named mechanism is progressive commitment. The product can be good or bad — done right, the onboarding itself is excellent. **Evidence.** Wispr Flow challenges trial users to dictate 100+ words a day for 7 days — looks generous, is behavioral science. **Source.** [@richardrx · 2026-03-26](https://x.com/richardrx/status/2037316988981174464) ## Calibrate the first step to the user's real willingness **Principle.** Users don't rationally evaluate the first task — they evaluate perceived effort. Ask too much up front and the cognitive cost of even imagining the task is paralyzing, and they quit before starting. This is the activation-barrier effect. **Apply when.** Your first onboarding step bundles setup, data import, team invites, and project creation — or demands a campaign-sized action. **The move.** Two biases fix it: (1) started-progress effect — show what the user has already done before what's left; a loyalty card with the first stamp pre-filled beats a blank 9-stamp card, because the starting point changes perceived distance to the finish; (2) small-steps effect — "Create one story today" has radically lower perceived cost than "post 5×/week," even when the underlying task is identical. Sequence effort so the user hits first value before noticing how much they invested; build momentum. **Evidence.** Instagram A/B test made "Create 5 new public reels" the first task — for someone who barely posts weekly, that's paralyzing. **Visual.** Bad first-step example: a weekly-progress checklist at "0% completed" whose top item is "Create 5 new public reels (0/5)." — `../assets/2036461688505909250__1.jpg` **Voice.** "Asking for more isn't necessarily the problem; asking for all of it at once, with no progress anchor and no commitment ladder, is." **Source.** [@richardrx · 2026-03-24](https://x.com/richardrx/status/2036461688505909250) ## Treat onboarding as the bridge between CAC and LTV **Principle.** Founders obsess over CAC and landing-page conversion but are blind to activation cost. Onboarding isn't an interface tutorial — it's the bridge from CAC to LTV and the point of maximum leverage to expand revenue. Cancellation happens on day one; it's merely formalized when Stripe's billing reminder lands. **Apply when.** Users enter the trial without intent to a result and ghost before ever paying. **The move.** Two fixes: (1) turn support into UX — every onboarding support ticket is a design failure; map recurring setup questions and convert the answers into features or in-flow tooltips; (2) compress TTV obsessively — make the user experience the product's core promise in the least time possible. If they must configure 5 screens before any result, you've already lost. **Voice.** "Letting a user into the trial without intent of a result isn't self-service. Design's job doesn't end at signup — that's where it starts paying you back." **Source.** [@richardrx · 2026-03-13](https://x.com/richardrx/status/2032485654811083005) ## Pick onboarding patterns by awareness × flow complexity **Principle.** There's no best onboarding in the abstract — only the one that removes friction and delivers value early for your users. Treat the nine patterns as behavior-shaping mechanisms, not UI components, and select by two axes. **Apply when.** Choosing or combining onboarding patterns for a new flow (SaaS, PLG, B2B early stage). **The move.** The nine patterns (pattern → ideal use / tradeoff): **1. Welcome modal** → high-awareness ICP or low-complexity products; easy to build, easy to ignore. **2. Wizard / product tour** → B2B and complex/high-cost-of-error flows (fintech, compliance); long tours cause boredom and need constant upkeep. **3. Contextual tooltips** → advanced/secondary features; slashes support tickets but users may miss them if contrast is poor. **4. Empty state** (his favorite) → dashboards, lists, data-dependent areas; if executed well it's mandatory, directs the first action and accelerates TTV. **5. Personalization** → products serving many ICPs with different journeys; great CRM data, but too long kills signup conversion. **6. Checklists** → critical flows with mandatory prerequisites (webhook, KYC); exploits the Zeigarnik effect, but a long list breeds aversion — every item must move toward value, no bureaucratic tasks. **7. Goal-setting** → habit products (finance, productivity, health); uses commitment bias, but a broken goal can break the emotional contract. **8. Sample data** → sell the dream of a full, organized product before the user inputs anything (distinct from skeleton screens). **9. Use cases / demos** → products burning expensive resources (AI tokens) with infinite outputs; show max potential without forcing creativity from scratch. Selection rule — two axes: **awareness level** (low = needs guidance; high = needs speed) × **flow complexity** (high = needs structure). Four cases: low-awareness + high-complexity → tours + checklists + personalization; low + low → modal + empty state; high + high → checklist + tooltip + empty state; high + low → modal + empty state (then get out of the user's way). Build vs. buy is financial/operational, not aesthetic — buy (Wistia, PostHog, Sprig) when speed is critical, dev is overloaded, or you're running A/B tests; build when onboarding is strategic, you need perfect aesthetic integration, or you must avoid third-party dependence. **Voice.** "Onboarding's job isn't to teach the user — nobody likes an instruction manual — it's to remove cognitive effort and deliver utility as fast as possible. TTV correlates directly with churn." **Source.** [@richardrx · 2026-02-04](https://x.com/richardrx/status/2019019293761941566) -
positioning-icp-and-gtm.md 9.3 KB
# Positioning, ICP & Go-to-Market > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## Size the market with TAM → SAM → SOM (and know which one matters) **Principle.** Your real market is far smaller than the population — TAM is a theoretical ceiling (Brazil's 213M becomes ~101M credit-card holders for a paid app). Investors often ignore a TAM under ~R$1B, but the number that matters is the **SOM** — what you can actually capture. **Apply when.** Sizing a market, writing a deck, or judging whether a niche is big enough. **The move.** TAM = total addressable ceiling; **SAM** = the realistic slice your model reaches (~40% in his example); **SOM** = the 1–5% you truly win in ~36 months — and SOM isn't a guessed %, it comes from real CAC, activation, support capacity and LTV. You can't change your TAM; you change how much of your SAM you convert and retain. **Evidence.** RepareCar: ~76k mechanic shops (honest TAM) → SAM ~47k → ~3% ≈ 1,414 shops ≈ R$1.6M ARR; current pace (~10 shops/day) ≈ 7% of SAM in 12 months. **Visual.** TAM/SAM/SOM concentric-circle diagram with definitions — `../assets/2070140923380420796__1.jpg` **Source.** [@richardrx · 2026-06-25](https://x.com/richardrx/status/2070140923380420796) ## Frame the referral prize as a gift to the friend, not a commission to the referrer **Principle.** Member-get-member (MGM) referral programs win on framing and timing, not just on a two-sided reward. Money makes the exchange feel transactional; an in-product benefit feels like a genuine gift. **Apply when.** Designing or fixing a referral program and defaulting to "refer a friend, get $20." **The move.** Apply the framing effect: surface the prize on the receiver's side ("João gave you 500MB"). Ask for the referral at the peak of value (right after a concrete win, or when the user hits a limit). Avoid cash; give a reward that deepens use of your own product. Embed it as continuous in-product operation, not a one-off campaign. Caveat: referral amplifies a product people already love; it can't fix one nobody recommends for free. **Evidence.** Dropbox grew 3900% in 15 months (100k → 4M users), peaking near 3M invites in a single month; ~1/3 of users already arrived via word-of-mouth before the program. **Voice.** "A referral amplifies a product people already love — it doesn't fix a product nobody recommends for free." **Source.** [@richardrx · 2026-06-02](https://x.com/richardrx/status/2061766945582559509) ## Pick a deliberately under-served niche as your ICP **Principle.** A clear ICP (ideal customer profile) is not "everyone who could use my product." It's a deliberately chosen, under-served niche — and a sharp niche beats no niche, because you can't out-fight the entrenched generalist giant. **Apply when.** Early traction; tempted to "embrace the world" out of fear of a small TAM. **The move.** Validate four ICP filters: (1) feels the pain with real weight — pain is proportional to what's lost when unsolved (a lost lead costs a face-aesthetics clinic R$3,000 vs. R$60 for a barber); (2) big enough TAM to sustain operations; (3) money to pay your required ticket so unit economics close; (4) founder-fit, giving native language, a fast validation network, and instinct that money can't buy. With a clear ICP, failure has a diagnosis ("I got the messaging wrong"); without one, you can't tell if product, copy, channel, price, or audience failed — and every test burns runway. **Voice.** "A generalist ERP is hard to sell; an ERP for cabinetmaking is a different conversation." **Source.** [@richardrx · 2026-05-19](https://x.com/richardrx/status/2056789797646029232) ## Don't claim PLG without the four structural conditions **Principle.** Product-led growth (PLG) is a consequence of structural conditions, not a product decision you declare. Most B2B SaaS that pitches PLG is really sales-led wearing a PLG label. **Apply when.** Writing a pitch deck or strategy and calling the motion "self-service" / PLG. **The move.** Require all four conditions: (1) TTV < 10 minutes — if it needs a consultant demo, API support, or paid implementation, it's not PLG (tell: full trial, zero activation); (2) ticket below ~R$1,000 — higher means a buying committee; (3) native virality or collaboration (Notion, Figma, Slack pull users in; a CRM/AI tool needs SDRs, demos, follow-up); (4) a huge addressable market with a real bottom-up TAM. If you fail these, run sales-led honestly. **Evidence.** Brazil has ~20,000 companies with 100+ employees, and only ~a dozen B2B SaaS where PLG makes real economic sense. **Voice.** "Founders love PLG because it seems to delete the part they don't master — selling." **Source.** [@richardrx · 2026-05-04](https://x.com/richardrx/status/2051262752547536941) ## Charge your first ten users from day one **Principle.** The first ten users define the product's entire curve, and payment is the cheapest test of real pain — curiosity is free, an open wallet demands a concrete problem. **Apply when.** Validating a new product and tempted to give early access away to "build a base." **The move.** Source the first ten from closed communities, personal reach, or pure guerrilla. Charge even while in prototype. When someone says they can't pay, ask directly: "What does the system need to do for you to pay right now?" Treat the payment friction as part of the test. Collect dense feedback; only start visual design after ~20 paying users. For B2C apps the method shifts (e.g., pre-sale of a solution-in-progress) but the principle holds. **Evidence.** RepareCar's first 25 auto shops tested the product in prototype; the team visited each and charged at the end, designing visuals only after 20 paying shops. **Voice.** "Curiosity is free; an open wallet demands a concrete problem." **Source.** [@richardrx · 2026-04-26](https://x.com/richardrx/status/2048359526487716333) ## Reverse-engineer the funnel math before celebrating an MRR target **Principle.** Building the product is the easy part; distribution is the game. A revenue target is really a traffic-and-retention problem, and churn quietly resets the whole funnel every month. **Apply when.** Someone asks "is it hard to hit X MRR?" or you're sizing acquisition for a target customer count. **The move.** Work backwards: to net 2,500 customers at 5% LP conversion you need 50,000 visitors; from ads at 3% creative CTR, ~1.6M impressions (5% and 3% are top-decile — most land at 1–2% LP and under 1% CTR, so you test dozens). Then add the leaky bucket: at 20% monthly churn, average customer life is 5 months, so you replace 500 customers every month forever just to stand still (≈10,000 visitors / 333,000 impressions). The problem lives at the intersection of dev, design, and marketing — none alone owns it. **Evidence.** 20% monthly churn → 5-month average lifetime; at low ticket many operate at 40–50% churn, so "the bucket never fills." **Voice.** "Building the product is the easy part; distribution is the game." **Source.** [@richardrx · 2026-04-20](https://x.com/richardrx/status/2046222319912132977) ## Concentrate channels with the Bullseye framework, not scattershot testing **Principle.** Testing ten channels at once means you never know what drove results and you blame the channel when the business stalls. Distribution needs prioritized focus — and a perfect channel still fails if the receiving structure leaks. **Apply when.** You're spreading content and traffic across many channels with no clear read on what works. **The move.** Use the Bullseye framework (from the book *Traction*): three rings of priority. Inner ring = at most three highest-potential channels with total focus; middle ring = up to six channels you probe with small experiments; outer ring = everything plausible long-term, no active focus now. Choose between channels with an ICE Score (Impact, Confidence, Ease, each 0–10, divide by 3, prioritize). Crucial gap the book skips: scaling distribution onto a broken reception structure (LP, onboarding, first product steps) yields no growth — distribution and retention are simultaneous, not sequential. **Visual.** Bullseye as nested circles — What's Possible → What's Probable → What's Working — beside a "Marketing Framework for Startups" triangle (Prioritization, Testing, Quick Iteration). — `../assets/2036035304868434115__1.jpg` **Source.** [@richardrx · 2026-03-23](https://x.com/richardrx/status/2036035304868434115) ## Diagnose the bottleneck: no entries is distribution, leaving without paying is design **Principle.** Design can't save a "ghost product." Design optimizes and raises the LTV of something that already has traffic; it can't manufacture demand. **Apply when.** A builder ships an app, gets near-zero users, and hopes a redesign will rescue it. **The move.** Split the diagnosis cleanly: if nobody enters your product, it's a distribution problem; if they enter, don't pay, and leave, it's design. Read *Traction* even if you can afford an agency or a marketing team — the lever isn't just cost-per-channel but each channel's awareness level, which drives different conversion and retention behavior depending on where and how the user arrived. **Voice.** "If nobody enters your product, it's distribution. If they enter, don't pay, and leave, that's design." **Source.** [@richardrx · 2026-02-28](https://x.com/richardrx/status/2027721170569564521) -
pricing-and-monetization.md 19.7 KB
# Pricing & Monetization Psychology > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## Use a disfluent font for genuine deals — and name tiers for the mix you want **Principle.** A uniformly polished pricing page can be easy to scan yet weak at selling. For a genuinely favorable promotion, a disfluent (ugly) font on the price can make people process the number more deeply. Tier labels can change purchase incidence and which tier buyers choose — and those effects can run in opposite directions. **Apply when.** Pricing looks clean but plan distribution has been flat for months, or every company's pricing cards feel interchangeable. **The move.** Keep the rest of the page legible, but test a deliberately ugly or disfluent font on a genuine promotional price — never make the whole UI ugly. Choose labels by the outcome: in Wang et al.'s experiments, a superior-sounding metal ladder (Silver/Gold/Platinum) reduced choice deferral but moved the mix down, while an inferior-sounding ladder (Bronze/Silver/Gold) moved it toward higher-priced tiers. Richard applies that result to functional names such as Basic/Standard/Essential; treat that mapping as a hypothesis and measure purchase incidence and initial tier selection separately. Read with "Build a single value axis, then tune the decoy's distance to your target plan" (2026-02-02): that post recommends aspirational Starbucks-style tier names to lift the brand, this one prices that choice — aspirational names sell more units, unglamorous ones sell more high tier, so pick by the metric you are optimizing. **Evidence.** Motyka et al. (2016) found that disfluent fonts on price promotions prompt deeper processing and increase purchase behavior when the offer is a deal, even though people like the display less. Across five experiments (1,954 participants), Wang et al. (2024) found superior-sounding labels increased purchase incidence but shifted choices toward cheaper options; inferior-sounding labels increased higher-priced choices. **Visual.** Three pricing screenshots from the quoted post by @pankajstwt — 3-column Basic/Starter/Pro with near-identical includes; 2-column Launch/Scale; one-time Starter/Premium/Pro plus Ultimate — clean generic templates Richard challenges the reader to tell apart: `../assets/2092692547244007852__q__1.jpg`, `../assets/2092692547244007852__q__2.jpg`, `../assets/2092692547244007852__q__3.jpg` **Source.** [@richardrx · 2026-08-26](https://x.com/richardrx/status/2092692547244007852) ## Price from cost+margin floor and value ceiling — never tarot or competitor-minus-20% **Principle.** Two calculations give your floor and ceiling. Floor = cost to serve + target margin (infra, support, tools, tokens; if R$10/account and 80% margin, floor is R$50). But two traps: price too low signals low quality before use, and CAC math can eat the margin (CAC R$100 + margin R$40/mo = 2.5-month payback; churn at month 3 = you worked 3 months for R$20). Ceiling = reference value — what the client pays today to solve it their way (Excel + 1.5h/day of admin; or the loss they absorb by not solving). **Apply when.** Setting or revisiting SaaS pricing. **The move.** Quantify the delta in money for them: an ICP auto repair shop loses ~12 quotes/month to no follow-up × R$800 ticket × 30% margin × recovering 1/3 → R$3,200/mo revenue, R$960/mo profit. Then the sliding scale: value easy to prove, buyer convinced, little competition → move the price up; value hard to prove, skeptical buyer, a competitor on every corner → settle for ~10% of the value generated and be grateful. Commodity features (work orders, scheduling, reports) don't sustain price — they just put you in the same comparison table. **Source.** [@richardrx · 2026-08-03](https://x.com/richardrx/status/2084250609687884144) ## The freemium trap, in numbers: higher conversion, far lower cash **Principle.** A free plan lifts signup conversion but can crush the economics — the higher top-of-funnel number hides a worse business. **Apply when.** You're tempted by freemium's better conversion rate. **The move.** Run the funnel (same R$80k/mo traffic, plans from R$199). **With freemium:** ~8% → 800 signups → 80% activate → 5% pay = 32 payers (R$6,368 MRR), saturating ~160 payers under 20% churn, while 768 free users burn AI tokens (~$0.08 each) — real CAC ≈ R$2,540/payer, payback ~13 months. **Without:** ~3% → 300 payers = R$59,700 MRR (~10×), CAC ~R$275, payback ~6 weeks, LTV:CAC 5:1 that reinvests its own profit. Freemium only pays off if free brings *organic/viral* users you didn't pay for. **Voice.** "One scenario reinvests its own profit; the other funds losses until the money runs out." **Source.** [@richardrx · 2026-07-01](https://x.com/richardrx/status/2072312844784152628) ## Whether freemium works is decided by the cost to serve a free user **Principle.** Freemium isn't good or bad in the abstract — the *cost of free* decides, and it hinges on (1) how much it costs to serve non-payers and (2) how long/expensive activation is. **Apply when.** Considering a free plan, especially as a bootstrapped (non-bigtech) founder. **The move.** If serving a free user costs almost nothing and TTV is short, free becomes an acquisition channel (Slack — first message in minutes; it's the short TTV, not the cash, that sustains it). If the product runs on AI (dollar-priced tokens) or activation is long, a free account is an expensive bet that a small fraction funds — which needs deep pockets (the exception, not the average founder). On a friendly average, only ~3–4% of freemium converts. Otherwise: charge — well, and early. **Voice.** "For an AI product, your free user was never free." **Source.** [@richardrx · 2026-06-30](https://x.com/richardrx/status/2071962778072469560) ## Price is the cheapest money — stop anchoring it to the cheapest competitor **Principle.** Pricing is a SaaS's biggest lever, yet ~90% of products are underpriced — the founder, who knows every limitation, anchors on the cheapest competitor instead of on value delivered. The buyer only sees the problem solved. **Apply when.** Setting or revisiting price; fearing a "no." **The move.** Raise toward value. A 30% price increase doesn't yield 30% MRR (some churn), but what remains is nearly pure cash — no acquisition in between — while growing a channel 30% costs money, time, and has a ceiling. Low price costs you later: less budget to reach your ICP, a CAC-obsession trap (the real metric is the CAC↔LTV *gap*, which price widens on both sides), and higher churn (cheap attracts uncommitted buyers). Design link: the number must be sustained by perceived value — your page and first use justify or destroy it. **Voice.** "Charging more without seeming to be worth more is just raising the price of rejection." **Source.** [@richardrx · 2026-06-29](https://x.com/richardrx/status/2071634185228329219) ## 1% on price beats 1% on acquisition — you raise prices too little and too late **Principle.** A 1% price improvement drives ~8–11% more profit (ProfitWell) on typical SaaS margins, while a 1% acquisition improvement yields ~2%. Yet 70% of executives rank acquisition as the most important growth lever — the one that pays least. Price is left untouched because of loss aversion (fear of losing what you have screams louder than the chance to gain). **Apply when.** It's been >12 months since a price change and the product improved meanwhile. **The move.** Test the new price only on new customers, don't touch the base. If the conversion drop is offset by the higher ticket, it wins. Users who pay more churn less. Raise gradually, anchored in value — communicate what improved, never a naked increase. Forget A/B testing price (you lack volume); segment and run willingness-to-pay research instead. **Voice.** "If 1% on price pays five times more than 1% on acquisition, why is nearly all your energy at the top of the funnel?" **Source.** [@richardrx · 2026-06-03](https://x.com/richardrx/status/2062127283977019757) ## Competing on price is adverse selection — you filter in the worst client **Principle.** Price-led copycats attract bargain hunters: they enter because you're cheapest and leave the second someone is R$1 cheaper. High churn, zero loyalty, most support tickets. Price as bait is a filter for the client you least want. Better: Kawasaki's "Be a baker, not an eater" — bake your own pie via niche (CRM for facial-aesthetics clinics, not another CRM) and charge 5x with no comparison. Use the giant's weight against it (jiu-jitsu): big players' blind spots are in public complaints — ReclameAqui, app stores, Google Places, communities, FB/WhatsApp groups, niche sites. Each complainer represents ~26 equally unhappy silent ones. **Apply when.** Tempted to differentiate purely on being cheaper than a big player. **The move.** Mine complaints for the niche, angle, vocabulary, pain, and promise for your LP. Accept you'll be copied — storefronts look equal but the model underneath (your niche, angle, economics) isn't. McDonald's is a real-estate company dressed as a burger joint; BK is royalties. Same storefront, different machine. **Source.** [@richardrx · 2026-06-03](https://x.com/richardrx/status/2062314549483589691) ## Make the middle plan the one you actually want to sell **Principle.** Each plan has a behavioral job, not just a price; the plan you most want to sell should sit in the middle, flanked by a decoy below and an anchor above. **Apply when.** Building or auditing a SaaS pricing page, especially if you copied competitors without assigning each tier a role. **The move.** Use the decoy effect: place your target (e.g. Pro) in the middle; make the tier below it clearly inferior on one important attribute (user cap, no critical integration, no priority support) so Pro looks obvious. Keep exactly three plans — four+ triggers the paradox of choice and users stall. Add a top tier (Enterprise) purely to anchor price perception. Ask: "What is my decoy today?" If you can't name one, it likely doesn't exist. **Evidence.** Ariely's MIT test of The Economist's tiers: with the print-only decoy, 16%/84% chose online/combo; removing it flipped choices to 68%/32%, cutting combo revenue by more than half. Estimated +30–43% subscription revenue. **Visual.** Economist subscription page; the decoy's removal shifts combo-plan share from 84% down to 32% — `../assets/2059951433827426437__1.jpg` **Voice.** "Option B was never built to be sold — it was built to make C look obvious. It's the bait." **Source.** [@richardrx · 2026-05-28](https://x.com/richardrx/status/2059951433827426437) ## Ask for the card in trial — but optimize for the right ICP, not raw conversion **Principle.** Requiring a credit card multiplies trial-to-paid conversion but shrinks signups; the goal is the model that attracts and retains the right ICP, not the one with the highest headline conversion. **Apply when.** Choosing trial-with-card vs trial-without-card (or freemium), or designing recurring billing for a Brazilian market. **The move.** Weigh the funnel both ways. Trial-with-card converts harder but starves you of volume; trial-without-card floods the funnel with low-intent users. Run the full math, not just the conversion rate. In Brazil, also account for PIX recorrente, whose dynamics differ from monthly card billing. **Evidence.** ChartMogul 2026 (US, 200 products): trial-with-card converts ~31.4% vs 8.9% without — 3x+. Worked funnel: 1,000 visitors → 30 trials → 9.4 paying (with card) vs 85 trials → 7.5 paying (without). Author observes PIX-recorrente cohorts churn more than card cohorts. **Voice.** "Don't ask which model converts more — ask which model attracts and retains the right ICP." **Source.** [@richardrx · 2026-05-15](https://x.com/richardrx/status/2055247161349054950) ## Frame the upgrade as a loss at the moment of value, not a feature you're selling **Principle.** Low upgrade rates are usually a framing-and-timing problem, not a price problem; remind users what they've already invested and what they stand to lose. **Apply when.** A happy, active free user never upgrades, or your upgrade rate sits below 5%. **The move.** Three framings beat generic limit/discount/feature-gate prompts. (1) Sunk cost: surface the assets they've built — "You created 47 custom reports. On the free plan you lose access to 40." (2) Loss aversion: framing loss outconverts framing gain — "You'll lose access to 8 months of history" beats "Get unlimited history." (3) Limited-access gate timed to an imminent, known result — "Your report is ready. To export as PDF, activate Pro." The timing/context of the gate matters more than the gate itself. **Voice.** "If your upgrade rate is below 5%, the problem probably isn't price — it's how and when you're asking." **Source.** [@richardrx · 2026-04-21](https://x.com/richardrx/status/2046544442216054981) ## Engineer the comparison frame with a decoy and a high anchor — and drop Free from the top **Principle.** Conversion shifts when you change the frame of comparison, not the product; equal-looking options cause delay, and showing Free first anchors everyone to zero so everything else feels expensive. **Apply when.** You run the default Free / Pro / Enterprise (sob consulta) ladder and Pro isn't converting. **The move.** Insert a decoy: a Starter just below Pro with irritating limitations (e.g. R$79 vs Pro R$99) so users compare Starter↔Pro and Pro wins for R$20 more. Remove Free from the visible top so the first number isn't zero — anchoring means the first price seen sets the reference; lead with a higher/previous/Enterprise price so Pro at R$99 reads as cheap. **Evidence.** The Economist sold 3x more print+digital after adding a same-price print-only decoy nobody bought. Author cites documented tests lifting conversion 10–20% via reframing alone. **Voice.** "You're competing against your own free plan. And losing." **Source.** [@richardrx · 2026-04-14](https://x.com/richardrx/status/2044014136770580743) ## Tie the trial's end to value consumed, not the calendar **Principle.** Blocking access on a fixed day count (7/14/28) is a lazy rule; the billing trigger should fire on value consumption, after the user's first real win. **Apply when.** You copied a competitor's 14-day trial and paid conversion is failing, or you're setting trial length from scratch. **The move.** Never paywall before a clear micro-win or solving the core problem — doing so kills conversion and breeds bad word of mouth. Set length using four variables: (1) Product complexity — enterprise needs time for compliance/security review, not just the user. (2) Time to Value — Spotify delivers in seconds, a CRM needs days of data. (3) Usage frequency — rarely-used products may need long trials, or none at all (a once-a-year tax tool shouldn't have a trial). (4) Card entry — no card means a shorter trial to create urgency; with card, watch silent next-month churn. Note: sunk cost only bites if the user built a real asset — a bad onboarding produces frustration, not switching cost. **Voice.** "Locking access purely on the calendar is a lazy rule that can cost you dearly — you're burning CAC without knowing where value lands." **Source.** [@richardrx · 2026-03-16](https://x.com/richardrx/status/2033502548301091057) ## Order pricing rows by the serial-position effect: killer feature first, differentiator last **Principle.** Users don't read pricing lists linearly; attention and memory cluster on the first and last items, so feature order is itself a conversion lever. **Apply when.** Laying out the feature rows inside a pricing card or comparison table. **The move.** Exploit the serial-position effect (primacy + recency). Top: value anchor — never "24/7 support"; lead with the core/killer feature that solves the ICP's main pain and justifies ~80% of the ticket and the ROI. Middle: utilitarian features (exports, integrations, storage limits) the user won't memorize but will scan to compare against the next plan. Bottom (nearest the CTA): the differentiator, bonus, or loss-aversion hook — a lifetime guarantee or dedicated support. The middle of the list is "a cognitive black hole." **Visual.** Pricing card emphasizing the bold first row (core feature) and bold last row (super bonus), with greyed utilitarian middle rows — `../assets/2029623167900061970__1.jpg` **Voice.** "Pricing success depends not just on what you deliver, but on the order the brain is led to process the value." **Source.** [@richardrx · 2026-03-05](https://x.com/richardrx/status/2029623167900061970) ## Engineer the pricing page with Good-Better-Best and control the comparison **Principle.** Lost LTV is rarely about price — it's analysis paralysis from a missing choice architecture. The brain is lazy and judges by relative comparison (priming + anchoring), so if you don't design the anchor, users compare you to "nothing" or to the cheapest competitor. **Apply when.** Designing or fixing a pricing page; conversions die at the final step despite strong CAC spend. **The move.** Use a Good-Better-Best (GBB) structure: **Good** = a stripped entry plan that anchors a low price but is limited enough to make users feel pain and look up (never make it free — then everything above looks expensive). **Better** = your standard plan, the target for ~80% of buyers; price it closer to Good than to Best so users think "paying only ~20% more I get double?" **Best** = the value anchor that exists mainly to make Better look cheap (bicycle analogy: without the carbon-fiber Best, the carbon-wheel Better looks expensive). Golden rule: keep comparisons on one axis — don't pit "10,000 tokens" against "Priority Support"; prefer linear, ideally asymmetric, growth. Cap at 2–5 plans (6 = anxiety, paradox of choice). Then control which attributes you compare — your own "Brazil vs Paraguay" table — choosing indicators that favor your value thesis. Highlight Better with color/size/badges. "Stop making the user do the math — do the math for them." **Evidence.** Cites Briesch et al. (1997) and Mazumdar et al. (2005) on reference-price models, and Chernev (2015) on choice overload. **Visual.** Two mirrored BR-vs-PY indicator tables prove framing: swapping which metrics are shown flips which country "wins" — `../assets/2018693884449009956__2.jpg`, `../assets/2018693884449009956__3.jpg`. Four-tier mockup highlights a "Most Popular" target beside a high anchor (Hick's law / few options) — `../assets/2018693884449009956__4.jpg` **Voice.** "Your pricing page is killing your LTV — and I can prove it." **Source.** [@richardrx · 2026-02-03](https://x.com/richardrx/status/2018693884449009956) ## Build a single value axis, then tune the decoy's distance to your target plan **Principle.** A plan ladder must read as one clear progression of value; mixing quantitative and qualitative axes muddles it, and where you place the decoy's price decides which plan looks like the deal. **Apply when.** Naming and pricing tiers, or the "value staircase" between your plans isn't obvious to users. **The move.** Pick one progression — quantitative (rising credits/users) or qualitative (24/7 human support, special features) — rather than blending both. Borrow Starbucks-style naming (Tall/Grande/Venti) so every tier sounds good and lifts the brand. Then position the decoy: place it near the most expensive plan and the expensive plan looks cheap; place it near the cheapest and the decoy itself becomes the most attractive option. Read with "Use a disfluent font for genuine deals — and name tiers for the mix you want" (2026-08-26): aspirational names lift purchase incidence, but unglamorous ones shift the mix toward higher-priced tiers. **Visual.** Decorative 3D price-tag illustration — no data. **Source.** [@richardrx · 2026-02-02](https://x.com/richardrx/status/2018357024543715480) -
product-strategy-and-features.md 15.5 KB
# Product Strategy & Feature Discipline > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## Feature requests from cancellations don't buy features **Principle.** Three auto shops canceled RepareCar over missing boleto (bank-slip) issuance — request logged in Linear with name and date, 20+ in the same queue, oldest since June. But cancellation doesn't buy a feature: the ICP profile is defined, and boleto sits in a deliberately-not-doing package. Support is semi-automated (AI triages, human on novel questions, both open Linear tickets; a daily Claude task prioritizes). Bugs jump the queue; anything new defaults to parking lot. **Apply when.** Cancelling customers' feature requests pressure the roadmap. **The move.** Log each request with the customer and date, aggregate demand, then prioritize by bug severity, ICP fit, and strategy — not by the latest cancellation. Default net-new work to the parking lot. When asked for timing, communicate the real queue ("20 requests are ahead of yours") instead of making a false promise. **Source.** [@richardrx · 2026-08-10](https://x.com/richardrx/status/2086931878251057479) ## Building is the comfort zone; distribution is the game **Principle.** Founders choose to build because selling hurts — Richard spent 90% of his time perfecting a delivery product one year before iFood existed; it died beautiful. Humane raised ~US$240M, ex-Apple founders, gorgeous hardware; returns outpaced sales by summer 2024 and HP took the assets for US$116M. In survival phase you do both jobs and almost always pick building — your comfort zone — pretending the next feature will make selling easier. Exercise: how many months of runway does your next feature cost? **Apply when.** Roadmap keeps growing while distribution is untested. **The move.** Before every roadmap item in the survival phase, ask the post's question — how many months of runway does this feature cost? — and whether it actually makes selling easier or just postpones selling. If the honest answer is "it's the comfortable thing to build," spend that time on the job that hurts: selling. **Source.** [@richardrx · 2026-07-21](https://x.com/richardrx/status/2079575881115226453) ## 94% of features are filler — Pendo's data and what to do about it **Principle.** Pendo's analysis across ~2,500 companies' apps found roughly 6% feature adoption in the average product; even top-10% products reached only 15.6%. That leaves about 94% rarely or never used in the average product (84.4% even in the top decile), creating low activation, churn, a larger attack surface, and higher sustaining cost/complexity. Some features sell without being used, but that doesn't explain the gap. **Apply when.** Auditing a bloated roadmap or justifying a feature purge. **The move.** Classify every feature by usage correlation: A. Core (the 6% carrying the product; 15% if you're top-10%), B. Strategic (contributes to sales), C. Discard. Then shrink the product based on use and/or cash generation. **Source.** [@richardrx · 2026-07-17](https://x.com/richardrx/status/2078079228717764886) ## PMF is step 8 in a 10-step sequence — founders start there too early **Principle.** Sequence: (1) Define the ICP — does it really exist, or is it who you wish it were? (2) Surface the ICP's pains and desires — real? verified where, with how many? (3) Understand awareness level — knows the pain? the solution? yours? (4) Slice niche/sub-niche — their particularities, do they exclude each other? (5) Size TAM of niche and sub — enough market, and does enough remain after niching? (6) Actively decide who the solution serves — can you stand out there? (7) Validate the thesis — the ICP's pain solved in a way that pays; are they paying? (8) Reach PMF — does the product stick? do users recommend it unprompted? does the business sustain itself without you pushing? (9) Fix inefficiencies in acquisition, activation, retention — always leaks; measured where? (10) Scale. **Apply when.** A founder says they "want PMF" without the groundwork. **The move.** Work the sequence in order and require evidence at each gate: a verified ICP and pain, a viable niche/TAM, paying thesis validation, then PMF. Only after measuring and fixing acquisition, activation, and retention leaks should you scale. **Source.** [@richardrx · 2026-07-09](https://x.com/richardrx/status/2075192130184630688) ## Feature creep ("fiturite") is a business cost, not just a UX one **Principle.** The Homer Simpson car problem: every unsatisfied user request implemented as a feature eventually makes the product hard to operate, steepens the learning curve, and worsens experience through cognitive overload and choice paradox. It's bad for the business too — you spend more on dev for features serving few users, more on maintenance, eventually whole teams for barely-needed areas. Prune based on: who are our most strategic users, what are they using, what's unused that I can abstract, what aligns with the vision. **Apply when.** A product keeps growing features without a subtraction ritual. **The move.** Treat pruning like a cost line: grass grows by itself, you have to mow. Look for low-usage features serving low-paying/high-churn subniches and cut them to serve better those who pay more and stay longer. **Source.** [@richardrx · 2025-11-03](https://x.com/richardrx/status/1985329704312709254) and [@richardrx · 2026-07-06](https://x.com/richardrx/status/2074118439321350163) ## Maturing the product means doing the same thing better, not adding power-user features **Principle.** Technical founders keep densifying the product for heavy users, making it expensive, complex, and hard for the average user — a Boeing 747 cockpit. Maturing means doing better what the product already does: smoother flows, bug fixes, attention direction. Hidden risk: a power-user product has a smaller top of funnel, so you must charge more — you changed markets (TAM/SAM changed) and price must follow. The founder then reads "product is bad" when really ICP isn't adjusted. Adjust copy (more executive, less tool-like), visuals (show the result, less product internals), and detail care (high-paying ICP tolerates AI-slop design less). **Apply when.** The product keeps getting denser and conversion falls. **The move.** Stop adding depth by default; smooth the core flows, fix bugs, and direct attention first. If the product is deliberately moving upmarket, recalculate TAM/SAM and price, then align the ICP, copy, visuals, and detail quality with that smaller, higher-value market. **Evidence.** Christoph Janz's five paths to $100M — from the elephant (few customers paying a lot) to the fly (millions paying little) — all work; the problem is becoming an elephant without noticing and still charging mouse prices. **Source.** [@richardrx · 2026-07-02](https://x.com/richardrx/status/2072718071060447691) ## Run every feature through a two-layer "Swiss Knife filter" before building **Principle.** A feature you ship stays forever and charges rent forever, so the right question isn't "is this good?" but "does it deserve the permanent cost it imposes on the product?" **Apply when.** A roadmap item feels appealing but nobody applied a filter before committing to build. **The move.** Layer 1 — does it deserve to exist? Pass all four: (1) cognitive load (more surface = more to learn + Hick's law decision time); (2) ICP specificity (a CRM for facial-aesthetics clinics charges 5x a generic one); (3) operational cost (maintain/support/document, not build); (4) reinforces the core claim. Layer 2 — build now? Two axes: easily rejectable (clear "no"?) and easily implementable (cost to the validating version, not the dream version). Build the no-brainers first; fail any of the four, kill it guilt-free. To rank survivors, score (New Users + New Revenue + Impact Level) / Effort. **Visual.** Prioritization scoring table: (New Users + New Revenue + Impact Level) / Effort = Score — `../assets/2059236567533650119__1.jpg` **Voice.** "Every feature that gets in, stays. And it charges rent forever." **Source.** [@richardrx · 2026-05-26](https://x.com/richardrx/status/2059236567533650119) ## Feature adoption is a design problem, not a communication problem **Principle.** Shipping a feature doesn't make it discovered; users move through their habitual path and never see what they aren't looking for. **Apply when.** Three weeks post-launch only ~9% of active users opened the feature and ~4% used it twice, despite changelog, email, and "new" badges. **The move.** Stop treating adoption as announcement. The killers are inattentional blindness (users don't see what they aren't seeking) plus status-quo bias (re-learning cost outweighs perceived benefit even when the new way is better). Instead: directional empty states that surface the feature where it'd be used; triggered onboarding fired by the behavior that signals need (CRM user hits the sales page → introduce the objection-busting AI); and a feature adoption rate metric measuring habit/appropriate frequency, not clicks. Anything below an adoption threshold goes back into review. **Voice.** "Launching a feature is easy; getting it used is a whole other thing." **Source.** [@richardrx · 2026-05-20](https://x.com/richardrx/status/2057162392048476345) ## Compute your Swiss Knife Index to expose feature creep **Principle.** A product's worth is measured by features actually used, not features shipped; a bloated product is expensive to sustain and hard to sell, not rich. **Apply when.** The roadmap has become a user wishlist and every new feature feels like progress (especially with AI making building cheap). **The move.** Swiss Knife Index (SKI) = (features used by >40% of active users in a 30-day window) ÷ (total features). Below 0.3, you own a clumsy Swiss army knife. Fix it with: quarterly audits on real usage data (not team opinion); hide, don't delete (push rarely-used features into advanced settings — reachable for the 3%, gone for the 97%); and a gate on every new feature — "which existing feature do I kill to make cognitive room?" Litmus test: which feature would you show first with 30 seconds to sell? The rest stays invisible until needed. See the academic grounding (2034248739557159293) and the curve (2033880553607364684). **Visual.** SKI curve — perceived utility rises then declines past the optimal point as complexity keeps climbing — `../assets/2057124008445796659__1.jpg` **Voice.** "Which feature would I show first if I had 30 seconds to sell the product?" **Source.** [@richardrx · 2026-05-20](https://x.com/richardrx/status/2057124008445796659) ## Design the attention hierarchy to direct behavior, not just organize info **Principle.** A product that organizes delivers access; a product that directs delivers activation — and the visual hierarchy decides which the user gets. **Apply when.** "My interface looks good, but people don't use the main features" — and the key feature is buried behind three clicks the user will never make. **The move.** Recognize that attention hierarchy is the structure deciding what users see first, find with effort, or never discover. Built without intent, the product sabotages itself: users use what's most salient, which is rarely what retains. Plan the hierarchy to influence behavior — make the value-driving, retention-driving feature the most prominent thing — instead of merely arranging information neatly. **Visual.** A typographic demo (huge headline "YOU WILL READ THIS FIRST") proving the eye follows visual weight, not reading order — `../assets/2039399756452057159__1.jpg` **Voice.** "A well-designed attention hierarchy makes the user use what retains; a bad one makes them use what's most salient." **Source.** [@richardrx · 2026-04-01](https://x.com/richardrx/status/2039399756452057159) ## Ground feature discipline in the academic feature-fatigue research **Principle.** Past a cognitive-load threshold, the subjective evaluation of a product doesn't stay neutral — it declines into frustration, confusion, and task abandonment, directly hitting CAC and LTV. **Apply when.** You need the evidence behind cutting features, and want to separate pre-purchase appeal from post-purchase utility. **The move.** Apply the SKI as a decision criterion grounded in feature fatigue. More features help pre-purchase comparison via distinction bias but hurt the decision via analysis paralysis (more options = longer decisions and more no-decisions; no decision, no conversion). Each extra feature steepens the learning curve — measurable B2B productivity loss — and when value comes slowly, users silently churn before the trial ends, blaming themselves, not the product. This complements the index (2057124008445796659) and the curve (2033880553607364684). **Evidence.** Thompson, Hamilton & Rust (2005), "Feature Fatigue," JMR 42(4); distinction bias (Hsee & Zhang 2004); analysis paralysis (Iyengar & Lepper 2000). **Voice.** "A product that grows without criteria doesn't get rich — it gets expensive to sustain and hard to sell." **Source.** [@richardrx · 2026-03-18](https://x.com/richardrx/status/2034248739557159293) ## Past the optimal feature count, a technically bigger product becomes functionally worse **Principle.** The relationship between feature count and perceived utility is non-linear: there's an optimal point, after which each added feature reduces perceived utility while raising sustaining cost and the learning curve. **Apply when.** You hear "my interface looks good, but people don't use the main features" — a sign you've passed the optimal point. **The move.** Read the SKI curve: utility climbs to a peak (~10 features in the example) then falls as complexity keeps rising. The fix isn't more visibility — it's reducing the product's cognitive load so the rest becomes visible again. Criterion: any feature used by under 10% of the active base must justify its existence or leave. There's no universal ideal count — only the ideal for your ICP, context, and device. **Visual.** SKI graph: green perceived-utility curve peaks at the optimal point (10.3 features, 97), red complexity curve rises monotonically and overtakes utility in the "decline zone" — `../assets/2033880553607364684__1.jpg` **Voice.** "A bloated product isn't a rich product — it's a product actively destroying the conversion and retention you paid dearly to win." **Source.** [@richardrx · 2026-03-17](https://x.com/richardrx/status/2033880553607364684) ## Focus on your core; trying to be "all-in-one" dilutes your value proposition **Principle.** Chasing a bigger TAM by going generic destroys retention of your heavy users without converting new ones — the same roadmap mistake in cars and in software. **Apply when.** The product is tempted to "embrace the world" and become a do-everything tool, abandoning the specific ICP that made it loved. **The move.** Remember who your ICP actually is and build for them, even at the expense of broad appeal. In software, when UI/UX tries to cover everything, the value proposition dilutes: you wreck heavy-user retention and fail to convert newcomers because you've gone generic. Focus relentlessly on the core. **Evidence.** Porsche chased China's TAM with generic EVs, abandoning its ICP (visceral flat-six machines); ~€3.9B in losses to reverse the roadmap — operating profit fell from €4,000M (2022) to €40M (9M 2025), margin 18% → 0.2%. [Porsche figures from the quoted post; treat as illustrative.] **Voice.** "Focus on your damn core." **Source.** [@richardrx · 2026-03-11](https://x.com/richardrx/status/2031722047080960265) -
revenue-centric-design.md 16.1 KB
# Revenue-Centric Design — Philosophy & Process > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post. ## The 9 principles of Revenue Centric Design (RCD) **Principle.** Intentional design serves the user AND the business at once — value and revenue, not one or the other. Richard's canonical framework, named Revenue Centric Design (RCD), built after Dieter Rams' 10 laws (form/function) and Amber Case's Calm Technology (attention/context) — "neither taught me to think about revenue." **Apply when.** Designing any digital product meant to convert, retain, and expand; you need a north-star checklist for decisions. **The move.** Apply all nine: 1. **Neutrality is omission** — an interface that doesn't direct hurts conversion. 2. **Who talks to everyone convinces no one** — no ICP means generic value, which retains worse. 3. **Value first, ask later** — proof must arrive before the user questions their choice. 4. **Your promise is the size of your proof** — the market believes what you demonstrate, not what you claim. 5. **Same competes on price, different on category** — contrast in mechanism, narrative, or experience; no contrast, no margin. 6. **Default is the decision you made for the user** — most never change settings; the initial state defines mass behavior. 7. **Retention is built, not requested** — show what the user accumulated; perceived loss retains more than promised benefit. 8. **Expansion is born of usage** — upsell that interrupts breeds resistance; upgrade at the moment of the limit converts frictionlessly. 9. **Price is a filter** — pricing defines who enters, who stays, who expands; wrong price attracts the wrong ICP. **Voice.** "Rams taught me form and function. Amber Case taught me attention and context. Neither taught me to think about revenue." **Source.** [@richardrx · 2026-05-05](https://x.com/richardrx/status/2051672248348479691) ## Design's leverage isn't constant — it changes with the product stage **Principle.** Design's payoff is near-zero at MVP and grows to decisive at scale; when a product is dying, design is the *last* place to look for the culprit. Knowing your stage tells you whether design moves the cash or is just vanity. **Apply when.** Deciding where design effort should go at your current stage. **The move.** Match the discipline to the stage: **MVP** — shorten the path to value and say no to "obvious" features; **Survival** — fix onboarding/activation (the first week beats the whole roadmap and buys runway); **Traction** — conversion (sharp LP + tuned onboarding as channels saturate); **PMF** — depth (design the second "aha," upgrade path, expansion, so retention stabilizes higher); **Scale** — design becomes a system (a design system so 3–4 teams ship without you). Shorten → Activate → Convert → Expand → Systematize. **Voice.** "Polishing the UI of a product nobody wants is the most beautiful mistake there is. It dies pretty." **Source.** [@richardrx · 2026-06-15](https://x.com/richardrx/status/2066476811177877962) ## Design owns the flow, not the final coat of paint **Principle.** What decides whether a user converts or churns — information order, when you ask for the card, what appears at moments of doubt, when value is first felt — is set and coded long before a "finished" product reaches design. **Apply when.** Design is scoped as "make it pretty before launch"; product/eng/requirements own the flow (common in big orgs or eng-led teams). **The move.** Pull design upstream to own the flow. To win the argument, show it: Richard built the same app twice (requirements-led vs UX-led) and the side-by-side won him project leadership. **Voice.** "If I got a buck every time I heard 'design comes in when the product's almost ready,' I'd buy a GT3 RS." **Source.** [@richardrx · 2026-06-09](https://x.com/richardrx/status/2064327349894553855) ## Find the leaks before you rebuild the bucket **Principle.** Products rarely die from one dramatic error; they bleed out as micro-disappointments accumulate across the journey until the user quits without quite knowing why. Patch the leaks instead of redesigning from scratch — a fraction of the effort for most of the gain. **Apply when.** Conversion or retention is dropping and the team's reflex is a full redesign (the addictive blank-page urge). **The move.** Run a heuristic analysis: walk the product area by area from landing to activation, mark each point OK or not-OK, screenshot every failure and grade severity across four levels — from aesthetic (ugly but harmless) up to critical (user stalls, conversion dies). The output is a map of holes; find where it's dripping and seal it. **Visual.** Journey graph — cumulative score sliding downward, green dots = wins, small red dots = micro-disappointments stacking up — `../assets/2062621019978760424__1.jpg` **Voice.** "Redesign from zero says more about the desire of whoever's drawing than the pain of whoever's using." **Source.** [@richardrx · 2026-06-04](https://x.com/richardrx/status/2062621019978760424) ## Refactor to solve a real problem, not to repaint the wall **Principle.** Designers loop forever ("it's great → could be better → better → repeat"), refactoring UI like code. True refactoring waits for user feedback and changes what fixes a problem; repainting because the old color got boring is vanity that burns a week on pixel-perfect nobody asked for. **Apply when.** You feel the itch to redo a screen mid-project; separate "this resolves a known pain" from "this just looks nicer." **The move.** Gate the change: does it attack a real, validated pain? Richard's example passed because it tackled an old industry pain — customers not trusting the repair shop's quote. Until usage proves it, "you're just selling the visual." **Visual.** RepareCar quote builder — parts pre-loaded with photo, code, and cost; live financial summary (labor + parts → total) — `../assets/2062554393447141438__1.jpg` **Source.** [@richardrx · 2026-06-04](https://x.com/richardrx/status/2062554393447141438) ## Mine the tactical layer — it's the most under-explored **Principle.** Product design has three leverage drivers — Tactical → Organizational → Strategic. Strategic has the most asymmetric upside, but because everyone outsourced aesthetics to the same AI-generated UI kit, the tactical layer (aesthetics + function) became the most under-explored opportunity in the stack: lowest leverage in theory, highest return in practice, simply because nobody looks. **Apply when.** Your SaaS UI looks like every competitor's; you assume polish is "too obvious" to bother with. **The move.** Invest the basic care most skip — distinctive aesthetics drive differentiation and branding even for a commodity (e.g., Resend dressing its ICP). Cost lives here too: square Johnnie Walker bottles cut breakage and shipping; the smaller iPhone box fit more units per container — both straight to margin. **Evidence.** Ferrari's first EV (Luce, Jony Ive–led) drew the worst brand reception in recent company history — ~8% stock drop, billions in market value erased in 48 hours; mockers compared it to a Honda Accord and a luxury toaster. The revolt was almost entirely visual. **Source.** [@richardrx · 2026-05-28](https://x.com/richardrx/status/2059997257156399233) ## Leave the over-used parts alone; improve around them **Principle.** Heavily-used parts of a working product form a "cognitive map" — users memorized where everything is and which gesture does what — that is part of the product even if you never designed it intentionally. Redesigning it aggressively makes them pay a re-learning cost and signals you think you know better than they do. **Apply when.** You're tempted to overhaul a working, well-adopted product. **The move.** Ask: "Which part is so used that touching it would feel hostile?" Freeze that part; improve around it. The bias at work is status-quo bias — people keep the current state when the change's gain seems small versus the effort to re-learn. **Evidence.** Snapchat's Feb 2018 redesign (separating friends from brand/creator content) triggered a 1.2M-signature Change.org reversal petition; Kylie Jenner's "does anyone else not open Snapchat anymore?" preceded a sharp stock drop. **Voice.** "While we see every redesign as an upgrade, the user can see it as a threat." **Source.** [@richardrx · 2026-05-12](https://x.com/richardrx/status/2054180098392178796) ## Don't hire a designer to make software "pretty" **Principle.** Aesthetics is subjective, doesn't scale, and won't save a product from high churn. The interface's job is to steer user behavior toward a KPI; aesthetics is sometimes a by-product of that. Hiring design for looks is technical founders' biggest financial mistake. **Apply when.** You're scoping design as cosmetics rather than as a growth lever for conversion, retention, and expansion. **The move.** Aim design at three outcomes: (1) **Conversion via lower cognitive load** — Hick's Law: each extra on-screen option raises decision time and abandonment; remove friction (Ability in the Fogg model) so the target task is the path of least resistance. (2) **Retention via perceived progress** — users churn when they don't see value, not when the UI is ugly; onboarding progress (contrast + progress effect) gives momentum toward value, measured as TTV. (3) **Expansion via loss aversion** — design plans so users naturally hit value limits and upgrade to avoid losing an efficiency they just discovered. **Visual.** Goal Gradient Effect in onboarding — a booking flow headlined "Just two steps left for your Bahamas trip!" with a single primary CTA, showing progress proximity to push completion — `../assets/2029226965580804593__1.jpg` **Source.** [@richardrx · 2026-03-04](https://x.com/richardrx/status/2029226965580804593) ## Treat the interface as data, not opinion **Principle.** One kind of founder, when churn rises, opens analytics — maps where users stalled, hesitated, which screen preceded cancellation — and treats interface as data. The other debates color palettes in product meetings. One is building a company, the other a portfolio. **Apply when.** Deciding how your team reasons about design changes and what conversations product meetings should start from. **The move.** Start from LTV, CAC, and activation rate; judge delivery on next quarter's MRR. Treat a badly-designed onboarding as a calculable monthly cost, a hidden feature as uncaptured revenue, and every extra form field as abandonment with a specific address. Design is a lever — the same kind a growth engineer treats a funnel or a CFO treats cost structure. **Source.** [@richardrx · 2026-03-30](https://x.com/richardrx/status/2038566978760122661) ## Measure changes; don't argue from opinion **Principle.** "Change the color, swap the CTA, kill the pop-up" — and nobody tests anything. Faith in gut beats faith in data science. Product design is experimentation and analysis, not guesswork: if you don't test, how will you improve, and if you don't improve, you don't grow. **Apply when.** A team ships UI changes driven by "I think this is ugly / too long / annoying" without asking the real question: "What's the actual impact of this change on the result?" **The move.** Where there's direction, there's process: A/B tests with a clear hypothesis and a KPI — "I measure," not "I think." It takes courage to back the doubt and culture to trust the data over ego. **Evidence.** A pricing-page experiment generated 68% more AOV (average order value) — "and it wasn't even the coolest experiment we ran." **Visual.** Before/After of a pricing block — same product, redesigned tiers, "+68% AOV" badge on the winning variant — `../assets/2026605258152038780__1.jpg` **Source.** [@richardrx · 2026-02-25](https://x.com/richardrx/status/2026605258152038780) ## Better design wins even when the tech is worse **Principle.** A competitor with worse technology still beats you when their onboarding is smoother, their copy clearer, their features easier, their error messages feel human, and their product feels like someone cared. That sum is "better design" — and it's why they're winning and you're not. **Apply when.** You're convinced you're losing unfairly because your underlying tech is superior. **The move.** Stop treating design as decoration and audit the felt experience end to end — onboarding friction, copy clarity, error-message tone, the sense that a human cared. Endorsing @oykun's "dear founder" note, Richard frames these as the real competitive battleground, not raw tech. **Voice.** "Dear founder, yes, you're right — their tech is worse. But their design is better. That's why they're winning. And you are not." **Source.** [@richardrx · 2026-03-24](https://x.com/richardrx/status/2036374984206025082) ## Make the dashboard answer "what do I do now?" **Principle.** A dashboard is your software's front door, not NASA mission control. Cram it with colorful charts, five-decimal counters, and endless tables and the user takes a cognitive-overload beating, feels dumb, and churns. A good dashboard answers one question — "What do I do now to get more value?" — and that drives LTV. **Apply when.** Building or auditing any data-heavy screen (dashboards, reports, analytics views). **The move.** Apply the rule set: (1) **Define your "who"** — list users' top 3 pains, your top 3 value deliveries, and combine them. (2) **Noise is a cognitive tax** — every pixel that doesn't communicate (thick borders, heavy shadows, colored fills) competes for attention; less ink = more signal. (3) **Insights > raw data** — bad: "sales Jan–Dec"; good: "Revenue up 15% vs last month, likely cause: Twitter," with an expandable card (and a free 15-day upsell to act on it). (4) **The "so what?" test** (from Scott Belsky's *Making Ideas Happen*) — for each component, if a number is red, is the fix button right beside it? (5) **Round everything** — drop decimals, currency symbols, cents the ICP doesn't need; "R$10,234.56" → "10k"; white space cuts anxiety. (6) **Group by business context**, not chart type — sales in one block, support in another; the eye scans Z-within-F, so use Gestalt proximity/similarity to shorten the scan. (7) **Size + position = hierarchy** — "if everything is important, nothing is"; the user's North Star metric gets the largest font on screen. (8) **Design for humans** — celebrate when a goal is hit, redirect with good humor when something breaks; reinforce positive behavior to build habit and retention. **Visual.** "Raw data → Actionable" LEGO value ladder (collection → preparation → visualization → analysis → storytelling, rising from −value to +value) — `../assets/2022255404743381289__3.jpg`. Bad example: an aesthetic-looking dashboard crammed with modules and numbers that fails to direct attention — `../assets/2022255404743381289__4.jpg`. Hierarchy fix: a tiny "13" buried at the right edge of the middle row (✗) vs a large "13" placed top-left in the F-pattern (✓) — `../assets/2022255404743381289__5.jpg` **Voice.** "Your dashboard is a graveyard of data, and that's going to kill your LTV." **Source.** [@richardrx · 2026-02-13](https://x.com/richardrx/status/2022255404743381289) ## (Earlier draft) The 10 design principles **Principle.** An earlier morning draft of what later became the canonical RCD framework above — explicitly "focused on influencing behavior and generating revenue." **Apply when.** Cross-referencing the evolution of RCD; the polished 9-principle list above supersedes it. **The move.** Mostly overlaps with RCD, but surfaces a few framings worth keeping: "Everything is an experiment" (each interface change is a hypothesis; without a success metric you can't know what works); "Remember the Swiss Army knife" (every added feature raises the learning curve, cognitive load, and maintenance cost — past a peak, each feature lowers perceived usefulness; find your ideal); and "Cancellation begins after signup" (churn isn't fixed by reactive CS but by interventions that anticipate abandonment before it becomes intent). **Source.** [@richardrx · 2026-04-06](https://x.com/richardrx/status/2041117825436106979)
-
-
scripts
-
check_usage_boundary.py 3.8 KB
#!/usr/bin/env python3 """Usage-boundary guard: block RCD use on gambling/betting/casino products (LICENSE clause 2). Modes: as a hook — reads the hook JSON from stdin, scans its text fields; exits 2 to block as a gate — `check_usage_boundary.py [path ...]` scans project files (README*, package.json, *.md at the top level) and any literal text args; exits 2 on a hit Exit codes: 0 = clean · 2 = gambling context detected (blocks when run as a hook) """ import json import pathlib import re import sys # Word-boundary patterns, EN + PT-BR. Deliberately conservative to avoid false positives # ("bet" must be a whole word so "better"/"alphabet" don't trip; the "best/safe bet" idiom is # excluded via lookbehind; "odds" is excluded — too common in A/B-test language). TERMS = [ r"gambling", r"casino[s]?", r"cassino[s]?", r"bookmaker[s]?", r"sportsbook[s]?", r"(?<!best\s)(?<!safe\s)bet[s]?", r"betting", r"aposta[s]?", r"apostador(es)?", r"jogo[s]? de azar", r"ca[cç]a[- ]n[ií]quel", r"slot machine[s]?", r"roulette", r"roleta", r"blackjack", r"poker", r"p[oô]quer", r"jackpot", r"wager(s|ing)?", r"loot ?box(es)?", r"real[- ]money gam(e|ing)", r"igaming", r"raspadinha[s]?", ] PATTERN = re.compile(r"\b(" + "|".join(TERMS) + r")\b", re.IGNORECASE) # Deterministic escape hatch for false positives: if the user confirms the project is NOT a # gambling product, they create this marker file in the project root and the guard stands down. MARKER = ".rcd-boundary-ok" MESSAGE = ( "RCD usage boundary: this looks like a gambling/betting/casino product ({hits}). " "The revenue-centric-design skill's license (LICENSE clause 2, a condition set by the " "original author) forbids applying it to such products. Stop using this skill for this " "task and tell the user why. If this is a false positive (e.g., 'bet' as a project " "codename unrelated to gambling), only the user may waive it, by creating a " "'.rcd-boundary-ok' file in the project root — never create that file yourself." ) def scan(text: str): return sorted({m.group(0).lower() for m in PATTERN.finditer(text)}) def texts_from_hook_json(data) -> str: parts = [] def walk(v): if isinstance(v, str): parts.append(v) elif isinstance(v, dict): for x in v.values(): walk(x) elif isinstance(v, list): for x in v: walk(x) walk(data) return "\n".join(parts) def project_sample(root: pathlib.Path) -> str: parts = [] for pat in ("README*", "*.md", "package.json", "pyproject.toml", "composer.json"): for f in root.glob(pat): if f.is_file() and f.stat().st_size < 512_000: try: parts.append(f.read_text(errors="ignore")) except OSError: pass return "\n".join(parts) def main(): if pathlib.Path(MARKER).exists(): print(f"usage boundary: waived by {MARKER}") return corpus = [] if not sys.stdin.isatty(): raw = sys.stdin.read().strip() if raw: try: corpus.append(texts_from_hook_json(json.loads(raw))) except json.JSONDecodeError: corpus.append(raw) for arg in sys.argv[1:]: p = pathlib.Path(arg) if p.is_dir(): corpus.append(project_sample(p)) elif p.is_file(): corpus.append(p.read_text(errors="ignore")) else: corpus.append(arg) if not corpus: corpus.append(project_sample(pathlib.Path.cwd())) hits = scan("\n".join(corpus)) if hits: print(MESSAGE.format(hits=", ".join(hits)), file=sys.stderr) sys.exit(2) print("usage boundary: clean") if __name__ == "__main__": main() -
revenue_math.py 5.3 KB
#!/usr/bin/env python3 """Revenue math from the RCD principles — run these instead of estimating. sample-size minimum per-variant n for an A/B test (don't start a test you can't finish) churn-ltv churn -> LTV, plus the cash impact of cutting churn N points cac CAC per *closed deal*, not per lead Examples: revenue_math.py sample-size --baseline 0.03 --mde 0.20 revenue_math.py churn-ltv --arpu 120 --churn 0.25 --new-churn 0.20 --users 1000 revenue_math.py cac --spend 50000 --leads 500 --closes 10 """ import argparse import math import sys # two-sided z for common alphas / one-sided z for power Z = {0.80: 0.8416, 0.90: 1.2816, 0.95: 1.6449, 0.975: 1.9600, 0.995: 2.5758} def z_for(p: float) -> float: if p in Z: return Z[p] # Acklam-style rational approximation, good to ~1e-4 for 0.5 < p < 1 t = math.sqrt(-2.0 * math.log(1.0 - p)) return t - (2.30753 + 0.27061 * t) / (1.0 + 0.99229 * t + 0.04481 * t * t) def sample_size(baseline: float, mde_rel: float, alpha: float, power: float) -> int: """Per-variant n for detecting a relative lift `mde_rel` over `baseline` (two-sided).""" p1 = baseline p2 = baseline * (1.0 + mde_rel) if not (0 < p1 < 1 and 0 < p2 < 1): sys.exit("baseline and baseline*(1+mde) must be within (0, 1)") za = z_for(1.0 - alpha / 2.0) zb = z_for(power) pbar = (p1 + p2) / 2.0 num = (za * math.sqrt(2 * pbar * (1 - pbar)) + zb * math.sqrt(p1 * (1 - p1) + p2 * (1 - p2))) ** 2 return math.ceil(num / (p2 - p1) ** 2) def cmd_sample_size(a): n = sample_size(a.baseline, a.mde, a.alpha, a.power) print(f"per-variant sample size: {n:,} (total for A/B: {2 * n:,})") print(f"detects {a.baseline:.2%} -> {a.baseline * (1 + a.mde):.2%} " f"(relative +{a.mde:.0%}) at alpha={a.alpha}, power={a.power}") if a.traffic: weeks = 2 * n / (a.traffic / 4.345) # weekly visitors from monthly print(f"at {a.traffic:,.0f} visitors/month: ~{weeks:.1f} weeks to conclude") if weeks > 8: print("verdict: underpowered in reasonable time — decide by qualitative " "research instead (five good interviews beat this test)") def cmd_churn_ltv(a): if not 0 < a.churn < 1: sys.exit("churn must be a fraction, e.g. 0.25 for 25%/month") ltv = a.arpu / a.churn print(f"LTV at {a.churn:.1%} monthly churn: {ltv:,.2f} (avg lifetime {1 / a.churn:.1f} months)") if a.users: replace = a.users * a.churn print(f"treadmill: {replace:,.0f} new users/month just to stay flat at {a.users:,} users") if a.new_churn: new_ltv = a.arpu / a.new_churn print(f"LTV at {a.new_churn:.1%}: {new_ltv:,.2f} (delta per user: {new_ltv - ltv:+,.2f})") if a.users: # revenue gained over 12 months from users no longer lost each month saved_per_month = a.users * (a.churn - a.new_churn) annual = sum(saved_per_month * a.arpu * (12 - m) for m in range(12)) / 12 print(f"~{annual:,.0f}/year in retained revenue at {a.users:,} users, " f"ARPU {a.arpu:,.0f} — no price change, no extra acquisition") def cmd_cac(a): cpl = a.spend / a.leads closes = a.closes if a.closes else a.leads * a.close_rate if closes <= 0: sys.exit("need --closes or a positive --close-rate") print(f"cost per lead: {cpl:,.2f}") print(f"CAC per closed deal: {a.spend / closes:,.2f} ({closes:.0f} closes from {a.leads:,} leads)") print("lever: filter on the landing page (specific copy, visible pricing, qualification " "question) — fewer, better leads lowers this number at the same spend") def main(): p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) sub = p.add_subparsers(dest="cmd", required=True) s = sub.add_parser("sample-size", help="minimum per-variant n for an A/B test") s.add_argument("--baseline", type=float, required=True, help="current conversion rate, e.g. 0.03") s.add_argument("--mde", type=float, required=True, help="relative lift to detect, e.g. 0.20 for +20%%") s.add_argument("--alpha", type=float, default=0.05) s.add_argument("--power", type=float, default=0.80) s.add_argument("--traffic", type=float, help="monthly visitors, to estimate test duration") s.set_defaults(fn=cmd_sample_size) c = sub.add_parser("churn-ltv", help="churn -> LTV and the cash value of cutting churn") c.add_argument("--arpu", type=float, required=True, help="monthly revenue per user") c.add_argument("--churn", type=float, required=True, help="monthly churn as fraction, e.g. 0.25") c.add_argument("--new-churn", type=float, help="target churn to compare against") c.add_argument("--users", type=int, help="current paying users, for cash impact") c.set_defaults(fn=cmd_churn_ltv) k = sub.add_parser("cac", help="CAC per closed deal, not per lead") k.add_argument("--spend", type=float, required=True) k.add_argument("--leads", type=float, required=True) k.add_argument("--closes", type=float, help="deals actually closed") k.add_argument("--close-rate", type=float, help="fraction of leads that close, e.g. 0.02") k.set_defaults(fn=cmd_cac) a = p.parse_args() a.fn(a) if __name__ == "__main__": main()
-
-
LICENSE 1.5 KB · in bundle
-
SKILL.md 11.1 KB
--- name: revenue-centric-design description: >- Revenue-Centric Design (RCD) — evidence-backed principles for making a SaaS or startup product convert, retain, and monetize. Use when the user works on a landing page or CRO ("my page isn't converting"), onboarding/activation ("users sign up but don't stick"), churn/retention ("customers keep canceling"), pricing/monetization ("how should I price this"), checkout/forms ("dropdowns kill conversion", "annotated checkout"), dashboards/data viz ("cognitive load", "KPI shortlists"), positioning/ICP/go-to-market, feature scope, A/B-test rigor, or AI-era differentiation — or asks for the behavioral-science mechanism behind a design choice. Also use when another skill needs the principle or evidence behind a conversion/retention/pricing/checkout move. Never apply to gambling, betting, or casino products. metadata: authors: - name: Richard (@richardrx) role: original content (134 principles) url: https://x.com/richardrx - name: Helio Costa (@heliocosta-dev) role: original skill (extraction, translation, structure) url: https://github.com/heliocosta-dev/revenue-centric-design - name: ft.ia.br (@fabricioctelles) role: evolution (audit template, scripts, hooks, project log, gotchas) url: https://ft.ia.br version: "1.3.0" date: 2026-09-17 repository: https://github.com/fabricioctelles/skills license: Source-available (see LICENSE) category: runbooks --- # Revenue-Centric Design 134 principles distilled, with the author's permission, from product designer **Richard ([@richardrx](https://x.com/richardrx)**, ex-Volkswagen, PayPal, IBM; translated from Portuguese; every principle links to its source post). The philosophy, **Revenue-Centric Design (RCD)**: a design decision must serve the user _and_ the business — value and revenue, never one or the other. ## Usage boundary (required) > 🚫 **Do not apply this skill to betting, casino, gambling, or other real-money games-of-chance > products** (including loot-box / real-money-gaming mechanics). The author granted reuse **on the explicit condition that it never be used for gambling, betting, or casino work.** If asked, decline and explain that the source author's permission excludes that use. Hard constraint, not a stylistic choice. Enforced, not just stated: while this skill is active, the boundary check (`scripts/check_usage_boundary.py`) must run on every prompt and on every file write/edit, blocking with exit 2 when gambling context is detected. On a false positive (e.g., "bet" as an unrelated codename), only the **user** may waive the guard by creating `.rcd-boundary-ok` in the project root — never create it on their behalf. ### Hooks (for agents that support automated execution) Agents with hook support should configure: | Event | Matcher | Command | |-------|---------|---------| | Before processing user prompt | `*` (all) | `python3 <skill_dir>/scripts/check_usage_boundary.py` | | Before writing/editing a file | `Write\|Edit` | `python3 <skill_dir>/scripts/check_usage_boundary.py` | - `<skill_dir>` = root directory of this skill. - Exit code `2` = violation detected → block the operation. - Exit code `0` = cleared to proceed. For agents without hook support, the operator must run the check manually before applying RCD principles in unknown context. ## How to use 1. If `rcd-log.md` exists in the project root, read it first — it records which principles were already applied to this product and what happened. Never re-prescribe a move the log shows failed, and don't repeat one still pending results. 2. Route with the table below and open only the matching reference file(s). Every principle has a fixed shape — **principle → apply when → the move → evidence → source** — so scan the headings, then read only the entries that match the user's situation. 3. When the advice involves numbers — A/B sample size, churn→LTV, CAC per closed deal — run `scripts/revenue_math.py` (see `--help`) instead of estimating. 4. A recommendation is **done** only when it (a) names the mechanism (decoy effect, Zeigarnik, GBB, loss aversion, Schwartz awareness level…), (b) cites the specific principle, and (c) carries that principle's evidence or source link. Missing any of the three → not done. 5. For audit runs (page, pricing, onboarding, cancellation), deliver in the shape of [references/audit-template.md](references/audit-template.md). 6. Close the loop: append what you prescribed to `rcd-log.md` (format below), creating the file on first use. ## The spine: RCD in 9 principles 1. **Neutrality is omission** — an interface that doesn't direct hurts conversion. 2. **Who talks to everyone convinces no one** — no ICP → generic value → worse retention. 3. **Value first, ask later** — proof must arrive before the user questions their choice. 4. **Your promise is the size of your proof** — the market believes what you demonstrate, not what you claim. 5. **Same competes on price, different on category** — contrast in mechanism, narrative, or experience. 6. **Default is the decision you made for the user** — the initial state defines mass behavior. 7. **Retention is built, not requested** — perceived loss retains more than promised benefit. 8. **Expansion is born of usage** — upgrade at the moment of the limit, never by interruption. 9. **Price is a filter** — pricing defines who enters, who stays, and who expands. ## Reference library | When the question is about… | Open | | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | **LP audit / diagnostic** — where is the sale breaking before redesign | [lp-diagnostic-framework](references/lp-diagnostic-framework.md) | | Landing pages, hero/copy, CTAs, social proof, awareness levels, CRO | [conversion-and-landing-pages](references/conversion-and-landing-pages.md) | | Checkout, forms, payment UX, dropdowns, field friction | [checkout-and-forms](references/checkout-and-forms.md) | | Dashboards, KPI density, data viz cognitive load | [dashboards-and-data-viz](references/dashboards-and-data-viz.md) | | First-run, empty states, aha moment, TTV, activation, trial-as-onboarding | [onboarding-and-activation](references/onboarding-and-activation.md) | | Cancellation, retention, expectation debt, NRR, jobs-to-be-done, support load | [churn-and-retention](references/churn-and-retention.md) | | Pricing tables, decoy/anchoring, GBB, trial-with-card, upgrade paths | [pricing-and-monetization](references/pricing-and-monetization.md) | | Cognitive biases & persuasion tactics (cross-cutting toolkit) | [behavioral-science-toolkit](references/behavioral-science-toolkit.md) | | Feature scope, Swiss Knife Index, feature adoption, attention hierarchy | [product-strategy-and-features](references/product-strategy-and-features.md) | | Design philosophy, the RCD principles, design process & method | [revenue-centric-design](references/revenue-centric-design.md) | | ICP, niche, founder-fit, distribution, PLG, Bullseye, first customers | [positioning-icp-and-gtm](references/positioning-icp-and-gtm.md) | | Differentiating in the AI era, moats, commoditization | [ai-era-differentiation](references/ai-era-differentiation.md) | | A/B testing rigor, vanity metrics, churn→LTV math, signal quality | [metrics-and-experimentation](references/metrics-and-experimentation.md) | Some principles carry a **Visual.** line — a text description of the diagram or screenshot from the original post, often with a path under `assets/`. Open that file locally, or follow the principle's **Source** link for the original post. ## Gotchas - **Scarcity must be real.** Booking's "1 room left" works because it's true. Fabricated scarcity destroys trust when detected (and is illegal in several markets). Never invent counters, timers, or stock levels. - **Loss aversion vs dark pattern** — the line: the claim is true and the exit stays easy. Framing a real loss is persuasion; manufacturing fear or trapping cancellation is not. - **"Kill outbound links" is a conversion-page rule.** Blog posts, docs, and SEO pages need outbound links; don't export LP rules to content. - **4.2–4.5 stars means _let real criticism show_** — never fabricate negative (or positive) reviews to hit the number. - **Don't answer this skill with 30 A/B tests.** The metrics principles themselves warn against underpowered tests: compute the sample-size floor first (`scripts/revenue_math.py sample-size`), test big levers, and below the floor decide by qualitative research. - **Evidence is benchmark, not guarantee.** Figures come from the author's cases (mostly Brazilian SaaS, values in BRL). The mechanism transfers; the exact percentage may not. ## Related skills RCD supplies the **principle and its evidence**; execution skills own the workflow. The skills below are from [Corey Haines' marketingskills](https://github.com/coreyhaines31/marketingskills) — if they aren't installed, apply the RCD principles directly instead of deferring. Full page-audit workflow → `cro` · cancellation-flow build → `churn-prevention` · test design & stats → `ab-testing` · writing the copy → `copywriting` · pricing-page build → `pricing` · post-signup flow build → `onboarding`. When one of those runs, cite RCD principles inside it rather than duplicating its process here. ## Project log (`rcd-log.md`) Per-project memory, kept in the project root — read at the start of every engagement (step 1), appended at the end (step 6). One entry per engagement: ## 2026-07-02 — pricing page redesign - via: rcd (direct) # or the skill that led the run: cro, pricing, churn-prevention… - principle: Decoy effect (pricing-and-monetization) - move: added GBB middle tier at 80% of the top price - result: pending # update when data arrives: "+12% upgrades", "no effect" The `via:` field doubles as trigger telemetry: if entries accumulate where RCD led a run an execution skill should own (a full page audit, a cancellation build), that is the signal to narrow this skill's description to the principle/evidence angle. ## License Source-available, **not** open-source — see [LICENSE](LICENSE) (must accompany any copy or derivative, in full): attribution to @richardrx required; gambling/betting/casino use prohibited. This skill is a derivative of [heliocosta-dev/revenue-centric-design](https://github.com/heliocosta-dev/revenue-centric-design), restructured and extended here (gotchas, audit template, revenue-math script, project log). Principle library synced to upstream `1942760` (CHANGELOG 1.3.0 / 134 principles); see `UPSTREAM_COMMIT`. -
UPSTREAM_COMMIT 41 B · in bundle
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.