paywall-upgrade-cro

A Claude Code skill that designs in-app paywalls and upgrade screens — feature gates, plan limits, trial expiration, upsell modals — at moments when users have already experienced value.

Convert free to paid where value already landed

Source Corey Haines
License MIT
First documented

Trigger phrases

Phrases that activate this skill when typed to Claude Code:

  • paywall
  • upgrade screen
  • trial expiration screen
  • limit reached
  • free users will not upgrade

What it does

paywall-upgrade-cro is a Claude Code skill from Corey Haines’s marketing-skills repo. It turns Claude into an upgrade-screen specialist whose job is converting users who’ve already experienced value — at the right moment, with the right framing, with the right friction. The skill activates when you mention “paywall”, “upgrade screen”, “trial expiration”, “limit reached”, or “free users won’t upgrade”.

The output of a session is an upgrade-flow spec: trigger moments (limit hit, feature attempt, trial day-N, milestone reached), screen design per trigger, copy that uses the user’s actual progress, and the test variations to compare framings (loss vs gain, urgency vs rational).

When to use it

Reach for it when:

  • You have a freemium model and free-to-paid conversion is below benchmark
  • Trial-end conversion is bleeding and the email sequence isn’t catching it
  • You’re rebuilding feature-gate UX and want it to convert, not just block

When not to reach for it:

  • You haven’t earned the upgrade yet — paywalls before users hit value just churn signups
  • You’re optimizing a public pricing page; that’s page-cro territory

Install

The skill is distributed via Corey Haines’s marketing-skills repo. Install via the repo’s recommended path — copy the paywall-upgrade-cro SKILL.md into your project’s .claude/skills/paywall-upgrade-cro/ directory, or use the repo’s plugin install if you’ve set it up.

Once installed, the skill activates on the trigger phrases above. The first time it runs, it will check for .agents/product-marketing-context.md (or .claude/product-marketing-context.md) — populating that file with your product context first dramatically improves output quality across all of Haines’s marketing skills.

What a session looks like

A typical session has three phases:

  1. Trigger inventory. Where in the product does an upgrade moment exist — limit hit, premium feature attempt, trial day-N, milestone? The skill maps the surface before designing screens.
  2. Per-trigger design. Each trigger gets its own screen, because a “limit reached” upsell needs different framing than a “trial ending” one. Copy uses the user’s actual data.
  3. Test list. Loss-aversion vs gain framing, plan-comparison vs single-CTA, modal vs full-page. Each variation has a clear hypothesis.

The discipline that makes it work: the user has already produced data inside your product. The upgrade screen has to use that data — “Don’t lose the 47 contacts you’ve already added” beats “Upgrade to keep contacts” because it’s specific.

Receipts

Honest reporting on what paywall-upgrade-cro produces and where it has limits:

Where it works well:

  • Trigger-specific design avoids the one-paywall-for-everything failure mode
  • Loss-aversion copy that uses user data converts measurably better than generic “upgrade now” buttons
  • The “moment when value just landed” framing finds upgrade triggers most teams miss

Where it backfires:

  • If your free tier is too generous, no upgrade screen will paper over the lack of urgency
  • Aggressive paywalls can spike short-term conversion and tank long-term NPS — the skill warns but you have to make the call

Pattern that works: instrument the trigger events first, then design. A paywall fired at the wrong moment converts worse than no paywall.

Source and attribution

Originally written by Corey Haines. The canonical SKILL.md and any supporting files live in the paywall-upgrade-cro folder of his marketing-skills repository.

License: MIT. You can install, adapt, and redistribute the skill, with attribution preserved.

This page documents the skill from a practitioner’s perspective. For the formal spec and any updates, defer to the source repo.