@ranimontagna/agent-toolkit 0.1.18 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +23 -18
  2. package/package.json +4 -4
  3. package/skills/backend/api/api-design/NOTICE.md +1 -1
  4. package/skills/backend/api/api-design/SKILL.md +2 -1
  5. package/skills/backend/go/golang-patterns/NOTICE.md +1 -1
  6. package/skills/backend/go/golang-patterns/SKILL.md +2 -1
  7. package/skills/backend/java/java-coding-standards/NOTICE.md +1 -1
  8. package/skills/backend/java/java-coding-standards/SKILL.md +2 -1
  9. package/skills/backend/kotlin/kotlin-patterns/NOTICE.md +1 -1
  10. package/skills/backend/kotlin/kotlin-patterns/SKILL.md +2 -1
  11. package/skills/backend/kotlin/kotlin-testing/NOTICE.md +1 -1
  12. package/skills/backend/kotlin/kotlin-testing/SKILL.md +2 -1
  13. package/skills/frontend/accessibility/NOTICE.md +1 -1
  14. package/skills/frontend/accessibility/SKILL.md +2 -1
  15. package/skills/frontend/astro/astro-developer/NOTICE.md +1 -1
  16. package/skills/frontend/astro/astro-developer/SKILL.md +1 -1
  17. package/skills/frontend/astro/astro-developer/debugging.md +7 -7
  18. package/skills/frontend/design/revenue-centric-design/LICENSE +30 -0
  19. package/skills/frontend/design/revenue-centric-design/NOTICE.md +12 -0
  20. package/skills/frontend/design/revenue-centric-design/SKILL.md +73 -0
  21. package/skills/frontend/design/revenue-centric-design/assets/2011427153133351046__1.jpg +0 -0
  22. package/skills/frontend/design/revenue-centric-design/assets/2011427153133351046__2.jpg +0 -0
  23. package/skills/frontend/design/revenue-centric-design/assets/2011427153133351046__3.jpg +0 -0
  24. package/skills/frontend/design/revenue-centric-design/assets/2013264068518289753__1.jpg +0 -0
  25. package/skills/frontend/design/revenue-centric-design/assets/2013264068518289753__2.jpg +0 -0
  26. package/skills/frontend/design/revenue-centric-design/assets/2013597792447394034__1.jpg +0 -0
  27. package/skills/frontend/design/revenue-centric-design/assets/2014317885494059106__1.jpg +0 -0
  28. package/skills/frontend/design/revenue-centric-design/assets/2017274698699067466__1.jpg +0 -0
  29. package/skills/frontend/design/revenue-centric-design/assets/2018357024543715480__1.jpg +0 -0
  30. package/skills/frontend/design/revenue-centric-design/assets/2018693884449009956__1.jpg +0 -0
  31. package/skills/frontend/design/revenue-centric-design/assets/2018693884449009956__2.jpg +0 -0
  32. package/skills/frontend/design/revenue-centric-design/assets/2018693884449009956__3.jpg +0 -0
  33. package/skills/frontend/design/revenue-centric-design/assets/2018693884449009956__4.jpg +0 -0
  34. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__1.jpg +0 -0
  35. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__10.jpg +0 -0
  36. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__2.jpg +0 -0
  37. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__3.jpg +0 -0
  38. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__4.jpg +0 -0
  39. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__5.jpg +0 -0
  40. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__6.jpg +0 -0
  41. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__7.jpg +0 -0
  42. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__8.jpg +0 -0
  43. package/skills/frontend/design/revenue-centric-design/assets/2019019293761941566__9.jpg +0 -0
  44. package/skills/frontend/design/revenue-centric-design/assets/2019514730696565238__1.jpg +0 -0
  45. package/skills/frontend/design/revenue-centric-design/assets/2022255404743381289__1.jpg +0 -0
  46. package/skills/frontend/design/revenue-centric-design/assets/2022255404743381289__2.jpg +0 -0
  47. package/skills/frontend/design/revenue-centric-design/assets/2022255404743381289__3.jpg +0 -0
  48. package/skills/frontend/design/revenue-centric-design/assets/2022255404743381289__4.jpg +0 -0
  49. package/skills/frontend/design/revenue-centric-design/assets/2022255404743381289__5.jpg +0 -0
  50. package/skills/frontend/design/revenue-centric-design/assets/2023777916673220817__q__1.jpg +0 -0
  51. package/skills/frontend/design/revenue-centric-design/assets/2024076972565963186__q__1.mp4 +0 -0
  52. package/skills/frontend/design/revenue-centric-design/assets/2024141244717281514__1.jpg +0 -0
  53. package/skills/frontend/design/revenue-centric-design/assets/2025246347587162602__q__1.jpg +0 -0
  54. package/skills/frontend/design/revenue-centric-design/assets/2026605258152038780__1.jpg +0 -0
  55. package/skills/frontend/design/revenue-centric-design/assets/2026978144343687177__q__1.jpg +0 -0
  56. package/skills/frontend/design/revenue-centric-design/assets/2028471666297217460__1.jpg +0 -0
  57. package/skills/frontend/design/revenue-centric-design/assets/2028777831233114152__q__1.jpg +0 -0
  58. package/skills/frontend/design/revenue-centric-design/assets/2028837448717926518__1.jpg +0 -0
  59. package/skills/frontend/design/revenue-centric-design/assets/2029226965580804593__1.jpg +0 -0
  60. package/skills/frontend/design/revenue-centric-design/assets/2029623167900061970__1.jpg +0 -0
  61. package/skills/frontend/design/revenue-centric-design/assets/2031722047080960265__q__1.jpg +0 -0
  62. package/skills/frontend/design/revenue-centric-design/assets/2031722047080960265__q__2.jpg +0 -0
  63. package/skills/frontend/design/revenue-centric-design/assets/2031722047080960265__q__3.jpg +0 -0
  64. package/skills/frontend/design/revenue-centric-design/assets/2031722047080960265__q__4.jpg +0 -0
  65. package/skills/frontend/design/revenue-centric-design/assets/2033880553607364684__1.jpg +0 -0
  66. package/skills/frontend/design/revenue-centric-design/assets/2034638793219694734__q__1.jpg +0 -0
  67. package/skills/frontend/design/revenue-centric-design/assets/2036035304868434115__1.jpg +0 -0
  68. package/skills/frontend/design/revenue-centric-design/assets/2036461688505909250__1.jpg +0 -0
  69. package/skills/frontend/design/revenue-centric-design/assets/2037316988981174464__1.jpg +0 -0
  70. package/skills/frontend/design/revenue-centric-design/assets/2037583944283996418__1.jpg +0 -0
  71. package/skills/frontend/design/revenue-centric-design/assets/2039399756452057159__1.jpg +0 -0
  72. package/skills/frontend/design/revenue-centric-design/assets/2040415841628651689__1.jpg +0 -0
  73. package/skills/frontend/design/revenue-centric-design/assets/2041829519611371727__1.jpg +0 -0
  74. package/skills/frontend/design/revenue-centric-design/assets/2042013751742705816__1.jpg +0 -0
  75. package/skills/frontend/design/revenue-centric-design/assets/2042558822825239030__1.jpg +0 -0
  76. package/skills/frontend/design/revenue-centric-design/assets/2054283657934758021__1.jpg +0 -0
  77. package/skills/frontend/design/revenue-centric-design/assets/2054910531132183030__1.jpg +0 -0
  78. package/skills/frontend/design/revenue-centric-design/assets/2057124008445796659__1.jpg +0 -0
  79. package/skills/frontend/design/revenue-centric-design/assets/2057872036718899256__1.jpg +0 -0
  80. package/skills/frontend/design/revenue-centric-design/assets/2059236567533650119__1.jpg +0 -0
  81. package/skills/frontend/design/revenue-centric-design/assets/2059951433827426437__1.jpg +0 -0
  82. package/skills/frontend/design/revenue-centric-design/assets/2059997257156399233__1.jpg +0 -0
  83. package/skills/frontend/design/revenue-centric-design/assets/2059997257156399233__2.jpg +0 -0
  84. package/skills/frontend/design/revenue-centric-design/assets/2059997257156399233__3.jpg +0 -0
  85. package/skills/frontend/design/revenue-centric-design/assets/2062554393447141438__1.jpg +0 -0
  86. package/skills/frontend/design/revenue-centric-design/assets/2062621019978760424__1.jpg +0 -0
  87. package/skills/frontend/design/revenue-centric-design/assets/2067987722954735812__1.jpg +0 -0
  88. package/skills/frontend/design/revenue-centric-design/assets/2070140923380420796__1.jpg +0 -0
  89. package/skills/frontend/design/revenue-centric-design/references/ai-era-differentiation.md +57 -0
  90. package/skills/frontend/design/revenue-centric-design/references/behavioral-science-toolkit.md +60 -0
  91. package/skills/frontend/design/revenue-centric-design/references/churn-and-retention.md +66 -0
  92. package/skills/frontend/design/revenue-centric-design/references/conversion-and-landing-pages.md +132 -0
  93. package/skills/frontend/design/revenue-centric-design/references/metrics-and-experimentation.md +31 -0
  94. package/skills/frontend/design/revenue-centric-design/references/onboarding-and-activation.md +148 -0
  95. package/skills/frontend/design/revenue-centric-design/references/positioning-icp-and-gtm.md +64 -0
  96. package/skills/frontend/design/revenue-centric-design/references/pricing-and-monetization.md +87 -0
  97. package/skills/frontend/design/revenue-centric-design/references/product-strategy-and-features.md +58 -0
  98. package/skills/frontend/design/revenue-centric-design/references/revenue-centric-design.md +105 -0
  99. package/skills/frontend/design/ui-ux-pro-max/NOTICE.md +1 -1
  100. package/skills/frontend/design/ui-ux-pro-max/SKILL.md +30 -18
  101. package/skills/frontend/react/react-patterns/NOTICE.md +1 -1
  102. package/skills/frontend/react/react-patterns/SKILL.md +2 -1
  103. package/skills/frontend/react/react-performance/NOTICE.md +1 -1
  104. package/skills/frontend/react/react-performance/SKILL.md +2 -1
  105. package/skills/frontend/react/react-testing/NOTICE.md +1 -1
  106. package/skills/frontend/react/react-testing/SKILL.md +2 -1
  107. package/skills/general/code-reviewer/AGENTS.md +1 -1
  108. package/skills/general/code-reviewer/NOTICE.md +1 -1
  109. package/tools.lock.json +14 -14
@@ -0,0 +1,64 @@
1
+ # Positioning, ICP & Go-to-Market
2
+
3
+ > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post.
4
+
5
+ ## Size the market with TAM → SAM → SOM (and know which one matters)
6
+ **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.
7
+ **Apply when.** Sizing a market, writing a deck, or judging whether a niche is big enough.
8
+ **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.
9
+ **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.
10
+ **Visual.** TAM/SAM/SOM concentric-circle diagram with definitions — `../assets/2070140923380420796__1.jpg`
11
+ **Source.** [@richardrx · 2026-06-25](https://x.com/richardrx/status/2070140923380420796)
12
+
13
+ ## Frame the referral prize as a gift to the friend, not a commission to the referrer
14
+ **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.
15
+ **Apply when.** Designing or fixing a referral program and defaulting to "refer a friend, get $20."
16
+ **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.
17
+ **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.
18
+ **Voice.** "A referral amplifies a product people already love — it doesn't fix a product nobody recommends for free."
19
+ **Source.** [@richardrx · 2026-06-02](https://x.com/richardrx/status/2061766945582559509)
20
+
21
+ ## Pick a deliberately under-served niche as your ICP
22
+ **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.
23
+ **Apply when.** Early traction; tempted to "embrace the world" out of fear of a small TAM.
24
+ **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.
25
+ **Voice.** "A generalist ERP is hard to sell; an ERP for cabinetmaking is a different conversation."
26
+ **Source.** [@richardrx · 2026-05-19](https://x.com/richardrx/status/2056789797646029232)
27
+
28
+ ## Don't claim PLG without the four structural conditions
29
+ **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.
30
+ **Apply when.** Writing a pitch deck or strategy and calling the motion "self-service" / PLG.
31
+ **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.
32
+ **Evidence.** Brazil has ~20,000 companies with 100+ employees, and only ~a dozen B2B SaaS where PLG makes real economic sense.
33
+ **Voice.** "Founders love PLG because it seems to delete the part they don't master — selling."
34
+ **Source.** [@richardrx · 2026-05-04](https://x.com/richardrx/status/2051262752547536941)
35
+
36
+ ## Charge your first ten users from day one
37
+ **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.
38
+ **Apply when.** Validating a new product and tempted to give early access away to "build a base."
39
+ **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.
40
+ **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.
41
+ **Voice.** "Curiosity is free; an open wallet demands a concrete problem."
42
+ **Source.** [@richardrx · 2026-04-26](https://x.com/richardrx/status/2048359526487716333)
43
+
44
+ ## Reverse-engineer the funnel math before celebrating an MRR target
45
+ **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.
46
+ **Apply when.** Someone asks "is it hard to hit X MRR?" or you're sizing acquisition for a target customer count.
47
+ **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.
48
+ **Evidence.** 20% monthly churn → 5-month average lifetime; at low ticket many operate at 40–50% churn, so "the bucket never fills."
49
+ **Voice.** "Building the product is the easy part; distribution is the game."
50
+ **Source.** [@richardrx · 2026-04-20](https://x.com/richardrx/status/2046222319912132977)
51
+
52
+ ## Concentrate channels with the Bullseye framework, not scattershot testing
53
+ **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.
54
+ **Apply when.** You're spreading content and traffic across many channels with no clear read on what works.
55
+ **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.
56
+ **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`
57
+ **Source.** [@richardrx · 2026-03-23](https://x.com/richardrx/status/2036035304868434115)
58
+
59
+ ## Diagnose the bottleneck: no entries is distribution, leaving without paying is design
60
+ **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.
61
+ **Apply when.** A builder ships an app, gets near-zero users, and hopes a redesign will rescue it.
62
+ **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.
63
+ **Voice.** "If nobody enters your product, it's distribution. If they enter, don't pay, and leave, that's design."
64
+ **Source.** [@richardrx · 2026-02-28](https://x.com/richardrx/status/2027721170569564521)
@@ -0,0 +1,87 @@
1
+ # Pricing & Monetization Psychology
2
+
3
+ > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post.
4
+
5
+ ## The freemium trap, in numbers: higher conversion, far lower cash
6
+ **Principle.** A free plan lifts signup conversion but can crush the economics — the higher top-of-funnel number hides a worse business.
7
+ **Apply when.** You're tempted by freemium's better conversion rate.
8
+ **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.
9
+ **Voice.** "One scenario reinvests its own profit; the other funds losses until the money runs out."
10
+ **Source.** [@richardrx · 2026-07-01](https://x.com/richardrx/status/2072312844784152628)
11
+
12
+ ## Whether freemium works is decided by the cost to serve a free user
13
+ **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.
14
+ **Apply when.** Considering a free plan, especially as a bootstrapped (non-bigtech) founder.
15
+ **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.
16
+ **Voice.** "For an AI product, your free user was never free."
17
+ **Source.** [@richardrx · 2026-06-30](https://x.com/richardrx/status/2071962778072469560)
18
+
19
+ ## Price is the cheapest money — stop anchoring it to the cheapest competitor
20
+ **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.
21
+ **Apply when.** Setting or revisiting price; fearing a "no."
22
+ **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.
23
+ **Voice.** "Charging more without seeming to be worth more is just raising the price of rejection."
24
+ **Source.** [@richardrx · 2026-06-29](https://x.com/richardrx/status/2071634185228329219)
25
+
26
+ ## Make the middle plan the one you actually want to sell
27
+ **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.
28
+ **Apply when.** Building or auditing a SaaS pricing page, especially if you copied competitors without assigning each tier a role.
29
+ **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.
30
+ **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.
31
+ **Visual.** Economist subscription page; the decoy's removal shifts combo-plan share from 84% down to 32% — `../assets/2059951433827426437__1.jpg`
32
+ **Voice.** "Option B was never built to be sold — it was built to make C look obvious. It's the bait."
33
+ **Source.** [@richardrx · 2026-05-28](https://x.com/richardrx/status/2059951433827426437)
34
+
35
+ ## Ask for the card in trial — but optimize for the right ICP, not raw conversion
36
+ **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.
37
+ **Apply when.** Choosing trial-with-card vs trial-without-card (or freemium), or designing recurring billing for a Brazilian market.
38
+ **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.
39
+ **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.
40
+ **Voice.** "Don't ask which model converts more — ask which model attracts and retains the right ICP."
41
+ **Source.** [@richardrx · 2026-05-15](https://x.com/richardrx/status/2055247161349054950)
42
+
43
+ ## Frame the upgrade as a loss at the moment of value, not a feature you're selling
44
+ **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.
45
+ **Apply when.** A happy, active free user never upgrades, or your upgrade rate sits below 5%.
46
+ **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.
47
+ **Voice.** "If your upgrade rate is below 5%, the problem probably isn't price — it's how and when you're asking."
48
+ **Source.** [@richardrx · 2026-04-21](https://x.com/richardrx/status/2046544442216054981)
49
+
50
+ ## Engineer the comparison frame with a decoy and a high anchor — and drop Free from the top
51
+ **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.
52
+ **Apply when.** You run the default Free / Pro / Enterprise (sob consulta) ladder and Pro isn't converting.
53
+ **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.
54
+ **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.
55
+ **Voice.** "You're competing against your own free plan. And losing."
56
+ **Source.** [@richardrx · 2026-04-14](https://x.com/richardrx/status/2044014136770580743)
57
+
58
+ ## Tie the trial's end to value consumed, not the calendar
59
+ **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.
60
+ **Apply when.** You copied a competitor's 14-day trial and paid conversion is failing, or you're setting trial length from scratch.
61
+ **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.
62
+ **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."
63
+ **Source.** [@richardrx · 2026-03-16](https://x.com/richardrx/status/2033502548301091057)
64
+
65
+ ## Order pricing rows by the serial-position effect: killer feature first, differentiator last
66
+ **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.
67
+ **Apply when.** Laying out the feature rows inside a pricing card or comparison table.
68
+ **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."
69
+ **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`
70
+ **Voice.** "Pricing success depends not just on what you deliver, but on the order the brain is led to process the value."
71
+ **Source.** [@richardrx · 2026-03-05](https://x.com/richardrx/status/2029623167900061970)
72
+
73
+ ## Build a single value axis, then tune the decoy's distance to your target plan
74
+ **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.
75
+ **Apply when.** Naming and pricing tiers, or the "value staircase" between your plans isn't obvious to users.
76
+ **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.
77
+ **Visual.** Decorative 3D price-tag illustration — no data.
78
+ **Source.** [@richardrx · 2026-02-02](https://x.com/richardrx/status/2018357024543715480)
79
+
80
+ ## Engineer the pricing page with Good-Better-Best and control the comparison
81
+ **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.
82
+ **Apply when.** Designing or fixing a pricing page; conversions die at the final step despite strong CAC spend.
83
+ **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."
84
+ **Evidence.** Cites Briesch et al. (1997) and Mazumdar et al. (2005) on reference-price models, and Chernev (2015) on choice overload.
85
+ **Visual.** Two mirrored BR-vs-PY indicator tables prove framing: swapping which metrics are shown flips which country "wins" — `../assets/2018693884449009956__1.jpg`, `../assets/2018693884449009956__2.jpg`. Four-tier mockup highlights a "Most Popular" target beside a high anchor (Hick's law / few options) — `../assets/2018693884449009956__4.jpg`
86
+ **Voice.** "Your pricing page is killing your LTV — and I can prove it."
87
+ **Source.** [@richardrx · 2026-02-03](https://x.com/richardrx/status/2018693884449009956)
@@ -0,0 +1,58 @@
1
+ # Product Strategy & Feature Discipline
2
+
3
+ > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post.
4
+
5
+ ## Run every feature through a two-layer "Swiss Knife filter" before building
6
+ **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?"
7
+ **Apply when.** A roadmap item feels appealing but nobody applied a filter before committing to build.
8
+ **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.
9
+ **Visual.** Prioritization scoring table: (New Users + New Revenue + Impact Level) / Effort = Score — `../assets/2059236567533650119__1.jpg`
10
+ **Voice.** "Every feature that gets in, stays. And it charges rent forever."
11
+ **Source.** [@richardrx · 2026-05-26](https://x.com/richardrx/status/2059236567533650119)
12
+
13
+ ## Feature adoption is a design problem, not a communication problem
14
+ **Principle.** Shipping a feature doesn't make it discovered; users move through their habitual path and never see what they aren't looking for.
15
+ **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.
16
+ **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.
17
+ **Voice.** "Launching a feature is easy; getting it used is a whole other thing."
18
+ **Source.** [@richardrx · 2026-05-20](https://x.com/richardrx/status/2057162392048476345)
19
+
20
+ ## Compute your Swiss Knife Index to expose feature creep
21
+ **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.
22
+ **Apply when.** The roadmap has become a user wishlist and every new feature feels like progress (especially with AI making building cheap).
23
+ **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).
24
+ **Visual.** SKI curve — perceived utility rises then declines past the optimal point as complexity keeps climbing — `../assets/2057124008445796659__1.jpg`
25
+ **Voice.** "Which feature would I show first if I had 30 seconds to sell the product?"
26
+ **Source.** [@richardrx · 2026-05-20](https://x.com/richardrx/status/2057124008445796659)
27
+
28
+ ## Design the attention hierarchy to direct behavior, not just organize info
29
+ **Principle.** A product that organizes delivers access; a product that directs delivers activation — and the visual hierarchy decides which the user gets.
30
+ **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.
31
+ **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.
32
+ **Visual.** A typographic demo (huge headline "YOU WILL READ THIS FIRST") proving the eye follows visual weight, not reading order — `../assets/2039399756452057159__1.jpg`
33
+ **Voice.** "A well-designed attention hierarchy makes the user use what retains; a bad one makes them use what's most salient."
34
+ **Source.** [@richardrx · 2026-04-01](https://x.com/richardrx/status/2039399756452057159)
35
+
36
+ ## Ground feature discipline in the academic feature-fatigue research
37
+ **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.
38
+ **Apply when.** You need the evidence behind cutting features, and want to separate pre-purchase appeal from post-purchase utility.
39
+ **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).
40
+ **Evidence.** Thompson, Hamilton & Rust (2005), "Feature Fatigue," JMR 42(4); distinction bias (Hsee & Zhang 2004); analysis paralysis (Iyengar & Lepper 2000).
41
+ **Voice.** "A product that grows without criteria doesn't get rich — it gets expensive to sustain and hard to sell."
42
+ **Source.** [@richardrx · 2026-03-18](https://x.com/richardrx/status/2034248739557159293)
43
+
44
+ ## Past the optimal feature count, a technically bigger product becomes functionally worse
45
+ **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.
46
+ **Apply when.** You hear "my interface looks good, but people don't use the main features" — a sign you've passed the optimal point.
47
+ **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.
48
+ **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`
49
+ **Voice.** "A bloated product isn't a rich product — it's a product actively destroying the conversion and retention you paid dearly to win."
50
+ **Source.** [@richardrx · 2026-03-17](https://x.com/richardrx/status/2033880553607364684)
51
+
52
+ ## Focus on your core; trying to be "all-in-one" dilutes your value proposition
53
+ **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.
54
+ **Apply when.** The product is tempted to "embrace the world" and become a do-everything tool, abandoning the specific ICP that made it loved.
55
+ **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.
56
+ **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.]
57
+ **Voice.** "Focus on your damn core."
58
+ **Source.** [@richardrx · 2026-03-11](https://x.com/richardrx/status/2031722047080960265)
@@ -0,0 +1,105 @@
1
+ # Revenue-Centric Design — Philosophy & Process
2
+
3
+ > Curated, distilled wisdom from @richardrx ("Richard — Design for startups"), translated from Portuguese. Each entry is a reusable principle linked to its source post.
4
+
5
+ ## The 9 principles of Revenue Centric Design (RCD)
6
+ **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."
7
+ **Apply when.** Designing any digital product meant to convert, retain, and expand; you need a north-star checklist for decisions.
8
+ **The move.** Apply all nine:
9
+ 1. **Neutrality is omission** — an interface that doesn't direct hurts conversion.
10
+ 2. **Who talks to everyone convinces no one** — no ICP means generic value, which retains worse.
11
+ 3. **Value first, ask later** — proof must arrive before the user questions their choice.
12
+ 4. **Your promise is the size of your proof** — the market believes what you demonstrate, not what you claim.
13
+ 5. **Same competes on price, different on category** — contrast in mechanism, narrative, or experience; no contrast, no margin.
14
+ 6. **Default is the decision you made for the user** — most never change settings; the initial state defines mass behavior.
15
+ 7. **Retention is built, not requested** — show what the user accumulated; perceived loss retains more than promised benefit.
16
+ 8. **Expansion is born of usage** — upsell that interrupts breeds resistance; upgrade at the moment of the limit converts frictionlessly.
17
+ 9. **Price is a filter** — pricing defines who enters, who stays, who expands; wrong price attracts the wrong ICP.
18
+ **Voice.** "Rams taught me form and function. Amber Case taught me attention and context. Neither taught me to think about revenue."
19
+ **Source.** [@richardrx · 2026-05-05](https://x.com/richardrx/status/2051672248348479691)
20
+
21
+ ## Design's leverage isn't constant — it changes with the product stage
22
+ **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.
23
+ **Apply when.** Deciding where design effort should go at your current stage.
24
+ **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.
25
+ **Voice.** "Polishing the UI of a product nobody wants is the most beautiful mistake there is. It dies pretty."
26
+ **Source.** [@richardrx · 2026-06-15](https://x.com/richardrx/status/2066476811177877962)
27
+
28
+ ## Design owns the flow, not the final coat of paint
29
+ **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.
30
+ **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).
31
+ **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.
32
+ **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."
33
+ **Source.** [@richardrx · 2026-06-09](https://x.com/richardrx/status/2064327349894553855)
34
+
35
+ ## Find the leaks before you rebuild the bucket
36
+ **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.
37
+ **Apply when.** Conversion or retention is dropping and the team's reflex is a full redesign (the addictive blank-page urge).
38
+ **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.
39
+ **Visual.** Journey graph — cumulative score sliding downward, green dots = wins, small red dots = micro-disappointments stacking up — `../assets/2062621019978760424__1.jpg`
40
+ **Voice.** "Redesign from zero says more about the desire of whoever's drawing than the pain of whoever's using."
41
+ **Source.** [@richardrx · 2026-06-04](https://x.com/richardrx/status/2062621019978760424)
42
+
43
+ ## Refactor to solve a real problem, not to repaint the wall
44
+ **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.
45
+ **Apply when.** You feel the itch to redo a screen mid-project; separate "this resolves a known pain" from "this just looks nicer."
46
+ **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."
47
+ **Visual.** RepareCar quote builder — parts pre-loaded with photo, code, and cost; live financial summary (labor + parts = total); client approves by phone — `../assets/2062554393447141438__1.jpg`
48
+ **Source.** [@richardrx · 2026-06-04](https://x.com/richardrx/status/2062554393447141438)
49
+
50
+ ## Mine the tactical layer — it's the most under-explored
51
+ **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.
52
+ **Apply when.** Your SaaS UI looks like every competitor's; you assume polish is "too obvious" to bother with.
53
+ **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.
54
+ **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.
55
+ **Source.** [@richardrx · 2026-05-28](https://x.com/richardrx/status/2059997257156399233)
56
+
57
+ ## Leave the over-used parts alone; improve around them
58
+ **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.
59
+ **Apply when.** You're tempted to overhaul a working, well-adopted product.
60
+ **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.
61
+ **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.
62
+ **Voice.** "While we see every redesign as an upgrade, the user can see it as a threat."
63
+ **Source.** [@richardrx · 2026-05-12](https://x.com/richardrx/status/2054180098392178796)
64
+
65
+ ## Don't hire a designer to make software "pretty"
66
+ **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.
67
+ **Apply when.** You're scoping design as cosmetics rather than as a growth lever for conversion, retention, and expansion.
68
+ **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.
69
+ **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`
70
+ **Source.** [@richardrx · 2026-03-04](https://x.com/richardrx/status/2029226965580804593)
71
+
72
+ ## Treat the interface as data, not opinion
73
+ **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.
74
+ **Apply when.** Deciding how your team reasons about design changes and what conversations product meetings should start from.
75
+ **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.
76
+ **Source.** [@richardrx · 2026-03-30](https://x.com/richardrx/status/2038566978760122661)
77
+
78
+ ## Measure changes; don't argue from opinion
79
+ **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.
80
+ **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?"
81
+ **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.
82
+ **Evidence.** A pricing-page experiment generated 68% more AOV (average order value) — "and it wasn't even the coolest experiment we ran."
83
+ **Visual.** Before/After of a pricing block — same product, redesigned tiers, "+68% AOV" badge on the winning variant — `../assets/2026605258152038780__1.jpg`
84
+ **Source.** [@richardrx · 2026-02-25](https://x.com/richardrx/status/2026605258152038780)
85
+
86
+ ## Better design wins even when the tech is worse
87
+ **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.
88
+ **Apply when.** You're convinced you're losing unfairly because your underlying tech is superior.
89
+ **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.
90
+ **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."
91
+ **Source.** [@richardrx · 2026-03-24](https://x.com/richardrx/status/2036374984206025082)
92
+
93
+ ## Make the dashboard answer "what do I do now?"
94
+ **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.
95
+ **Apply when.** Building or auditing any data-heavy screen (dashboards, reports, analytics views).
96
+ **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.
97
+ **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 overloaded with color that fails to direct attention — `../assets/2022255404743381289__4.jpg`. Hierarchy fix: a tiny "13" lost bottom-right (✗) vs a large "13" placed top-left in the F-pattern (✓) — `../assets/2022255404743381289__5.jpg`
98
+ **Voice.** "Your dashboard is a graveyard of data, and that's going to kill your LTV."
99
+ **Source.** [@richardrx · 2026-02-13](https://x.com/richardrx/status/2022255404743381289)
100
+
101
+ ## (Earlier draft) The 10 design principles
102
+ **Principle.** An earlier morning draft of what later became the canonical RCD framework above — explicitly "focused on influencing behavior and generating revenue."
103
+ **Apply when.** Cross-referencing the evolution of RCD; the polished 9-principle list above supersedes it.
104
+ **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).
105
+ **Source.** [@richardrx · 2026-04-06](https://x.com/richardrx/status/2041117825436106979)
@@ -3,7 +3,7 @@
3
3
  This skill was copied from Next Level Builder's UI/UX Pro Max Skill repository.
4
4
 
5
5
  - Source: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/tree/main/.claude/skills/ui-ux-pro-max
6
- - Source commit: b7e3af80f6e331f6fb456667b82b12cade7c9d35
6
+ - Source commit: 8a81ed60272d21d4b8808f7308d49a0b1b000555
7
7
  - License: MIT
8
8
  - Copyright: Copyright (c) 2024 Next Level Builder
9
9
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ui-ux-pro-max
3
- description: Use when designing, implementing, reviewing, or improving UI/UX for web or mobile products, including layout, style, color, typography, accessibility, interaction states, responsive behavior, dashboards, landing pages, SaaS, e-commerce, portfolios, and app interfaces.
3
+ description: "UI/UX design intelligence for web and mobile. Includes 50+ styles, 161 color palettes, 57 font pairings, 161 product types, 99 UX guidelines, and 25 chart types across 10 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui, and HTML/CSS). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, and check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, and mobile app. Elements: button, modal, navbar, sidebar, card, table, form, and chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, and flat design. Topics: color systems, accessibility, animation, layout, typography, font pairing, spacing, interaction states, shadow, and gradient. Integrations: shadcn/ui MCP for component search and examples."
4
4
  ---
5
5
 
6
6
  # UI/UX Pro Max - Design Intelligence
@@ -330,6 +330,8 @@ sudo apt update && sudo apt install python3
330
330
  winget install Python.Python.3.12
331
331
  ```
332
332
 
333
+ > **Note:** On Windows, use `python` instead of `python3` to run scripts (e.g., `python scripts/search.py` instead of `python3 scripts/search.py`).
334
+
333
335
  ---
334
336
 
335
337
  ## How to Use This Skill
@@ -360,7 +362,7 @@ Extract key information from user request:
360
362
  - **Product type**: Entertainment (social, video, music, gaming), Tool (scanner, editor, converter), Productivity (task manager, notes, calendar), or hybrid
361
363
  - **Target audience**: C-end consumer users; consider age group, usage context (commute, leisure, work)
362
364
  - **Style keywords**: playful, vibrant, minimal, dark mode, content-first, immersive, etc.
363
- - **Stack**: Detect the project stack first, then use the matching stack search when available
365
+ - **Stack**: Match the project's framework. The engine ships guidance for many stacks (see [Available Stacks](#available-stacks) below) — pass the matching `--stack` (e.g. `nextjs`, `react`, `shadcn`, `vue`, `svelte`, `astro`, `swiftui`, `flutter`, `react-native`).
364
366
 
365
367
  ### Step 2: Generate Design System (REQUIRED)
366
368
 
@@ -440,12 +442,14 @@ python3 scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
440
442
  | App interface a11y | `web` | `--domain web "accessibilityLabel touch safe-areas"` |
441
443
  | AI prompt / CSS keywords | `prompt` | `--domain prompt "minimalism"` |
442
444
 
443
- ### Step 4: Stack Guidelines
445
+ ### Step 4: Stack Guidelines (match your framework)
444
446
 
445
- Get implementation-specific best practices for the detected stack:
447
+ Get implementation-specific best practices for the stack you're building in.
448
+ Pass the `--stack` that matches the project's framework:
446
449
 
447
450
  ```bash
448
- python3 scripts/search.py "<keyword>" --stack react
451
+ python3 scripts/search.py "<keyword>" --stack <your-stack>
452
+ # e.g. --stack nextjs | react | shadcn | vue | svelte | astro | swiftui | flutter | react-native
449
453
  ```
450
454
 
451
455
  ---
@@ -470,18 +474,26 @@ python3 scripts/search.py "<keyword>" --stack react
470
474
 
471
475
  ### Available Stacks
472
476
 
477
+ Run `ls <skill>/data/stacks/` to see the live set. Shipped stacks:
478
+
473
479
  | Stack | Focus |
474
480
  |-------|-------|
475
- | `react` | Components, state, rendering, accessibility |
476
- | `nextjs` | App Router, server/client boundaries, routing |
477
- | `vue` | Components and composition patterns |
478
- | `svelte` | Components and reactivity patterns |
479
- | `astro` | Content and island architecture |
480
- | `swiftui` | iOS-native UI structure |
481
- | `react-native` | Components, navigation, lists |
482
- | `flutter` | Widgets, theming, navigation |
483
- | `html-tailwind` | Utility-first HTML/CSS |
484
- | `shadcn` | Radix/shadcn UI composition |
481
+ | `react` | Components, hooks, render performance |
482
+ | `nextjs` | App Router, RSC, Server Actions, rendering |
483
+ | `vue` | Components, Composition API, reactivity |
484
+ | `nuxtjs` | Nuxt app patterns, SSR data fetching |
485
+ | `nuxt-ui` | Nuxt UI component patterns |
486
+ | `svelte` | Components, stores, transitions |
487
+ | `astro` | Islands, content, partial hydration |
488
+ | `shadcn` | shadcn/ui primitives, composition |
489
+ | `html-tailwind` | Tailwind utility patterns |
490
+ | `angular` | Components, signals, services |
491
+ | `laravel` | Blade / server-rendered UI patterns |
492
+ | `swiftui` | Views, state, navigation (iOS/macOS) |
493
+ | `flutter` | Widgets, state, navigation |
494
+ | `jetpack-compose` | Composables, state, navigation (Android) |
495
+ | `react-native` | Components, Navigation, Lists |
496
+ | `threejs` | 3D scenes, materials, performance |
485
497
 
486
498
  ---
487
499
 
@@ -493,7 +505,7 @@ python3 scripts/search.py "<keyword>" --stack react
493
505
  - Product type: Tool (AI search engine)
494
506
  - Target audience: C-end users looking for fast, intelligent search
495
507
  - Style keywords: modern, minimal, content-first, dark mode
496
- - Stack: detected from the target project
508
+ - Stack: Next.js (a homepage is a web surface; use a web `--stack`)
497
509
 
498
510
  ### Step 2: Generate Design System (REQUIRED)
499
511
 
@@ -516,7 +528,7 @@ python3 scripts/search.py "search loading animation" --domain ux
516
528
  ### Step 4: Stack Guidelines
517
529
 
518
530
  ```bash
519
- python3 scripts/search.py "list performance navigation" --stack react
531
+ python3 scripts/search.py "list performance navigation" --stack nextjs
520
532
  ```
521
533
 
522
534
  **Then:** Synthesize design system + detailed searches and implement the design.
@@ -544,7 +556,7 @@ python3 scripts/search.py "fintech crypto" --design-system -f markdown
544
556
  - Use **multi-dimensional keywords** — combine product + industry + tone + density: `"entertainment social vibrant content-dense"` not just `"app"`
545
557
  - Try different keywords for the same need: `"playful neon"` → `"vibrant dark"` → `"content-first minimal"`
546
558
  - Use `--design-system` first for full recommendations, then `--domain` to deep-dive any dimension you're unsure about
547
- - Add the matching `--stack` option for implementation-specific guidance
559
+ - Add the `--stack` that matches the project's framework for implementation-specific guidance
548
560
 
549
561
  ### Common Sticking Points
550
562
 
@@ -3,7 +3,7 @@
3
3
  This skill is copied from Affaan Mustafa's public `affaan-m/ECC` repository.
4
4
 
5
5
  - Source: https://github.com/affaan-m/ECC/tree/main/skills/react-patterns
6
- - Imported from commit: `0f84c0e2796703fbda87d577b2636351418c7442`
6
+ - Imported from commit: `2bc924faf2f8e893bfe0af86b1931283693c30ae`
7
7
  - Upstream skill name: `react-patterns`
8
8
  - License: MIT
9
9
  - Copyright: Copyright (c) 2026 Affaan Mustafa
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: react-patterns
3
3
  description: React 18/19 patterns including hooks discipline, server/client component boundaries, Suspense + error boundaries, form actions, data fetching, state management decision trees, and accessibility-first composition. Use when writing or reviewing React components.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # React Patterns
@@ -3,7 +3,7 @@
3
3
  This skill is copied from Affaan Mustafa's public `affaan-m/ECC` repository.
4
4
 
5
5
  - Source: https://github.com/affaan-m/ECC/tree/main/skills/react-performance
6
- - Imported from commit: `0f84c0e2796703fbda87d577b2636351418c7442`
6
+ - Imported from commit: `2bc924faf2f8e893bfe0af86b1931283693c30ae`
7
7
  - Upstream skill name: `react-performance`
8
8
  - License: MIT
9
9
  - Copyright: Copyright (c) 2026 Affaan Mustafa
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: react-performance
3
3
  description: React and Next.js performance optimization patterns adapted from Vercel Engineering's React Best Practices (https://github.com/vercel-labs/agent-skills). Organizes 70+ rules across 8 priority categories — waterfalls, bundle size, server-side, client fetching, re-render, rendering, JS micro-perf, advanced. Use when writing, reviewing, or refactoring React/Next.js code for performance.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # React Performance
@@ -3,7 +3,7 @@
3
3
  This skill is copied from Affaan Mustafa's public `affaan-m/ECC` repository.
4
4
 
5
5
  - Source: https://github.com/affaan-m/ECC/tree/main/skills/react-testing
6
- - Imported from commit: `0f84c0e2796703fbda87d577b2636351418c7442`
6
+ - Imported from commit: `2bc924faf2f8e893bfe0af86b1931283693c30ae`
7
7
  - Upstream skill name: `react-testing`
8
8
  - License: MIT
9
9
  - Copyright: Copyright (c) 2026 Affaan Mustafa
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: react-testing
3
3
  description: React component testing with React Testing Library, Vitest/Jest, MSW for network mocking, accessibility assertions with axe, and the decision boundary between component tests and Playwright/Cypress end-to-end runs. Use when writing or fixing tests for React components, hooks, or pages.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # React Testing
@@ -11,7 +11,7 @@
11
11
  2. [XSS Prevention](#xss-prevention)
12
12
 
13
13
  ### Performance — **HIGH**
14
- 3. [Avoid N+1 Query Problem](#avoid-n-1-query-problem)
14
+ 3. [Avoid N+1 Query Problem](#avoid-n1-query-problem)
15
15
 
16
16
  ### Correctness — **HIGH**
17
17
  4. [Proper Error Handling](#proper-error-handling)
@@ -3,7 +3,7 @@
3
3
  This skill was copied from Shubhamsaboo's awesome-llm-apps repository.
4
4
 
5
5
  - Source: https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/awesome_agent_skills/code-reviewer
6
- - Source commit: 72718ec759ecc82ead7666fd47922928b61c2b4d
6
+ - Source commit: ca3a3d37438643fd47b1dac095c2ce9cca92ef72
7
7
  - Repository license: Apache-2.0
8
8
  - Upstream skill metadata also declares: MIT
9
9