
Copywriting Cta
- 2.1k installs
- 178 repo stars
- Updated August 1, 2026
- samber/cc-skills
copywriting-cta is an agent skill that Design end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articles, or any lo.
About
Designing an end of article CTA is a function of three inputs the objective what action the audience who reads it in what relationship to the author and the context independent writing newsletter brand publication Get those three right and the copy form follow almost mechanically Skip them and you get the universal failure mode a generic Subscribe for more or Learn More that converts at the noise floor This skill runs a tight interview to capture those three inputs then prescribes a CTA copy what it says form how it looks and sits on the page mechanism whether to use urgency scarcity curiosity reciprocity social proof or none an A B test plan and an accessibility check Run the four steps below in order Do not skip the interview The user may have given partial context already pull what s available from the conversation then ask only for the missing pieces Use the ask_user_input_v0 tool Ask one question at a time Do not stack questions in prose Each question
- description: Design end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articl
- compatibility: Designed for Claude or similar AI agents.
- homepage: https://github.com/samber/cc-skills
- Follow copywriting-cta SKILL.md steps and documented constraints.
- Follow copywriting-cta SKILL.md steps and documented constraints.
Copywriting Cta by the numbers
- 2,078 all-time installs (skills.sh)
- +45 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #281 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
copywriting-cta capabilities & compatibility
- Capabilities
- description: design end of article ctas (calls t · compatibility: designed for claude or similar ai · homepage: https://github.com/samber/cc skills · follow copywriting cta skill.md steps and docume
- Use cases
- orchestration
What copywriting-cta says it does
description: Design end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articles, or any long-form content). Use this skill whenever the user asks to write, d
compatibility: Designed for Claude or similar AI agents.
homepage: https://github.com/samber/cc-skills
npx skills add https://github.com/samber/cc-skills --skill copywriting-ctaAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.1k |
|---|---|
| repo stars | ★ 178 |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 1, 2026 |
| Repository | samber/cc-skills ↗ |
When should an agent use copywriting-cta and what problem does it solve?
Design end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articles, or any long-form content). Use this skill whenever the user asks to write, design, review
Who is it for?
Developers invoking copywriting-cta as documented in the skill source.
Skip if: Skip when requirements fall outside copywriting-cta documented scope.
When should I use this skill?
Design end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articles, or any long-form content). Use this skill whenever the user asks to write, design, review
What you get
Outputs aligned with the copywriting-cta SKILL.md workflow and stated deliverables.
- end-of-article CTA copy block
Files
End-of-Article CTA Designer
Designing an end-of-article CTA is a function of three inputs: the objective (what action), the audience (who reads it, in what relationship to the author), and the context (independent writing, newsletter, brand publication). Get those three right and the copy + form follow almost mechanically. Skip them and you get the universal failure mode: a generic "Subscribe for more" or "Learn More" that converts at the noise floor.
This skill runs a tight interview to capture those three inputs, then prescribes a CTA: copy (what it says), form (how it looks and sits on the page), mechanism (whether to use urgency, scarcity, curiosity, reciprocity, social proof, or none), an A/B test plan, and an accessibility check.
---
Workflow
Run the four steps below in order. Do not skip the interview. The user may have given partial context already; pull what's available from the conversation, then ask only for the missing pieces.
Step 1 — Interview
Use the ask_user_input_v0 tool. Ask one question at a time. Do not stack questions in prose. Each question must have 2-4 tappable options. Fall back to free text only if the answer genuinely cannot be enumerated.
Ask these in order, skipping any already answered:
Q1. Article context. Options: Personal / independent blog or essay · Newsletter / paid publication (Substack, beehiiv, Ghost, etc.) · Brand / company / content-marketing blog · Other (free text)
Q2. Primary objective. (Pick the one outcome you most want from a reader who finishes the article. If they say "all of them," push back: multiple objectives is the #1 cause of CTA failure.)
Options:
Newsletter / email subscriptionSocial follow / personal brandingLead generation (download / gated asset)Product or service signup / free trialDemo or sales call bookingDirect purchaseCommunity join (Discord / Slack / forum)Engagement (reply / comment / share / restack)Reader support (paid subscription / tip / sponsorship)Try-it / direct action (use the code, run the tool, fork the template, open the calculator)Other (free text)
If the user lists more than one, ask which is primary. You can offer 1-2 secondaries later, but the primary must be singular.
Q3. Audience and relationship. Options: First-time visitor (organic search / social) · Returning reader, not subscribed · Existing subscriber / customer · Mixed / unknown
Q4. Funnel stage. (Where is the reader mentally?) Options: TOFU: discovery, learning, no buying intent yet · MOFU: evaluating options, comparing · BOFU: ready to act, just needs a nudge · Not applicable (no buying funnel — e.g., personal blog, journalism, hobby content)
Q5. Mechanism preference. (Only ask if a mechanism could legitimately help. See references/mechanisms.md. For sophisticated, skeptical, or repeat-reader audiences, default to "None / value-only" without asking.) Options: None: value statement only · Curiosity gap ("Want to know more?") · Reciprocity (free asset first) · Discount / offer · Urgency (real deadline) · Scarcity / FOMO (limited spots) · Social proof (count / testimonial)
Capture any free-text constraints the user volunteers (length limit, brand voice, no popups, multi-language, etc.). Note them.
Step 2 — Diagnose
Map the inputs to a CTA archetype. The decision logic:
context = INDEPENDENT / PERSONAL
├── objective = newsletter / email → Archetype A: Author-signature subscribe
├── objective = try-it / direct action → Archetype B: Inline action + source link
├── objective = reader support / tip → Archetype C: Reader-supported funding link
├── objective = community → Archetype D: Proof-counted community invite
├── objective = social follow → Archetype A (variant: lead with social links)
├── objective = engagement → Archetype E: Specific reply prompt
└── objective = product / demo → ⚠️ FLAG. Only valid on personal/professional
blog where the author IS the product
(consultants, coaches, solo founders, indie devs).
Frame as "if you hit this, here's how I help"
— never "Book a Demo" verbatim.
context = NEWSLETTER PUBLICATION
├── objective = growth / subs → Archetype F: Share/restack + native widget
├── objective = engagement → Archetype E: Specific reply prompt
├── objective = paid conversion → Archetype G: Value-gap tease
├── objective = monetization / sponsor → Archetype H: Inline sponsor block (not bottom)
├── objective = community → Archetype D
└── objective = direct purchase → Archetype K (rare on newsletters; use BOFU only)
context = BRAND / CONTENT MARKETING
├── stage = TOFU → Archetype I: Transitional asset (lead magnet)
├── stage = MOFU → Archetype J: Direct + Transitional pair
├── stage = BOFU → Archetype K: Direct CTA + risk reversal
├── objective = community → Archetype D
└── objective = engagement → Archetype E (rarely the right call here)Read references/taxonomy.md for the full archetype catalog with copy templates, form specs, when each works, and verbatim examples from named publications.
Step 3 — Compose the recommendation
Output the recommendation in this exact structure. Do not deviate. Do not add filler.
## Recommended CTA
**Archetype:** [letter + name from decision tree] **Why this fits:** [1-2 sentences naming the input combination]
### Content (copy)
**Headline / value line:**
> [exact text]
**Body / proof line (1-2 lines):**
> [exact text]
**Button copy:**
> [exact text]
**Risk reversal / subtext (if applicable):**
> [exact text, or "Omit: would feel forced for this audience"]
### Form (structure)
- **Placement:** [end-only / end + sticky / end + mid-article repeat]
- **Visual weight:** [low / medium / high, with justification]
- **Layout:** [single button / button + text link / native widget cluster / one-line signature]
- **Proof to co-locate:** [subscriber count / star count / testimonial / named recommenders / logo wall / none]
### Mechanism
[Named mechanism + 1 sentence on why it is appropriate, OR "None: value statement carries it. Mechanisms would erode trust for this audience."]
### A/B test plan
- **First test:** [single variable, e.g., button copy A vs. B]
- **Why this one first:** [1 sentence]
- **Sample size needed:** [rough estimate based on baseline traffic, or "skip A/B for now — traffic too low" with the alternative recommendation]
- **Next 2 tests to queue:** [in priority order]
### Accessibility check
- **Color contrast:** [target ratio + concrete pairing if colors known]
- **Touch target:** [size requirement]
- **Semantic markup:** [<button> vs. <a> vs. form]
- **ARIA:** [only if non-obvious]
- **Keyboard / focus:** [requirement]
- **Color-independence:** [non-color affordance]After printing the recommendation, list 2-3 anti-patterns the user is at risk of falling into given their inputs, directly, as a contrarian check. Pull these from references/anti-patterns.md.
If the user is writing in a non-English language, translate the content section into that language but keep the structure (headings, labels) in English. Honor formality cues (e.g., tu vs. vous in French, du vs. Sie in German) based on prior conversation context, and flag the choice explicitly.
Step 4 — Offer next moves
Suggest 2-3 follow-up directions:
1. Steelman the opposite. Offer to design the CTA you would recommend against — e.g., the hard-sell version on a TOFU post — so the user can see why it fails. 2. Variant for a different audience or platform. If the article will be cross-posted (own site + Medium + LinkedIn + a syndication network), offer to rewrite per platform. 3. End-to-end review. Offer to audit the rest of the article for CTA-supporting signals: author bio, related-post links, in-line proof.
---
Style inheritance
The copy templates in references/taxonomy.md are starting points, not finished copy. Always adapt them to:
- The user's stated brand voice or any
<userPreferences>in scope (formality, language, em-dash avoidance, length limits). - The language of the article. Output copy in the article's language; never default to English.
- The publication's existing voice. If the user has prior posts visible, mirror their cadence and vocabulary.
- The reader's expected level of expertise. A CTA for a beginner-finance blog uses different vocabulary than one for a quant-trading newsletter.
Never output a template verbatim if it conflicts with the user's stated style preferences.
---
Reference files
Read these as needed during diagnosis and composition. Read the relevant file in full before composing the recommendation; do not paraphrase from memory.
- `references/taxonomy.md`: All 11 archetypes (A through K) with copy templates, form specs, verbatim examples from named publications, and conversion expectations.
- `references/mechanisms.md`: When to use urgency, scarcity, FOMO, discount, curiosity, reciprocity, social proof, authority, unity. When NOT to use them.
- `references/ab-testing.md`: Priority order of variables to test, sample-size rules of thumb, common pitfalls, when to skip A/B testing entirely.
- `references/accessibility.md`: WCAG 2.2 specifics for CTA blocks: contrast ratios, touch targets, ARIA patterns, focus states, keyboard support, motion preferences.
- `references/anti-patterns.md`: 12 failure modes to call out by name when they apply to the user's inputs.
---
Operating principles
- One primary CTA per post. Multiple competing CTAs is the dominant failure mode (single-CTA pages convert ~30%+ better than multi-CTA pages in repeated case studies).
- Match the voice of the publication. A personal-essay footer that reads like a SaaS landing page collapses credibility. A SaaS footer that reads like a casual signature converts at noise.
- Specificity beats cleverness. "Get one essay a week on indie filmmaking" beats "Subscribe to our awesome newsletter." Joanna Wiebe's "I want to \_\_\_" completion test is the cleanest filter for button copy.
- Proof co-located with the ask. Subscriber count, testimonial, customer logos, star count, named recommenders — whichever signal is honest for the context, place it inside or adjacent to the CTA block.
- Mechanisms are tools, not garnish. Most well-written value statements need no mechanism. Add urgency, scarcity, FOMO, or discount only when the context genuinely supports them; theatrical mechanisms erode trust faster than they lift conversion.
- Push back on bad asks. If the user wants "Book a Demo" at the bottom of a beginner tutorial for first-time visitors, say so. Do not produce a polished version of a CTA that will fail. Propose the alternative, explain why, then if the user still wants the original, deliver it with the failure mode flagged.
A/B Testing CTAs — Priority, Method, Pitfalls
A/B testing CTAs is high-leverage when you have enough traffic. It is theatre when you don't. This file covers what to test, in what order, with what sample size, and the failure modes that produce confidently wrong conclusions.
---
When NOT to A/B test
If any of the following is true, skip A/B testing and just ship a single well-designed CTA:
- Article gets fewer than ~1,000 unique readers per month. Below this threshold, runs take forever and confidence intervals are noise.
- Baseline conversion rate is below 0.5%. The signal is too weak to detect any but the largest lifts.
- You haven't written a strong baseline yet. Testing "Subscribe" vs. "Sign up" on a generic CTA is rearranging deck chairs; rewrite the value statement first.
- You don't have event tracking wired up. Without per-CTA click and downstream conversion tracking, you can't measure outcomes.
Effort is better spent improving the baseline CTA copy and content quality until traffic justifies testing.
---
Priority order: what to test first
Test variables in this order (Foundry CRO's "priority stack" plus operator experience):
Tier 1 — Highest leverage
1. Number of CTAs. One primary vs. one primary + one secondary vs. multiple equal-weight CTAs. Single-CTA pages convert ~30%+ better than multi-CTA pages in repeated case studies. 2. Value statement. "Subscribe to our newsletter" vs. "Get one [specific thing] a week." This is the single highest-impact variable in most tests. 3. Specificity of the offer. "Download our guide" vs. "Download the 14-line shell script we used to cut infra costs 40%." Specific concrete artifacts can lift conversion 2-5x.
Tier 2 — Significant leverage
1. Button copy. "Submit" vs. "Send me the next one." Apply Wiebe's "I want to \_\_\_" completion test. 2. Proof co-location. No proof vs. subscriber count vs. testimonial vs. logo wall. 3. Mechanism applied. Value-only vs. with social proof vs. with reciprocity. Test one mechanism at a time.
Tier 3 — Marginal leverage
1. Placement. End-only vs. end + sticky vs. end + mid-article repeat. 2. Visual weight. Button size, color, contrast. The Demio case showed +57.79% from larger and darker, with no color change. 3. Form length. Single field (email only) vs. multi-field (name + email + role).
Tier 4 — Marginal-to-noise
1. Button color. Red vs. green vs. orange vs. blue. The well-known ~21% lift cited in CXL is real but small and contextual. Contrast with surroundings matters more than the specific color. 2. Microcopy variations ("100% spam-free" vs. "We respect your inbox"). Stop here unless top tiers are exhausted.
---
Method: one variable per test
Always change one variable per test. HubSpot's Carly Stec: "Avoid testing multiple variables at the same time." Multi-variable tests produce results you can't attribute. The lift could be from any of the changes or from interactions between them.
Exception: if you're testing two entirely different CTA concepts (e.g., transitional asset vs. direct demo CTA on a MOFU post), that's a multi-variable test by necessity. Frame it as "concept A vs. concept B", not as a granular optimization.
---
Sample size: rule of thumb
The honest formula is full statistical power calculation; the rule of thumb for end-of-article CTAs is:
- Baseline conversion rate < 1%: need ~20,000+ visitors per variant to detect a 20% relative lift at 95% confidence.
- Baseline 1-3%: need ~7,000-15,000 per variant.
- Baseline 3-10%: need ~2,000-5,000 per variant.
- Baseline > 10%: need ~500-2,000 per variant.
If you're trying to detect smaller lifts (10% relative), roughly 4x these numbers. If you're trying to detect larger lifts (50% relative), roughly one-quarter.
Calculator: any standard A/B test sample size calculator (Optimizely, VWO, Evan Miller's online calculator). Plug in baseline rate + minimum detectable effect + power (typically 80%) + significance (typically 95%).
Run time: at least one full week, preferably two, regardless of when you hit the sample size. Weekday vs. weekend traffic differs. Newsletter readers behave differently right after publish vs. one week later.
---
Pitfalls — confidently wrong conclusions
1. Stopping early. "We hit significance at day 3, declared winner." This is the #1 cause of false positives. Pre-commit to a sample size or duration and don't peek. 2. Multiple comparisons. Testing five variants simultaneously and picking the winner inflates false-positive rate. If you test 20 things at p=0.05, one will "win" by chance. Use Bonferroni correction or test only two variants at a time. 3. Wrong success metric. Optimizing CTR (clicks) when you actually want downstream conversions (paid subscribers, qualified leads). Always measure to the actual business outcome, not just the click. 4. Sample contamination. Existing subscribers seeing the new-visitor CTA. Segment tests by cookie state (new vs. returning) where possible. 5. Seasonality. Testing in mid-December when reader behavior is anomalous. Test in normal traffic periods. 6. Survivorship bias in self-reported case studies. "We lifted CTR 1,617%!" usually means baseline was anomalously low and the test surfaced an obvious fix. Treat dramatic published case studies as directional, not predictive of your situation.
---
What "good enough" looks like
For an independent author managing their own blog without a marketing team:
- Tier 1 tests: Run these. Even one well-designed Tier-1 test can lift conversion 2-5x.
- Tier 2 tests: Run if you have traffic and a Tier-1 winner already.
- Tier 3-4 tests: Skip unless traffic is large (10k+ unique per month per article).
The honest summary: most authors should test exactly one thing — the value statement and offer specificity — and commit to the winner for 6+ months. The rest is decoration.
---
Recommended tooling
- Plausible / Fathom + custom events: simplest for self-hosted independent blogs. Tag CTAs with
data-cta="name"and fire events on click. - PostHog: richer event tracking + native A/B testing. Free tier sufficient for most personal blogs.
- HubSpot CTA module + multivariate testing: native if already on HubSpot CMS.
- Optimizely / VWO: enterprise-scale; overkill for personal blogs.
- Substack / beehiiv: native A/B testing is limited (mostly subject lines). For end-of-article CTAs, instrument with link tracking and compare cohorts.
---
The single rule
Pick the variable with the highest plausible impact, write two genuinely different variants (not "Submit" vs. "Submit Now"), run for at least one full week to a pre-committed sample size, measure the downstream business outcome, and commit to the winner. Repeat one variable at a time. Resist the urge to test six things at once.
Accessibility Checklist for CTA Blocks
A CTA that excludes readers with disabilities is a CTA that converts at a lower ceiling. This is also an EAA / WCAG compliance concern for any commercial European-facing content as of June 2025.
This file lists the WCAG 2.2 requirements that apply to end-of-article CTA blocks, with concrete pass/fail criteria. Apply all of these to every CTA you ship. There is no acceptable trade-off.
---
1. Color contrast (WCAG 2.2 SC 1.4.3 / 1.4.11)
Text contrast
- Normal text (< 18pt regular / < 14pt bold): contrast ratio ≥ 4.5:1 against the background. AA requirement.
- Large text (≥ 18pt regular / ≥ 14pt bold): contrast ratio ≥ 3:1. AA requirement.
- AAA target (recommended for primary CTAs): ≥ 7:1 for normal text, ≥ 4.5:1 for large text.
Non-text contrast (UI components, button outlines, icons)
- UI components (button boundaries, focus indicators, form fields): contrast ratio ≥ 3:1 against the adjacent background. SC 1.4.11, AA requirement.
Common failure: light-gray "Subscribe" text on white
"Subtle" gray-on-white CTAs (#999 on #FFF = 2.84:1) fail WCAG by a wide margin. The fix: use a darker text color (#595959 on #FFF = 7.02:1) or fill the button.
How to check
- Browser DevTools: Chrome and Firefox both ship contrast checkers in the color picker of the inspector.
- CLI / programmatic: axe-core, pa11y, Lighthouse.
- Quick web tools: WebAIM Contrast Checker, Coolors Contrast Checker, Stark.
---
2. Touch target size (WCAG 2.2 SC 2.5.8)
- Minimum target size: ≥ 24×24 CSS pixels. AA requirement, introduced in WCAG 2.2.
- Recommended target size: ≥ 44×44 CSS pixels. AAA requirement, also the Apple HIG / Google Material guideline.
Practical thresholds
- Button: minimum 44×44px tap target including padding. Even on desktop, this margin makes the button hittable on a touchpad without precision.
- Inline text links: ensure ≥ 24×24px hit area (typically achieved with line-height + padding around the link).
- Adjacent CTAs (e.g., "Subscribe" + "RSS" + "Mastodon"): require ≥ 8px spacing between targets so adjacent taps don't trigger the wrong link.
---
3. Semantic markup (WCAG 2.2 SC 4.1.2)
Use the right element
- Submitting a form (e.g., newsletter signup):
<button type="submit">. Always inside a<form>with an explicitactionandmethod. - Navigating to another page:
<a href="...">. Not a<button>styled as a link, not a<div>with an onClick. - Toggling state in-place (e.g., expanding a section):
<button type="button">.
Common failures
<div onClick={...}>styled as a button: invisible to screen readers, not keyboard-focusable by default. Always replace with<button>or<a>.<a>with nohrefand an onClick: same problem. Use a<button>.<button>that navigates: technically works, but loses right-click "Open in new tab" and middle-click behavior. Use<a>for navigation.
---
4. ARIA — use sparingly, only when semantics are insufficient
First rule of ARIA: don't use ARIA when native HTML works
A <button>Subscribe</button> does not need role="button". A <a> does not need aria-label="link".
When ARIA IS needed for CTAs
- Icon-only button:
<button aria-label="Subscribe to newsletter">📩</button>. Without the label, a screen reader announces "button" with no purpose. - Button label that's ambiguous out of context: "Read more" or "Click here" link should have an
aria-labelthat names the destination ("Read more about [article title]"). Better: rewrite the visible text to be self-describing. - Form field without a visible label:
<input aria-label="Email address">. Better: include a visible<label>and link it withfor=.
Common failures
aria-label="Submit"on a button that already says "Submit": redundant, can produce double announcements.role="button"on a<button>: redundant, sometimes overrides native behavior in older AT.aria-hidden="true"on a focusable element: screen reader users see the focus, hear nothing. Use eithertabindex="-1"to remove from focus or removearia-hidden.
---
5. Keyboard support (WCAG 2.2 SC 2.1.1 / 2.4.7)
- Every CTA must be reachable by Tab and activatable by Enter (and Space for `<button>`). This is automatic with native
<button>and<a>. Custom JS-driven CTAs require manual handling. - Focus indicator must be visible.
outline: nonewithout an explicit replacement is a WCAG 2.4.7 failure. - Recommended focus style: ≥ 2px solid outline with ≥ 3:1 contrast against both the button and the page background. WCAG 2.2 SC 2.4.11 (Focus Not Obscured) requires that the focused element be at least partly visible — no full overlay by sticky headers or footers.
- Tab order must be logical. If the visual order is "Primary CTA → Secondary text link", the DOM order must match.
---
6. Color-independence (WCAG 2.2 SC 1.4.1)
Do not convey CTA state, importance, or affordance through color alone.
Common failures
- Only difference between primary and secondary CTA is color: colorblind users (~8% of male readers) cannot distinguish them. Add a visual difference (filled vs. outlined, larger vs. smaller, button vs. text link).
- Error states shown only with red text: pair with an icon or explicit text ("Error:").
- Required form fields shown only with red asterisk color: include the asterisk as a character and the word "(required)".
Apply to CTAs
- Primary CTA: filled background + bold text + larger size. Not just "the blue one."
- Visited state: include underline or bold change, not just color shift.
---
7. Forms specifically (newsletter signup blocks)
- Visible label for every input (not just placeholder text — placeholder disappears on focus and is low-contrast).
- `label for=` linking to the input's
id. - Inline validation announced to screen readers via
aria-live="polite"oraria-describedbyon the input pointing to the error message. - Error messages placed near the field, not floated at the top of the form.
- Submit button with descriptive text ("Subscribe to the newsletter", not "Submit").
- GDPR / consent checkbox (where required): visible label, not pre-checked by default (EU law), with link to privacy policy.
---
8. Motion (WCAG 2.2 SC 2.3.3)
- Animated CTAs (pulsing, bouncing) must respect `prefers-reduced-motion`. If a user has set that media query, freeze the animation.
- Auto-scrolling sticky CTAs: disable on
prefers-reduced-motion. - Countdown timers that animate: ensure the number itself is announced, not just visually counting. Use
aria-live="polite"updates at coarse intervals (every 10s or 1m, not every second).
---
9. Screen reader announcements
Test with at least one screen reader:
- macOS / iOS: VoiceOver (Cmd+F5 / triple-click Home).
- Windows: NVDA (free) or JAWS.
- Linux: Orca.
- Mobile Android: TalkBack.
Quick test: turn on VoiceOver, navigate to the CTA via Tab, listen to the announcement. It should clearly state: (1) the action, (2) the element type. Example: "Subscribe to the newsletter, button" or "Get the template, link".
If the announcement is "button" or "link" with no purpose, the CTA fails.
---
10. Language and readability
- Set `lang` attribute on the page (
<html lang="fr">). Affects pronunciation by screen readers and hyphenation. - For multilingual CTAs (e.g., a French CTA in an English page), wrap in
<span lang="fr">...</span>so screen readers switch voices. - Reading level: aim for the lowest plausible Flesch reading-ease that doesn't insult the audience. Expert / niche audiences tolerate higher complexity; general / consumer audiences should target Flesch ~60+ (around grade 8-9).
---
Compact pre-publication checklist
For every CTA, verify:
- [ ] Text contrast ≥ 4.5:1 (or 3:1 for large text)
- [ ] Button / non-text UI contrast ≥ 3:1
- [ ] Touch target ≥ 44×44px (recommended) or ≥ 24×24px (minimum)
- [ ] Native
<button>or<a>(no<div onClick>) - [ ] Keyboard-reachable (Tab) and activatable (Enter/Space)
- [ ] Focus indicator visible, ≥ 2px, ≥ 3:1 contrast
- [ ] No information conveyed by color alone
- [ ] Form has visible labels (not just placeholders) and
label for= - [ ] Icon-only buttons have
aria-label - [ ]
prefers-reduced-motionhonored for any animation - [ ] Screen reader announces purpose, not just element type
- [ ]
langattribute set; multilingual content wrapped withlang=
If you can't tick every box, fix the failures before shipping. There is no "we'll do accessibility later" — readers excluded today are conversions lost forever.
Anti-Patterns — Failure Modes to Call Out by Name
Twelve failure modes that recur across end-of-article CTAs. When the user's inputs put them at risk of one of these, call it out explicitly. Do not soften.
---
1. "Subscribe for more"
Why it fails: Says nothing about value, frequency, content, or who else is in. Conversion floor.
Fix: State the value proposition, frequency, and a proof signal in one line. "Get one debugging trick a week. Friday morning. 12,000+ engineers read it."
---
2. Generic verbs: "Learn More" / "Read More" / "Click Here" / "Get Started"
Why they fail: Andy Crestodina is blunt: these are not calls to action. They name no value and no destination. NN/g's "Get Started" Stops Users documents how "Get Started" specifically funnels first-time visitors into signup flows they didn't ask for.
Fix: Replace with the specific noun and verb. "Read more" → "Read the deep-dive on Go runtime maps." "Get Started" → "Start the 5-minute tutorial."
---
3. Three equally weighted buttons
Why it fails: Hick's Law. Equal visual weight on multiple CTAs creates decision paralysis. Reader picks none.
Fix: One primary CTA (button), demote others to subordinate text links or smaller secondaries. The StoryBrand "direct + transitional" dyad is the proven pattern.
---
4. Begging for comments
Why it fails: "Let me know what you think in the comments!" gets ignored. The reader can't think of anything specific to say and bounces.
Fix: Ask a specific question that requires recall of a personal experience or technical opinion. "What's the worst bug you shipped on a Friday afternoon?" gets answers; "What do you think?" does not.
---
5. Hard-sell CTA ("Book a Demo" / "Talk to Sales") on a TOFU post
Why it fails: Top-of-funnel readers are discovering the topic, not ready to buy. A hard-sell ask at the bottom collapses credibility for the rest of the article retroactively. For sophisticated audiences (technical, professional, niche-expert), the effect is even stronger. Yacine Hmito (Head of Technology, Fabriq): "If I see 'Book a demo' or 'Talk to Sales,' I am out." The same reflex applies to readers in professional services, healthcare, journalism, and any context where credibility is the readership currency.
Fix: Use a transitional asset (PDF, template, calculator, checklist) if this is brand content. Use an author-signature subscribe if this is independent content. Save "Book a Demo" for BOFU content that explicitly precedes a buying decision — and even then, prefer "Talk to a Human" or "Get a 20-min audit" verbs (both produced documented 110%+ conversion lifts vs. "Book a Demo").
---
6. Buzzword stacking
Why it fails: Generic adjectives stack without adding information. Every industry has its own catalog: tech ("AI-infused," "enterprise-grade," "single pane of glass," "synergy," "leverage," "seamless," "scalable," "at scale," "digital transformation" — Redis published an audit of buzzwords developers hate), finance ("alpha," "asymmetric upside," "best-in-class"), wellness ("transformative," "holistic," "intentional," "elevated"), B2B SaaS ("unlock," "empower," "supercharge"). Each empty word cuts credibility. By word four, the reader has tuned out.
Fix: Replace every adjective with a concrete number or example. "Enterprise-grade reliability" → "99.99% uptime, measured over the last 24 months." "Seamless integration" → "Three steps, works with [specific tools]." "Transformative coaching" → "12-week program, 1:1, every session recorded."
---
7. Theatrical urgency
Why it fails: Countdown timers that reset on page refresh; "Only 2 left!" on infinite digital goods; "Offer ends soon!" recurring weekly. Sophisticated readers detect this in 0.5 seconds and bounce — permanently.
Fix: Only use urgency when the deadline is real (cohort starts, conference tickets sell out, beta closes). State the actual date and what happens if the reader misses it. If you don't have real urgency, don't manufacture it.
---
8. Stale proof
Why it fails: "Trusted by leading companies" with no logos. "Join thousands of happy users." "Award-winning newsletter" with no award named. Vague proof performs worse than no proof — it signals "we know we should have specifics, but we don't."
Fix: Real number, named logos, named testimonial. "Join 2,437 engineers" beats "thousands." Recognizable brand logos beat "Fortune 500 customers." Named testimonial with role and company beats "Happy Reader."
---
9. Subscribe form with seven fields
Why it fails: Each additional form field reduces conversion. Email-only forms convert 2-5x better than multi-field forms in most published case studies.
Fix: Capture email only. Ask for name, role, or preferences after the initial subscribe, via a welcome email or a profile completion prompt. Never block the first conversion on metadata you can collect later.
---
10. CTA contradicts the article
Why it fails: Article argues vendor neutrality, then footer says "Sign up for our SaaS." Article teaches readers to do X themselves, then footer says "Let us do X for you." The CTA undermines the article's thesis.
Fix: Align the CTA with the article's argument. A vendor-neutral piece earns a newsletter / RSS subscribe. A teach-yourself piece earns a deeper-content offer. Save the product pitch for posts where the product is the thesis.
---
11. Marketing voice on an independent / credibility-driven publication
Why it fails: End-of-article CTAs in over-eager marketing tone immediately downgrade the perceived authority of the entire post. The pattern crosses every topic: a journalist's essay ending in "Don't miss out on our amazing weekly insights!"; a niche-expert newsletter closing with "Subscribe now to join thousands of happy readers!"; a personal blog footer that reads like a B2B SaaS hero. Each one tells the reader "the human who wrote the article isn't the human who wrote this CTA."
Fix: Adopt the voice of the author signing off. Restrained, specific, no exclamation marks, no royal-we. Compare:
- ❌ "Don't miss out on our amazing weekly insights! Subscribe now to join thousands of happy readers!"
- ✅ "If this was useful, the weekly digest covers one thing in depth every Friday. Subscribe here. RSS over here."
For technical blogs specifically, Cecilia Stallsmith (Calyx) put it this way: "Run content by your dev team. If they cringe, edit." The same test works for any audience: read the CTA aloud to one trusted reader from your target audience; if they wince, rewrite.
---
12. Same CTA for every post regardless of intent
Why it fails: A "Subscribe to the newsletter" CTA glued to the bottom of every post — tutorial, opinion essay, release announcement, conference recap — treats every reader the same. Tutorial readers want depth; release-announcement readers want to try the code; conference-recap readers want next year's event.
Fix: Three to five CTA templates, one per post type. Tutorial → newsletter or related deep-dive. Product / project release announcement → try-it action + source link. Opinion piece → reply prompt + newsletter. Conference / event recap → next event registration + photo album. Review post → comments + related reviews. The post tells you which template fits; never default to one.
---
How to use this list
When composing a CTA recommendation, scan this list against the user's inputs. If their context or stated goal would put them on one of these failure modes, surface it before writing the CTA. Format:
⚠️ Anti-pattern risk: [name from this list]. [One sentence on why it applies to your case]. [The fix.]
Do not soften the language. The user pays for direct, contrarian feedback; sycophancy is a disservice.
CTA Mechanisms — When Each Helps, When Each Backfires
A "mechanism" is the persuasion lever layered on top of the value statement. Most end-of-article CTAs need zero mechanism — the value statement carries it. Mechanisms are tools, not garnish. Each one has a cost in trust if applied to the wrong audience.
The default for sophisticated, skeptical, or repeat-reader audiences is None / value-only. Add a mechanism only if the audience and context support it.
---
1. None / value-only (default)
Use when: Audience is sophisticated, skeptical, or has high BS-detection (independent-publication readers, repeat subscribers, professionals, niche-expert audiences). Or when the offer is intrinsically valuable and the value statement does the work alone.
Example: "Get one well-researched essay a week. No spam, no upsells."
Why this is the default for independent content: Any mechanism risks signaling "marketing playbook" and breaking the peer-to-peer voice that made the article credible in the first place. Sophisticated readers exit at the first whiff of theatrics — the technical-audience version of this is documented (Yacine Hmito, Head of Technology at Fabriq: "If I see 'Book a demo' or 'Talk to Sales,' I am out"), and the same pattern shows up in independent journalism, niche-expertise newsletters, and credibility-driven personal essays.
---
2. Curiosity gap ("Want to know more?")
Use when: The article hints at deeper content in the paid / next / forthcoming piece. The reader's curiosity is already engaged by the post itself.
How to write it well:
- Be specific about what the gap is. "Want to know more?" alone is empty. "The full breakdown — including the spreadsheet and three case studies I couldn't share publicly — is in the paid version" is specific.
- Name the missing thing. Don't tease abstractly.
How it fails: Vague teases ("Want the secret?") read as clickbait. Curiosity gaps work in proportion to how _concretely_ the missing thing is named.
Where it works best: Newsletter (Archetype G — free → paid conversion). Lenny Rachitsky's free posts use this surgically.
Where it fails: Articles where the reader expects completeness. If the article promises to teach X, withholding the punchline for a paid upgrade breaks the implicit contract. This is especially acute on educational, technical, or how-to content.
---
3. Reciprocity (free asset first)
Use when: The CTA is a lead-gen capture and you can offer something genuinely useful with zero pre-conditions. Reader gets the asset; you get the email.
Cialdini's principle: People feel obligated to reciprocate gifts. If you give first, asking for something later (email, attention, a paid upgrade) gets a meaningfully higher yes-rate.
How to write it well:
- Lead with the gift. "Get the [specific artifact] mentioned above." The ask is implicit (you'll need to enter your email to receive it).
- The gift must be valuable on its own — not a watermarked thumbnail of the real thing.
How it fails: Reciprocity collapses when the "gift" is obviously a wrapper for a sales sequence. A "free ebook" that's 80% product pitch is anti-reciprocity — the reader feels manipulated, not gifted.
Where it works best: Marketing / SaaS TOFU (Archetype I). Lead-magnet pattern.
Where it fails: Newsletters where the audience expects the content itself to be the gift; gating a small additional artifact behind an email feels needy.
---
4. Discount / offer
Use when: Direct-to-purchase or subscription. Discount must be real, time-bounded, and explained (launch promo, end-of-year, audience-specific).
How to write it well:
- State the price before and after, or the percentage off and the deadline.
- Explain why the discount exists. "Launch discount: 20% off the first 100 subscribers" tells a story. "Save 20%!" is noise.
- Pair with an explicit, verifiable end condition (date or seat count).
How it fails:
- Permanent "discounts" are not discounts. If your homepage has shown 50% OFF every day for a year, the discount is now the regular price; you've just trained the reader to ignore it.
- Discounting B2B SaaS at the blog level often cheapens the brand. Save discounts for landing pages reachable from BOFU posts, not for top-of-funnel content.
Where it works best: Brand / SaaS BOFU posts that directly precede a purchase; paid newsletter relaunches; event tickets near deadline (conference, course, cohort).
Where it fails: Independent blogs (almost always), newsletter free→paid (rarely — "you can expense it" is more durable than "20% off"), TOFU brand content (almost always).
---
5. Urgency (deadline)
Use when: There is a real deadline — registration closes, course cohort starts, beta access ends, conference tickets sell out.
How to write it well:
- State the actual deadline with date and time. "Registration closes Friday at midnight PT" is honest.
- Name what happens if the reader misses it. "Next cohort opens in three months" sets the stakes.
How it fails: Fake urgency is the worst CTA failure mode after begging. A countdown timer that resets when the reader returns is reader-hostile. Sophisticated audiences detect this in 0.5 seconds and bounce permanently.
Where it works best: Event-based offers (cohort courses, conference tickets, beta closes, launch windows). Marketing / SaaS BOFU when the deadline is real.
Where it fails: Recurring newsletter offers; evergreen content generally; any context where "ends soon" cannot be substantiated.
---
6. Scarcity / FOMO (limited spots)
Use when: There is real scarcity — N seats in a cohort, N consulting clients per quarter, beta access for first N signups.
How to write it well:
- Show the actual count. "8 of 25 seats left" beats "Limited seats!" by an order of magnitude.
- Update the count in near-real-time (or refresh on page load). A static "Limited!" is just noise.
How it fails: Fabricated scarcity ("Only 3 left!" on a digital product with infinite supply) detonates trust. The reader doesn't just bounce — they tell others.
Where it works best: Consulting practices ("I take 4 new clients per quarter"), cohort programs, limited beta access.
Where it fails: Mass-market SaaS, newsletters, any digital good with infinite supply.
---
7. Social proof (count / testimonial / named users)
Use when: You have honest, verifiable proof: a subscriber count, a star count, a named testimonial, a logo wall of recognizable brands.
How to write it well:
- Round to actual numbers, not aspirational ranges. "Join 2,437 engineers" beats "Join thousands of engineers" because it's verifiable and specific.
- Testimonials should name a person and (where appropriate) their company / role. Anonymous "Best newsletter ever! — Happy Reader" is anti-proof; sophisticated readers discount it to zero.
- Logo walls only help when the logos are recognizable to the audience. Specific named logos relevant to the reader ("Used by Stripe, Cloudflare, and Vercel" for a developer audience; "Featured in The Atlantic, The New Yorker, and Vox" for a journalism audience; "Trusted by Whole Foods, Erewhon, and Sprouts" for a food-industry audience) outperform "Used by 50+ Fortune 500 companies" by a wide margin.
How it fails:
- Vague proof ("Join thousands of happy users") performs worse than no proof — it signals "we know we should have proof, but we don't have specifics."
- Old / stale proof (subscriber count from two years ago) signals "this newsletter is dying."
Where it works best: Any context, any goal. Social proof is the most universally applicable mechanism. Co-locate it with the ask wherever possible.
Where it fails: Only when the proof is dishonest, vague, or stale.
---
8. Authority (named author, micro-credentials)
Use when: The author has earned credibility in the space and the reader needs that signal to commit.
How to write it well:
- Named author bio with 1-2 specific credentials. "Built X at Y, maintains Z (17k stars)" beats "Industry expert with decades of experience."
- Link to evidence (GitHub, prior work, conference talks).
How it fails: Authority claims without evidence read as self-promotion. "Award-winning marketer" without naming the award is anti-authority.
Where it works best: Personal blogs, newsletters, consulting CTAs. Increasingly important in the AI-content era — the signal "a specific named human writes this" is durable.
Where it fails: Company blogs where the byline is the brand, not a person.
---
9. Unity (shared identity)
Use when: Your audience identifies with a tribe, movement, or shared identity (e.g., indie hackers, working parents, climate-tech founders, plant-based home cooks, French startup community, queer writers, value investors, ultra-runners).
How to write it well:
- Name the tribe explicitly. "For working parents who run their own businesses" is better than "For business owners." "For Go developers who care about runtime internals" is better than "For developers." The pattern: specific identity intersection beats broad category.
How it fails: Pandering to a tribe you're not part of. If you don't actually identify with the audience, they will smell it.
Where it works best: Niche newsletters; community CTAs; conference / event recap posts.
---
Selector matrix: mechanism × context
| Mechanism | Independent / personal | Newsletter publication | Brand / content marketing |
|---|---|---|---|
| None / value-only | ✅ Default | ✅ Often | ⚠️ Rarely enough |
| Curiosity gap | ❌ Avoid | ✅ Free→paid teases | ⚠️ Only if specific |
| Reciprocity | ⚠️ Only if asset is genuine code/tool | ⚠️ Rarely needed | ✅ TOFU default |
| Discount | ❌ Avoid | ⚠️ Only at launch/relaunch | ✅ BOFU only |
| Urgency | ❌ Avoid unless real deadline | ⚠️ Real deadlines only | ✅ Event/launch only |
| Scarcity / FOMO | ❌ Avoid | ❌ Avoid | ⚠️ Real scarcity only |
| Social proof | ✅ Stars, named users | ✅ Subscriber count | ✅ Logos, testimonials |
| Authority | ✅ Named author + credentials | ✅ Author bio | ⚠️ Brand authority only |
| Unity | ✅ Tribe naming | ✅ Niche audience | ⚠️ Rarely fits |
✅ = fits naturally · ⚠️ = situational · ❌ = avoid by default
---
The single rule
If you have to choose between adding a mechanism and improving the value statement, improve the value statement. Mechanisms amplify; they don't substitute. A weak value statement with three mechanisms layered on top still loses to a strong value statement with no mechanism at all.
CTA Archetypes (A through K)
Eleven archetypes covering the independent / newsletter / brand contexts × the full goal taxonomy. Each entry includes: when it fits, copy template, form spec, verbatim example from a named publication, and rough conversion expectation.
The archetypes are designed to work across topics: a personal essay on indie filmmaking, a finance newsletter, a SaaS engineering blog, a hobby cooking blog, a B2B HR tech site. Adapt the wording to the topic; the structural prescriptions are general.
---
A. Author-signature subscribe (independent blog, newsletter growth or social follow)
When it fits: Personal or independent blog of any topic. Goal is to grow an RSS / email / social audience without alienating the reader. Solo-author voice. First-time and returning visitors mixed.
Copy template:
Posted [date]. If you liked this, you can subscribe to the [newsletter / weekly digest / monthly notes] — [frequency promise]. RSS [here]. [Optional: social handle(s) for follow].
Form:
- Single short paragraph or one-line signature, no boxed UI.
- Visual weight: low. Reads as a byline, not an ad.
- Layout: 1-3 inline text links, no button. Optional: native subscribe widget on its own line below.
- Placement: end-only. No mid-article repetition. No sticky.
Verbatim example — Simon Willison (simonwillison.net), technical blog:
Posted [date] at [time]. Follow me on Mastodon, Bluesky, Twitter or subscribe to my newsletter.
Verbatim example — Stripe blog, brand publication using author-signature style:
Stay connected with Stripe and receive new blog posts in your inbox. Stripe builds financial tools and economic infrastructure for the internet. [email field]
Conversion expectation: 0.3-2% of unique readers subscribe per post. Above 2% is top-decile.
---
B. Inline action + source link (any context, try-it / direct action)
When it fits: Article walks through a doable action: code, recipe, exercise routine, financial calculation, design template, workout, drill, prompt, configuration. Goal is for the reader to try the action immediately. Reader trusts artifacts over copy.
Copy template:
Try it:
>
```
[code snippet / recipe steps / template link / prompt / calculation]
```
>
Source: [link to repo / template / spreadsheet / Figma file / GitHub gist]. Feedback welcome. If you build something with it, [reply / DM / open an issue] — I'd love to see it.
Form:
- Code block or embedded artifact (recipe card, downloadable template, interactive calculator) immediately above the link line.
- Visual weight: medium. The artifact carries the weight, not a button.
- Layout: artifact + 1-2 plain text links.
- No "Star the repo!" or "Save the recipe!" button at the bottom. That sort of ask belongs on the artifact's own page, not the blog footer.
Verbatim example — Fly.io blog, technical publication using restrained share-only pattern:
Share this post on Twitter | Share this post on Hacker News | Share this post on Reddit Next post ↑ / Previous post ↓
(Fly.io's blog deliberately omits any subscribe or sign-up ask at the bottom; product CTAs live inline at the top of certain posts. The pattern generalizes: when the artifact in the post is the value, the bottom only needs share affordances.)
Common variants:
- OSS / dev context:
pip install x,npm install y,go get z, plus repo link. - Cooking / hobby blog: "Get the printable recipe card" + link.
- Finance / spreadsheet context: "Open the calculator in a new tab" + link to a Google Sheet template.
- Design / no-code: "Duplicate this Figma file" + link.
- Productivity / templates: "Use the Notion template" + link.
Conversion expectation: Hard to attribute directly. Measure via referrer logs on the artifact, downstream artifact-engagement (installs, copies, forks), or query-string tagging (?ref=post-name).
---
C. Reader-supported funding link (independent context, paid support / tip)
When it fits: Independent creator with a sustainable readership: writer, journalist, podcaster, indie maintainer, indie analyst, illustrator, researcher. Goal is to convert reader-trust into financial support without begging.
Copy template:
I write / make this on the side. If you find it useful, a [membership / sponsorship / tip] covers about [a day / a week / a month] of work. [Memberful / Patreon / GitHub Sponsors / Buy Me a Coffee / Stripe link] · [one-off tip link]
Form:
- Plain text link, no button. Optional: small recurring "members get X" subtext.
- Visual weight: low.
- Placement: at the _top_ of posts (Dan Luu's documented pattern) OR end-signature. Not both.
- Layout: 1-2 inline text links.
Verbatim example — Dan Luu (danluu.com), independent technical writer:
A couple weeks ago, I added a link to Patreon at the top of posts (instead of just having one hiding at the bottom).
Generalization to other creator types:
- Indie journalist / Substack writer: "If this is useful, a paid subscription covers the time. [link]"
- Podcaster: "Members get the extended cut and the back catalog. [link]"
- Illustrator / artist: "Memberships fund the next series. [link]"
Conversion expectation: Reader support is a rare event. Don't optimize for conversion rate; optimize for the signal "this is a serious operation worth funding." A small number of high-value supporters outweighs a long tail of $5 tips on operational sustainability.
---
D. Proof-counted community invite (any context, community join)
When it fits: You run a community (Discord / Slack / forum / Circle / Geneva / WhatsApp group) that the article topic touches. Reader could plausibly want ongoing discussion.
Copy template:
Join [N] [readers / makers / writers / parents / investors / climbers / etc.] in [community name] [on platform]. We talk about [specific topic] every [day / week]. [Invite link]
Form:
- Boxed block with platform logo + member count + topic.
- Visual weight: medium. Button: "Join the [community name]".
- Layout: 1 button + 1 text link to a public area / archive (if any).
Critical: The count must be honest. "Join 24 readers" is more compelling than "Join a growing community" because the former is verifiable. Round to actual number, never inflate.
Conversion expectation: 1-3% of readers click; 30-60% of clickers actually join.
---
E. Specific reply prompt (any context, engagement)
When it fits: Article makes a claim or shares an experience where the reader plausibly has a counter-example, addition, or related story. Goal is comments / replies / DMs.
Copy template:
[Specific question that requires recall of a personal experience or strong opinion]. Reply, hit comment, or DM me — [contact handle]. I read everything.
Form:
- 1-2 sentences. No button.
- Visual weight: low.
The question must be specific. Replace "What do you think?" with one of:
- "What's the worst hire you've ever made and what tipped you off in the first week?"
- "Which of these three recipes did you try, and what would you change?"
- "What's one investment thesis you've held for 5+ years that you'd defend in public?"
- "Which conference talk changed how you work, and why?"
Verbatim example — Patrick McKenzie / Bits about Money (paraphrased pattern):
Counter-arguments and corrections are welcome. Reply to this email; I read everything, even if I don't always respond in time.
Conversion expectation: Specific prompts can hit 1-3% reply rate on newsletters. Generic prompts ("Let me know what you think!") run near zero.
---
F. Share / restack + native widget (newsletter publication, growth)
When it fits: Newsletter on Substack, beehiiv, Ghost, or similar. Goal is subscriber growth. Reader is engaged (they finished a long essay).
Copy template:
If this was useful: a [restack / share] helps more than you'd think — it tells [platform] to show it to people whose feeds look like yours. And if a specific person came to mind while reading, forward it to them.
Form:
- One short paragraph asking for restack / share.
- Platform-native widgets (like, comment, restack, share) immediately below.
- Visual weight: medium. The native widgets do the visual lifting.
Verbatim example — Lenny's Newsletter (free posts), B2B operator newsletter:
If you're finding this newsletter valuable, share it with a friend, and consider subscribing if you haven't already. There are group discounts, gift options, and referral bonuses available.
Conversion expectation: Restack rate 1-8% on Substack. Lenny Rachitsky reports ~78% of free subscribers and ~11% of paid come via Substack recommendations — restacks feed the recommendation algorithm directly.
---
G. Value-gap tease (newsletter publication, free → paid conversion)
When it fits: Free post that exists alongside paid content. Goal is to convert free readers to paying subscribers without bait-and-switch.
Copy template:
This is a free post. Paid members got [specific deeper content] last [time period], including [concrete thing the paid version had]. If you find one in [N] of these useful, the math works out — and you can expense it.
Form:
- Italicized paragraph, ends with a "Become a paid member" button.
- Visual weight: medium.
- Subtext: "Cancel anytime · Group discounts available · [Refund policy if any]".
Critical: Name what the paid version contained. "Subscribe for more" tells the reader nothing. "Paid members got the spreadsheet and three case studies I couldn't share publicly" lets them self-qualify.
Conversion expectation: Lenny's documented range is 4-8% free → paid for high-quality newsletters with sustained free → paid teasing. Most newsletters convert 1-3%.
---
H. Inline sponsor block (newsletter publication, monetization)
When it fits: Newsletter with sponsor monetization. Goal is to deliver sponsor value without breaking reader trust.
Copy template:
[Sponsor message in author's voice, 2-4 sentences, names the specific value to a specific reader segment. Signed-off with an explicit "this is a sponsored block" disclosure.]
Form:
- Boxed block, clearly demarcated from editorial.
- Placement: inline, not at bottom. Packy McCormick (Not Boring) places sponsor blocks inline, mid-essay; the bottom is reserved for native widgets.
- Visual weight: medium.
- Disclosure: "This is sponsored by [X]" or "Today's newsletter is presented by [X]" at the top of the block. Required by FTC for US publications.
Verbatim example — Not Boring (Packy McCormick):
Upgrade your team to Ramp: The Official Business Card of Not Boring [...]
Conversion expectation: Sponsor CTR is the sponsor's problem to optimize. The publication's job is to maintain the integrity of the block so future sponsors keep paying.
---
I. Transitional asset / lead magnet (brand publication, TOFU)
When it fits: Top-of-funnel content-marketing post. Reader is discovering the topic, not ready to buy. Goal is to get them on the list with a transitional asset (PDF, template, checklist, calculator, swipe file, quiz result).
Copy template:
Get the [specific artifact mentioned in the post] — [PDF / template / checklist / calculator]. [Frequency promise]. [Proof: "12,000+ [persona] use it"]. No upsell.
Form:
- Boxed block with the artifact image / thumbnail visible.
- Button: "Send me the [artifact]" or "Download the [artifact]".
- Visual weight: high.
- Risk reversal: "Unsubscribe anytime" or "We won't email you unless you ask us to."
Critical: The artifact must be the artifact mentioned in the post, not a generic "Ultimate Guide". If the post is "How we cut our customer-support response time by 60%", the asset is "The exact email templates we use", not "The Definitive Guide to Customer Support (47 pages)".
Conversion expectation: 1-5% of blog readers download a well-matched transitional asset. Generic "Ultimate Guide" downloads run 0.1-0.5%.
---
J. Direct + Transitional pair (brand publication, MOFU)
When it fits: Middle-of-funnel content-marketing post. Reader is evaluating, comparing. Goal is to capture both buyers (direct) and not-yet-buyers (transitional).
Copy template:
Direct (primary):
>
> Start a [N-day] free trial — no credit card. Set up in under [X] minutes.
>
Transitional (secondary, text link):
>
> Or download [specific buyer's asset] (PDF, [N] pages).
Form:
- Two visually unequal CTAs. Direct gets the button; transitional gets a text link below or beside.
- Visual weight: high for direct, low for transitional.
- Layout: Button + text link. NOT two equal buttons.
Critical: The visual hierarchy must be unambiguous. Two same-size buttons trigger decision paralysis (Hick's Law). One button + one text link is the high-converting layout. StoryBrand's Donald Miller calls this the "direct + transitional" dyad and treats it as the default for B2B content.
Conversion expectation: Combined click-through 3-8% on a well-targeted MOFU post.
---
K. Direct CTA + risk reversal (brand publication, BOFU)
When it fits: Bottom-of-funnel content-marketing post. Reader is ready to act, just needs the friction removed. Goal is signup / demo / purchase.
Copy template:
See [Product / Service] applied to your [workflow / situation]. [N]-minute call. We'll audit your current [process] and show what changes — even if you don't buy. [Book a [N]-min audit] Risk reversal: No sales pitch. We'll send the recording afterwards.
Form:
- Single prominent button.
- Visual weight: high.
- Layout: button + 1-2 lines of risk-reversal subtext directly below.
- Proof co-located: small testimonial or logo wall above or below the block.
Critical: The button verb must match the offer. PartnerStack's documented test moved "Book a Demo" → "Get Started" and lifted conversion 111.55%. Mailmodo's documented test moved "Book a Demo" → "Talk to a Human" and lifted conversion 110.35%. "Book a Demo" is the lowest-converting BOFU verb in the published record.
Conversion expectation: 1-3% of blog readers → MQL on a well-targeted BOFU post. 6-11% on a dedicated landing page reached from the post.
---
Quick selector
If the user gave context + objective, this table picks the archetype:
| Context \ Objective | Newsletter sub | Try-it / action | Community | Reader support | Trial/Demo | Lead gen | Engagement | Paid upgrade |
|---|---|---|---|---|---|---|---|---|
| Independent / personal | A | B | D | C | ⚠️ K (only if BOFU + author IS the product) | I (rare) | E | — |
| Newsletter publication | F | — | D | H | — | I (rare) | E | G |
| Brand / content marketing | I (TOFU) / J (MOFU) | — | D | — | K (BOFU) | I | E (rare) | — |
Related skills
How it compares
Pick copywriting-cta over full ghostwriting skills when you only need a bottom-of-article conversion block rather than an entire newsletter issue or voice-matched essay.
FAQ
What is copywriting-cta?
Design end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articles, or any long-form content). Use this skill whenever the user asks to w
When should I use copywriting-cta?
Design end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articles, or any long-form content). Use this skill whenever the user asks to w
Is copywriting-cta safe to install?
Review the Security Audits panel on this page before production use.