Skip to content

feat(upsell): add paid-plan CTA to the channels that had none#36

Merged
asafamos merged 1 commit into
mainfrom
feat/upsell-cta-all-channels
Jun 6, 2026
Merged

feat(upsell): add paid-plan CTA to the channels that had none#36
asafamos merged 1 commit into
mainfrom
feat/upsell-cta-all-channels

Conversation

@asafamos

@asafamos asafamos commented Jun 6, 2026

Copy link
Copy Markdown
Owner

Why

A monetization audit found the highest-volume channels never ask anyone to pay:

Channel downloads/mo upsell before
axle-cli ~88 ❌ 0
axle-netlify / axle-cloudflare / axle-vercel ~170 combined ❌ 0
axle-chrome ❌ 0

People install, scan free forever, and never see a reason to upgrade — a direct cause of $0 revenue despite real adoption. The payment path (/pricing → Polar/Stripe checkout) already works; it just wasn't surfaced here.

What

A tasteful CTA at the moment of need — right after results, only when violations were found (and, for the CLI, only when no AI fixes were produced). Points at the existing /pricing path, each channel tagging its own utm_source for attribution.

  • axle-cli — one line after the pass/fail summary when issues remain unfixed.
  • axle-netlify / cloudflare / vercel — shown when the build fails on violations (Netlify also appends it to the status-panel text).
  • axle-chrome — link under the popup results when violations are found.

Verification

  • node --check clean on all 4 JS files.
  • tsc --noEmit clean on axle-cli.

Note

Upsell presence is necessary but not sufficient — with 1 external lead and a generous free tier, the free→paid boundary is the next lever. This plugs the most obvious leak first.

🤖 Generated with Claude Code

Audit found the highest-volume channels never asked anyone to pay: axle-cli
(~88 downloads/mo), the netlify/cloudflare/vercel CI plugins, and the Chrome
extension all had ZERO upsell. People install, scan free forever, never see a
reason to upgrade — direct cause of $0 revenue despite real adoption.

Add a tasteful CTA at the moment of need (right after results, only when
violations were found / no AI fixes produced), pointing at the existing
/pricing → checkout path. Each channel tags its own utm_source so the
dashboard can attribute conversions.

- axle-cli: line after the pass/fail summary when issues remain unfixed.
- axle-{netlify,cloudflare,vercel}: shown when the build fails on violations
  (netlify also appends it to the status panel text).
- axle-chrome: link under the popup results when violations are found.

Verified: node --check on all JS; tsc clean on axle-cli.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
axle Ready Ready Preview, Comment Jun 6, 2026 9:47pm

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown

✅ No accessibility violations detected

Scanned http://localhost:3000 at 2026-06-06T21:47:33.549Z

axe-core automated checks catch roughly 57% of WCAG issues. Manual review still recommended.

Powered by axle · Remediation assistance, not compliance certification.

@asafamos asafamos merged commit 1898950 into main Jun 6, 2026
4 checks passed
@asafamos asafamos deleted the feat/upsell-cta-all-channels branch June 6, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant