Paywalls
Corey HainesCommunityCreated by Corey Haines
- Skill
- Workflow
- Business and productivity
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach to designing in-app upgrade moments, such as paywalls, feature gates, and trial expiration screens. It emphasizes the 'Value Before Ask' principle, ensuring that users are prompted to upgrade only after they have experienced the product's core value. The skill covers the entire lifecycle of an upgrade flow, from identifying the right trigger points and designing effective screen components to A/B testing strategies and avoiding common anti-patterns like dark patterns.
What it does
- Provides frameworks for timing upgrade prompts after user 'aha moments'.
- Offers design patterns for feature locks, usage limits, and trial expiration screens.
- Guides the creation of clear, value-oriented upgrade copy and CTA messaging.
- Suggests A/B testing strategies for trigger timing, pricing presentation, and layout.
- Outlines best practices for mobile subscription apps, including store-specific considerations.
- Helps identify and remove conversion-killing friction in the payment path.
When to use it
- When designing or refining in-app paywalls, upsell modals, or feature gates.
- When free-to-paid conversion rates are low or users are not upgrading after trial periods.
- When planning experiments to optimize the timing and frequency of upgrade prompts.
- When transitioning from a free-only product to a freemium or subscription model.
- When you need to balance monetization goals with maintaining user trust and retention.
Advantages
- Focuses on user-centric conversion by prioritizing value demonstration.
- Reduces user frustration by providing clear paths to continue using the free version.
- Provides actionable, data-driven patterns for both SaaS and mobile app contexts.
- Helps avoid dark patterns that can damage long-term brand reputation.
- Includes specific guidance on mobile-first subscription mechanics and store-related constraints.
Usage examples
- “Our users hit a usage limit on our project management tool, but they aren't upgrading. How should we design the limit-reached screen?”
- The agent will provide a structure for a usage-limit paywall that clearly shows the current limit, the value of the Pro tier, and a frictionless path to upgrade, while ensuring the user isn't abruptly blocked.
- “We are building a mobile fitness app. Should we use a hard paywall or a freemium model?”
- The agent will compare the two approaches, referencing industry data on conversion and retention, and help you decide based on your app's specific value proposition and target audience.
- “What should we test to improve our trial-to-paid conversion rate?”
- The agent will suggest a list of A/B test ideas, such as varying trial lengths, testing different headline copy, or optimizing the timing of expiration reminders.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/coreyhaines31/paywalls/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip paywalls.zip -d .agents/skills
Documentation by Corey Haines
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:
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?
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
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]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
For consumer iOS/Android subscription apps (paywall inside onboarding, yearly-first plans, trials and reminders, store fees, web checkout, revenue per download): See references/mobile-subscription-paywalls.md
Anti-Patterns to Avoid
Dark Patterns
Hiding the close button
Confusing plan selection
Guilt-trip copy
Fake countdowns or "limited" offers with no real deadline
Conversion Killers
Asking before value delivered
Too frequent prompts
Blocking critical flows
Complicated upgrade process
Task-Specific Questions
What's your current free → paid conversion rate?
What triggers upgrade prompts today?
What features are behind the paywall?
What's your "aha moment" for users?
What pricing model? (per seat, usage, flat)
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
Files
- ATTRIBUTION.mdAdded by AutoGineer877 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md6.1 KiB
- evals/evals.json8.0 KiB
- references/experiments.md5.7 KiB
- references/mobile-subscription-paywalls.md5.3 KiB
references/experiments.md
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
Test discounts where they reward commitment or a real moment, not as a standing price cut for new buyers (see the offers skill on why acquisition discounts backfire). Any countdown must reflect a real deadline.
Annual-plan pricing presentation (the commitment discount, shown per month vs. billed amount)
Time-bound offer tied to a real window (seasonal sale, trial end) vs. no offer
Loyalty discount based on free usage duration
Upgrade discount for existing paid users moving up a tier
Referral discount for social proof
Risk reversal (guarantee, extended trial) vs. discount
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
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Corey Haines
- Publisher
- Corey Haines (Community)
- Source
- coreyhaines31/marketingskills · skills/paywalls · commit 96798cf
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Corey Haines.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download paywalls.zip