suede-paywalls
Suede-affiliated in-product monetization design for paywall screens, feature gates, trial-expiry states, usage-limit prompts, and free-to-paid upgrade moments. Use when the user needs trigger timing, message structure, plan presentation, or experiment design after users have expe
Install
npx skills add https://github.com/JasonColapietro/suede-creator-skills/tree/main/skills/suede-paywalls
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install jasoncolapietro-suede-creator-skills@llmmart
git clone https://github.com/JasonColapietro/suede-creator-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole jasoncolapietro/suede-creator-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Suede Paywalls and Upgrade Moments
Suede designs in-product monetization around a truthful entitlement boundary and a value-aware moment, not interruption volume. Define when the user has enough context to evaluate an upgrade, what the paid change actually unlocks, and how to test the prompt without obscuring price, consent, or exit.
Initial Assessment
Check for product marketing context first:
If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Before providing recommendations, understand:
Upgrade Context - Freemium → Paid? Trial → Paid? Tier upgrade? Feature upsell? Usage limit?
Product Model - What's free? What's behind paywall? What triggers prompts? Current conversion rate?
User Journey - When does this appear? What have they experienced? What are they trying to do?
Paywall Trigger Points
Feature Gates
When user clicks a paid-only feature:
- Clear explanation of why it's paid
- Show what the feature does
- Quick path to unlock
- Option to continue without
Usage Limits
When user hits a limit:
- Clear indication of limit reached
- Show what upgrading provides
- Don't block abruptly
Trial Expiration
When trial is ending:
- Early warnings (7, 3, 1 day)
- Clear "what happens" on expiration
- Summarize value received
Time-Based Prompts
After X days of free use:
- Gentle upgrade reminder
- Highlight unused paid features
- Easy to dismiss
Paywall Screen Components
Headline - Focus on what they get: "Unlock [Feature] to [Benefit]"
Value Demonstration - Preview, before/after, "With Pro you could..."
Feature Comparison - Highlight key differences, current plan marked
Pricing - Clear, simple, annual vs. monthly options
Social Proof - Customer quotes, "X teams use this"
CTA - Specific and value-oriented: "Start Getting [Benefit]"
Escape Hatch - Clear "Not now" or "Continue with Free"
Specific Paywall Types
Feature Lock Paywall
[Lock Icon]
This feature is available on Pro
[Feature preview/screenshot]
[Feature name] helps you [benefit]:
• [Capability]
• [Capability]
[Upgrade to Pro - $X/mo]
[Maybe Later]
Usage Limit Paywall
You've reached your free limit
[Progress bar at 100%]
Free: 3 projects | Pro: Unlimited
[Upgrade to Pro] [Delete a project]
Trial Expiration Paywall
Your trial ends in 3 days
What you'll lose:
• [Feature used]
• [Data created]
What you've accomplished:
• Created X projects
[Continue with Pro]
[Remind me later] [Downgrade]
Self-Critique Gate (run before delivering any screen copy)
Do not hand over a drafted paywall until you have re-read it against Anti-Patterns to Avoid and Boundaries below, and answered these out loud:
- Where is the close/dismiss control, and is it visible without scrolling or hovering?
- Is the price — including what renews, when, and at what amount — stated on the screen?
- Does any urgency claim ("ends today", a countdown) correspond to a real deadline?
- Can the user reach the free path in one tap from this screen?
- Does any copy assign blame, shame, or loss the user did not actually incur?
Name every hit before delivering. A hit on 1, 3, or 4 is a blocker: fix the draft, don't ship it with a caveat.
Timing and Frequency
When to Show
- After value moment, before frustration
- After activation/aha moment
- When hitting genuine limits
When NOT to Show
- During onboarding (too early)
- When they're in a flow
- Repeatedly after dismissal
Frequency Rules
Defaults unless a running experiment says otherwise — ship these numbers, and say so when a test moves them:
- Max 1 paywall impression per session.
- Cooldown >= 7 days after a dismiss; >= 14 days after a second dismiss.
- Suppress a given gate entirely after 3 lifetime dismissals.
Instead of "annoyance signals," instrument the ones a reviewer can read: dismiss rate per gate, post-paywall session-abandon rate, plus the impression, click-through, completion, revenue-per-user, and post-upgrade churn metrics the experiment reference tracks.
Upgrade Flow and Testing
Keep the path from paywall to payment in-context and pre-filled, and grant
access the moment payment clears — the checkout and post-upgrade activation flow
itself belongs to suede-onboarding.
For frequency, trigger-timing, copy, and price-presentation experiments —
including which of the above defaults are worth testing first: See
references/experiments.md. Use suede-ab-testing
to design and read out the test.
Anti-Patterns to Avoid
Dark Patterns
- Hiding the close button
- Confusing plan selection
- Guilt-trip copy
Conversion Killers
- Asking before value delivered
- Too frequent prompts
- Blocking critical flows
- Complicated upgrade process
Boundaries
- Do not fabricate entitlement, plan, price, conversion, trial, or usage-limit data.
- Do not change billing, entitlements, app configuration, experiments, or live paywalls without explicit authorization.
- Do not recommend hidden close controls, confusing consent, forced continuity, obstructive cancellation, or false urgency.
- Do not decide refund, tax, legal, platform-policy, accessibility, or billing-risk terms for the user.
Routing
- Use
suede-churn-preventionfor cancel and save flows. - Use
suede-site-alchemyfor public pricing pages andsuede-pricingfor tier architecture. - Use
suede-onboardingto reach first value andsuede-ab-testingto validate paywall variations.
Files (suede-creator-skills)
-
agents
-
openai.yaml 550 B
interface: display_name: "Suede Paywalls" short_description: "Design in-app upgrade moments that convert without resentment" default_prompt: "Use $suede-paywalls on [target]. The user wants to build or improve an in-product upgrade screen, feature gate, or trial-expiration prompt. Work through paywall screens, feature gates, trial-expiry states, and free-to-paid prompts, ground every recommendation in evidence the user can check, and return the decisions, the reasoning, and what to measure next." policy: allow_implicit_invocation: true
-
-
evals
-
evals.json 6.3 KB
{ "skill_name": "suede-paywalls", "evals": [ { "id": 1, "prompt": "Help me design the upgrade paywall for our project management tool. Free users can have 3 projects, and we want to show an upgrade screen when they try to create a 4th project.", "expected_output": "Should check for product-marketing.md first. Should identify this as a usage limit trigger point. Should apply the paywall screen components: headline (communicate the value of upgrading, not just the limit), value demonstration (show what they get with paid plan), plan comparison (free vs paid), social proof, CTA (specific and action-oriented), and escape hatch (option to go back). Should provide specific copy recommendations. Should address the emotional state of the user at this moment (frustrated by the limit). Should warn against anti-patterns.", "assertions": [ "Checks for product-marketing.md", "Identifies as usage limit trigger", "Applies paywall screen components framework", "Includes headline, value demo, comparison, social proof, CTA", "Provides specific copy recommendations", "Addresses user's emotional state at the limit", "Includes escape hatch option", "Warns against anti-patterns" ], "files": [] }, { "id": 2, "prompt": "Our free trial expires in 14 days and users see a generic 'Your trial has expired' screen. Upgrade rate from this screen is only 2%. How do we improve it?", "expected_output": "Should identify this as a trial expiration trigger. Should apply the trial expiration paywall type guidance. Should recommend: show what they've built/accomplished during the trial (endowment effect), highlight specific features they used, show the value they'd lose, provide clear plan options, include social proof from similar users who upgraded. Should diagnose why 2% is low: likely a weak value prop, no personalization, no urgency or loss framing. Should provide specific redesign recommendations.", "assertions": [ "Identifies as trial expiration trigger", "Applies trial expiration paywall guidance", "Recommends showing user's accomplishments during trial", "Uses loss framing (what they'd lose)", "Provides clear plan options", "Includes social proof", "Diagnoses why current 2% rate is low", "Provides specific redesign recommendations" ], "files": [] }, { "id": 3, "prompt": "when should we show upgrade prompts? we don't want to be annoying but we also need to convert free users to paid.", "expected_output": "Should trigger on casual phrasing. Should apply the timing and frequency rules. Should recommend trigger points from the skill: feature gates (when they try a paid feature), usage limits (when they hit a threshold), value moments (when they've just experienced success), and natural transition points. Should address frequency capping to avoid being annoying. Should recommend the anti-patterns to avoid (blocking basic functionality, too frequent popups, dark patterns). Should provide a balanced approach that respects user experience while driving upgrades.", "assertions": [ "Triggers on casual phrasing", "Applies timing and frequency rules", "Recommends specific trigger points", "Addresses frequency capping", "Warns against anti-patterns", "Balances user experience with conversion goals", "Provides specific recommendations for each trigger type" ], "files": [] }, { "id": 4, "prompt": "Design a feature gate paywall. When free users click on 'Advanced Analytics' in our dashboard, we want to show them an upgrade prompt.", "expected_output": "Should identify this as a feature gate trigger. Should apply the feature lock paywall type guidance. Should recommend: show a preview or screenshot of the advanced analytics feature, explain the specific benefit (not just 'this is a paid feature'), include a plan comparison relevant to analytics, provide a clear CTA to upgrade, and include an escape hatch to go back to basic analytics. Should recommend showing what insights they're missing. Should provide copy recommendations for the paywall screen.", "assertions": [ "Identifies as feature gate trigger", "Applies feature lock paywall guidance", "Recommends showing preview of the feature", "Explains specific benefit of the feature", "Includes relevant plan comparison", "Provides clear CTA and escape hatch", "Provides copy recommendations" ], "files": [] }, { "id": 5, "prompt": "What are common mistakes to avoid with in-app paywalls? I don't want to be pushy or make users feel tricked.", "expected_output": "Should apply the anti-patterns section. Should cover: dark patterns (making it hard to find the close button, confusing opt-out language), conversion killers (blocking basic functionality, showing paywalls too early before value is demonstrated, no escape hatch), frequency issues (too many prompts, showing the same paywall repeatedly). Should provide positive alternatives for each anti-pattern. Should emphasize that good paywalls feel helpful, not pushy.", "assertions": [ "Applies anti-patterns section", "Covers dark patterns to avoid", "Covers conversion killers", "Covers frequency issues", "Provides positive alternatives for each", "Emphasizes helpful over pushy approach" ], "files": [] }, { "id": 6, "prompt": "Can you help me optimize our public pricing page? We want more visitors to choose the Pro plan over the Basic plan.", "expected_output": "Should recognize this is a public pricing-page optimization task, not an in-app paywall task. Should defer to or cross-reference suede-site-alchemy for the public conversion surface. Suede-paywalls handles in-app upgrade prompts for existing users, not public-facing pricing pages.", "assertions": [ "Recognizes this as public pricing page optimization", "References or defers to suede-site-alchemy", "Explains that paywalls is for in-app upgrade prompts", "Does not attempt public pricing page optimization" ], "files": [] } ] }
-
-
references
-
experiments.md 5.3 KB
# Paywall Experiment Ideas Comprehensive list of A/B tests and experiments for paywall optimization. ## Contents - Trigger & Timing Experiments (When to Show, Trigger Type) - Paywall Design Experiments (Layout & Format, Value Presentation, Visual Elements) - Pricing Presentation Experiments (Price Display, Plan Options, Discounts & Offers) - Copy & Messaging Experiments (Headlines, CTAs, Objection Handling) - Trial & Conversion Experiments (Trial Structure, Trial Expiration, Upgrade Path) - Personalization Experiments (Usage-Based, Segment-Specific) - Frequency & UX Experiments (Frequency Capping, Dismiss Behavior) ## Trigger & Timing Experiments ### When to Show - Test trigger timing: after aha moment vs. at feature attempt - Early trial reminder (7 days) vs. late reminder (1 day before) - Show after X actions completed vs. after X days - Test soft prompts at different engagement thresholds - Trigger based on usage patterns vs. time-based only ### Trigger Type - Hard gate (can't proceed) vs. soft gate (preview + prompt) - Feature lock vs. usage limit as primary trigger - In-context modal vs. dedicated upgrade page - Banner reminder vs. modal prompt - Exit-intent on free plan pages --- ## Paywall Design Experiments ### Layout & Format - Full-screen paywall vs. modal overlay - Minimal paywall (CTA-focused) vs. feature-rich paywall - Single plan display vs. plan comparison - Image/preview included vs. text-only - Vertical layout vs. horizontal layout on desktop ### Value Presentation - Feature list vs. benefit statements - Show what they'll lose (loss aversion) vs. what they'll gain - Personalized value summary based on usage - Before/after demonstration - ROI calculator or value quantification ### Visual Elements - Add product screenshots or previews - Include short demo video or GIF - Test illustration vs. product imagery - Animated vs. static paywall - Progress visualization (what they've accomplished) --- ## Pricing Presentation Experiments ### Price Display - Show monthly vs. annual vs. both with toggle - Highlight savings for annual ($ amount vs. % off) - Price per day framing ("Less than a coffee") - Show price after trial vs. emphasize "Start Free" - Display price prominently vs. de-emphasize until click ### Plan Options - Single recommended plan vs. multiple tiers - Add "Most Popular" badge to target plan - Test number of visible plans (2 vs. 3) - Show enterprise/custom tier vs. hide it - Include one-time purchase option alongside subscription ### Discounts & Offers - First month/year discount for conversion - Limited-time upgrade offer with countdown - Loyalty discount based on free usage duration - Bundle discount for annual commitment - Referral discount for social proof --- ## Copy & Messaging Experiments ### Headlines - Benefit-focused ("Unlock unlimited projects") vs. feature-focused ("Get Pro features") - Question format ("Ready to do more?") vs. statement format - Urgency-based ("Don't lose your work") vs. value-based - Personalized headline with user's name or usage data - Social proof headline ("Join 10,000+ Pro users") ### CTAs - "Start Free Trial" vs. "Upgrade Now" vs. "Continue with Pro" - First person ("Start My Trial") vs. second person ("Start Your Trial") - Value-specific ("Unlock Unlimited") vs. generic ("Upgrade") - Add urgency ("Upgrade Today") vs. no pressure - Include price in CTA vs. separate price display ### Objection Handling - Add money-back guarantee messaging - Show "Cancel anytime" prominently - Include FAQ on paywall - Address specific objections based on feature gated - Add chat/support option on paywall --- ## Trial & Conversion Experiments ### Trial Structure - 7-day vs. 14-day vs. 30-day trial length - Credit card required vs. not required for trial - Full-access trial vs. limited feature trial - Trial extension offer for engaged users - Second trial offer for expired/churned users ### Trial Expiration - Countdown timer visibility (always vs. near end) - Email reminders: frequency and timing - Grace period after expiration vs. immediate downgrade - "Last chance" offer with discount - Pause option vs. immediate cancellation ### Upgrade Path - One-click upgrade from paywall vs. separate checkout - Pre-filled payment info for returning users - Multiple payment methods offered - Quarterly plan option alongside monthly/annual - Team invite flow for solo-to-team conversion --- ## Personalization Experiments ### Usage-Based - Personalize paywall copy based on features used - Highlight most-used premium features - Show usage stats ("You've created 50 projects") - Recommend plan based on behavior patterns - Dynamic feature emphasis based on user segment ### Segment-Specific - Different paywall for power users vs. casual users - B2B vs. B2C messaging variations - Industry-specific value propositions - Role-based feature highlighting - Traffic source-based messaging --- ## Frequency & UX Experiments ### Frequency Capping - Test number of prompts per session - Cool-down period after dismiss (hours vs. days) - Escalating urgency over time vs. consistent messaging - Once per feature vs. consolidated prompts - Re-show rules after major engagement ### Dismiss Behavior - "Maybe later" vs. "No thanks" vs. "Remind me tomorrow" - Ask reason for declining - Offer alternative (lower tier, annual discount) - Exit survey on dismiss - Friendly vs. neutral decline copy
-
-
CARD.md 4.3 KB
# Skill Card — Suede Paywalls and Upgrade Moments <!-- Generated by scripts/build-skill-cards.mjs — do not hand-edit. --> <!-- Regenerate with: npm run build:cards --> Release record for the `suede-paywalls` skill, following the NVIDIA skill-card template (<https://docs.nvidia.com/skills/skill-cards>). It tells a reviewer what the skill does, who owns it, what it needs, what could go wrong, and what evidence backs the release — without requiring them to open the source first. ## Description Suede-affiliated in-product monetization design for paywall screens, feature gates, trial-expiry states, usage-limit prompts, and free-to-paid upgrade moments. Status: production. Ships in the `suede-skills` plugin (the full pack) at release 0.19.0; loads as a Claude Code / Codex agent skill from this directory's [SKILL.md](./SKILL.md). ## Owner Jason Colapietro, Suede Labs AI (<https://github.com/JasonColapietro>). Security contact: `info@suedeai.ai` per [SECURITY.md](../../SECURITY.md). ## License / Terms of Use MIT ([LICENSE](../../LICENSE)). The pack's combined license expression is `MIT AND BSD-3-Clause`; this skill bundles no third-party licensed material of its own. ## Use Case Target users: developers and creators running the skill inside a Claude Code or Codex CLI session. Use when the user needs trigger timing, message structure, plan presentation, or experiment design after users have experienced value. Out of scope — public pricing pages (use suede-site-alchemy), tier architecture (use suede-pricing), or cancellation and save flows (use suede-churn-prevention). ## Deployment Geography Global. The skill is a prompt-and-script package that runs locally inside the invoking agent session; it pins no region-specific service of its own. ## Requirements / Dependencies - A Claude Code or Codex CLI session with the `suede-skills` plugin installed (install options: <https://skills.suedeai.ai/>). - Bundled files loaded relative to this directory: `agents/` (1 file), `references/` (1 file). - Credentials: none are bundled or required by the skill files. Any tool or API credentials come from the host session; never paste credentials into skill files, prompts, or outputs. ## Known Risks and Mitigations - Risk: an agent treats a quality gate as autonomous authority. Mitigation: every gate in the pack is advisory — it changes what is reported, never what the user decided; only extreme-risk findings (data loss, credential exposure, legal/rights violations, payment mistakes, irreversible public damage) pause for the user's explicit choice. - Risk: a skill instruction is used to act outside its mandate. Mitigation: the hard limits in the skill body's "Boundaries" section, quoted below. From "Boundaries": - Do not fabricate entitlement, plan, price, conversion, trial, or usage-limit data. - Do not change billing, entitlements, app configuration, experiments, or live paywalls without explicit authorization. - Do not recommend hidden close controls, confusing consent, forced continuity, obstructive cancellation, or false urgency. - Do not decide refund, tax, legal, platform-policy, accessibility, or billing-risk terms for the user. ## References - Skill source: [`skills/suede-paywalls/SKILL.md`](./SKILL.md) - Rendered reference page: <https://skills.suedeai.ai/skills/suede-paywalls.html> - Security policy and reviewed scanner exceptions: [SECURITY.md](../../SECURITY.md) and [`.plugin-scanner.toml`](../../.plugin-scanner.toml) at the repo root ## Skill Output Markdown analysis and recommendations returned in the agent's response. The skill publishes, posts, and sends nothing without the user's explicit authorization; delivery decisions stay with the user. ## Skill Version 0.19.0 — the pack is single-versioned, so every skill releases together; see [VERSION](../../VERSION) and [CITATION.cff](../../CITATION.cff) for the release identifier this card describes. ## Ethical Considerations - The skill produces recommendations for a human decision-maker. Publishing, sending, payment, and rights decisions stay with the user. - Its gates require verifiable claims and honest reporting; do not use the skill to fabricate claims, evidence, metrics, or attribution. - Report suspected misuse or a security concern privately per [SECURITY.md](../../SECURITY.md); do not open a public issue for it. -
SKILL.md 6.2 KB
--- name: suede-paywalls description: "Suede-affiliated in-product monetization design for paywall screens, feature gates, trial-expiry states, usage-limit prompts, and free-to-paid upgrade moments. Use when the user needs trigger timing, message structure, plan presentation, or experiment design after users have experienced value. NOT FOR: public pricing pages (use suede-site-alchemy), tier architecture (use suede-pricing), or cancellation and save flows (use suede-churn-prevention)." metadata: version: 2.0.0 --- # Suede Paywalls and Upgrade Moments Suede designs in-product monetization around a truthful entitlement boundary and a value-aware moment, not interruption volume. Define when the user has enough context to evaluate an upgrade, what the paid change actually unlocks, and how to test the prompt without obscuring price, consent, or exit. ## Initial Assessment **Check for product marketing context first:** If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before providing recommendations, understand: 1. **Upgrade Context** - Freemium → Paid? Trial → Paid? Tier upgrade? Feature upsell? Usage limit? 2. **Product Model** - What's free? What's behind paywall? What triggers prompts? Current conversion rate? 3. **User Journey** - When does this appear? What have they experienced? What are they trying to do? --- ## Paywall Trigger Points ### Feature Gates When user clicks a paid-only feature: - Clear explanation of why it's paid - Show what the feature does - Quick path to unlock - Option to continue without ### Usage Limits When user hits a limit: - Clear indication of limit reached - Show what upgrading provides - Don't block abruptly ### Trial Expiration When trial is ending: - Early warnings (7, 3, 1 day) - Clear "what happens" on expiration - Summarize value received ### Time-Based Prompts After X days of free use: - Gentle upgrade reminder - Highlight unused paid features - Easy to dismiss --- ## Paywall Screen Components 1. **Headline** - Focus on what they get: "Unlock [Feature] to [Benefit]" 2. **Value Demonstration** - Preview, before/after, "With Pro you could..." 3. **Feature Comparison** - Highlight key differences, current plan marked 4. **Pricing** - Clear, simple, annual vs. monthly options 5. **Social Proof** - Customer quotes, "X teams use this" 6. **CTA** - Specific and value-oriented: "Start Getting [Benefit]" 7. **Escape Hatch** - Clear "Not now" or "Continue with Free" --- ## Specific Paywall Types ### Feature Lock Paywall ``` [Lock Icon] This feature is available on Pro [Feature preview/screenshot] [Feature name] helps you [benefit]: • [Capability] • [Capability] [Upgrade to Pro - $X/mo] [Maybe Later] ``` ### Usage Limit Paywall ``` You've reached your free limit [Progress bar at 100%] Free: 3 projects | Pro: Unlimited [Upgrade to Pro] [Delete a project] ``` ### Trial Expiration Paywall ``` Your trial ends in 3 days What you'll lose: • [Feature used] • [Data created] What you've accomplished: • Created X projects [Continue with Pro] [Remind me later] [Downgrade] ``` --- ## Self-Critique Gate (run before delivering any screen copy) Do not hand over a drafted paywall until you have re-read it against Anti-Patterns to Avoid and Boundaries below, and answered these out loud: 1. Where is the close/dismiss control, and is it visible without scrolling or hovering? 2. Is the price — including what renews, when, and at what amount — stated on the screen? 3. Does any urgency claim ("ends today", a countdown) correspond to a real deadline? 4. Can the user reach the free path in one tap from this screen? 5. Does any copy assign blame, shame, or loss the user did not actually incur? Name every hit before delivering. A hit on 1, 3, or 4 is a blocker: fix the draft, don't ship it with a caveat. --- ## Timing and Frequency ### When to Show - After value moment, before frustration - After activation/aha moment - When hitting genuine limits ### When NOT to Show - During onboarding (too early) - When they're in a flow - Repeatedly after dismissal ### Frequency Rules Defaults unless a running experiment says otherwise — ship these numbers, and say so when a test moves them: - Max **1** paywall impression per session. - Cooldown **>= 7 days** after a dismiss; **>= 14 days** after a second dismiss. - Suppress a given gate entirely after **3 lifetime dismissals**. Instead of "annoyance signals," instrument the ones a reviewer can read: dismiss rate per gate, post-paywall session-abandon rate, plus the impression, click-through, completion, revenue-per-user, and post-upgrade churn metrics the experiment reference tracks. --- ## Upgrade Flow and Testing Keep the path from paywall to payment in-context and pre-filled, and grant access the moment payment clears — the checkout and post-upgrade activation flow itself belongs to `suede-onboarding`. **For frequency, trigger-timing, copy, and price-presentation experiments** — including which of the above defaults are worth testing first: See [references/experiments.md](references/experiments.md). Use `suede-ab-testing` to design and read out the test. --- ## Anti-Patterns to Avoid ### Dark Patterns - Hiding the close button - Confusing plan selection - Guilt-trip copy ### Conversion Killers - Asking before value delivered - Too frequent prompts - Blocking critical flows - Complicated upgrade process --- ## Boundaries - Do not fabricate entitlement, plan, price, conversion, trial, or usage-limit data. - Do not change billing, entitlements, app configuration, experiments, or live paywalls without explicit authorization. - Do not recommend hidden close controls, confusing consent, forced continuity, obstructive cancellation, or false urgency. - Do not decide refund, tax, legal, platform-policy, accessibility, or billing-risk terms for the user. ## Routing - Use `suede-churn-prevention` for cancel and save flows. - Use `suede-site-alchemy` for public pricing pages and `suede-pricing` for tier architecture. - Use `suede-onboarding` to reach first value and `suede-ab-testing` to validate paywall variations.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.