feat(upsell): add paid-plan CTA to the channels that had none#36
Merged
Conversation
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>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
✅ No accessibility violations detectedScanned axe-core automated checks catch roughly 57% of WCAG issues. Manual review still recommended. Powered by axle · Remediation assistance, not compliance certification. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A monetization audit found the highest-volume channels never ask anyone to pay:
axle-cliaxle-netlify/axle-cloudflare/axle-vercelaxle-chromePeople 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
/pricingpath, each channel tagging its ownutm_sourcefor attribution.Verification
node --checkclean on all 4 JS files.tsc --noEmitclean onaxle-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