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://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
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 or Corey Haines.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download paywalls.zip