
Paywalls
- 36.6k installs
- 42k repo stars
- Updated July 27, 2026
- coreyhaines31/marketingskills
paywalls is a skill for designing and optimizing paywall screens that convert free users to paid plans without frustrating them.
About
This skill teaches paywall design for software products at key monetization moments. It covers usage-limit triggers, feature-gate paywalls, trial expiration screens, and more. It includes frameworks for headlines, value props, plan comparison, and copy strategies to maximize conversions.
- Framework for designing paywalls at key trigger points: usage limits, feature gates, trial expiration
- Components include headline, value demonstration, plan comparison, social proof, and escape hatch
- Emotional context awareness and anti-patterns guidance for different paywall types
Paywalls by the numbers
- 36,585 all-time installs (skills.sh)
- +3,302 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #12 of 854 Sales & Marketing skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/coreyhaines31/marketingskills --skill paywallsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 36.6k |
|---|---|
| repo stars | ★ 42k |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 27, 2026 |
| Repository | coreyhaines31/marketingskills ↗ |
How do you design SaaS upgrade paywall screens?
Designing and optimizing paywall screens that convert free users to paid plans without frustration.
Who is it for?
Designing upgrade prompts at feature gates, usage limits, and trial expiration; optimizing paywall copy and plan comparison.
Skip if: Payment processor integration alone, enterprise sales-led pricing, or SEO landing pages without in-app upgrade gates.
When should I use this skill?
User asks to design upgrade paywalls, trial expiration screens, usage-limit prompts, or freemium gate modals.
What you get
Paywall screen copy, plan comparison layout, trigger-point map, and CTA/escape-hatch recommendations
- paywall copy
- screen layout guidance
- trigger-point recommendations
By the numbers
- Eval scenario covers free tier limited to 3 projects before upgrade prompt
Files
Paywall and Upgrade Screen CRO
You are an expert in in-app paywalls and upgrade flows. Your goal is to convert free users to paid, or upgrade users to higher tiers, at moments when they've experienced enough value to justify the commitment.
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?
---
Core Principles
1. Value Before Ask
- User should have experienced real value first
- Upgrade should feel like natural next step
- Timing: After "aha moment," not before
2. Show, Don't Just Tell
- Demonstrate the value of paid features
- Preview what they're missing
- Make the upgrade feel tangible
3. Friction-Free Path
- Easy to upgrade when ready
- Don't make them hunt for pricing
4. Respect the No
- Don't trap or pressure
- Make it easy to continue free
- Maintain trust for future conversion
---
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]---
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
- Limit per session
- Cool-down after dismiss (days, not hours)
- Track annoyance signals
---
Upgrade Flow Optimization
From Paywall to Payment
- Minimize steps
- Keep in-context if possible
- Pre-fill known information
Post-Upgrade
- Immediate access to features
- Confirmation and receipt
- Guide to new features
---
A/B Testing
What to Test
- Trigger timing
- Headline/copy variations
- Price presentation
- Trial length
- Feature emphasis
- Design/layout
Metrics to Track
- Paywall impression rate
- Click-through to upgrade
- Completion rate
- Revenue per user
- Churn rate post-upgrade
For comprehensive experiment ideas: See references/experiments.md
---
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
---
Task-Specific Questions
1. What's your current free → paid conversion rate? 2. What triggers upgrade prompts today? 3. What features are behind the paywall? 4. What's your "aha moment" for users? 5. What pricing model? (per seat, usage, flat) 6. Mobile app, web app, or both?
---
Related Skills
- churn-prevention: For cancel flows, save offers, and reducing churn post-upgrade
- cro: For public pricing page optimization
- onboarding: For driving to aha moment before upgrade
- ab-testing: For testing paywall variations
{
"skill_name": "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 the cro skill for pricing page CRO. Paywall-upgrade-cro specifically 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 cro skill",
"Explains that paywalls is for in-app upgrade prompts",
"Does not attempt public pricing page optimization"
],
"files": []
}
]
}
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
Related skills
Forks & variants (1)
Paywalls has 1 known copy in the catalog totaling 5 installs. They canonicalize to this original listing.
- dirnbauer - 5 installs
How it compares
Use paywalls for in-app upgrade UX copy; use referrals or cro skills for acquisition, not monetization modals.
FAQ
What components does the paywalls skill include?
paywalls structures upgrade screens with a value headline, plan comparison, social proof, a specific CTA, and an escape hatch, applied at usage-limit trigger points such as exceeding a free project cap.
When should developers invoke the paywalls skill?
paywalls helps when implementing freemium gates—usage limits, trial endings, or upgrade modals—where developers need conversion-oriented copy and layout, not just payment API wiring.
Is Paywalls safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.