Newsletter Growth skill for Codex

Grow net active readers, not the send count. Codex diagnoses a newsletter from net growth, clicks and acquisition sources before suggesting tactics, then tightens the one-line promise, places signup forms where readers are, writes a welcome sequence and adds referral and recommendation channels. Every source is judged by the 30-day engagement of the subscribers it brings, inactive readers are re-engaged or removed with your sign-off, and sponsorships stay clearly labelled.

  • Growth & SEO
  • $newsletter-growth
  • 149 lines
  • 2 files
  • ~1,950 tokens
  • MIT
  • Updated

Install

curl -fsSL codexskills.dev/install.sh \  | sh -s -- newsletter-growth

Installs to ~/.agents/skills/newsletter-growth/ for every project on this machine.

104-line POSIX script. No sudo, no telemetry. Read install.sh

Use it in Codex

Start a prompt with $newsletter-growth, or pick it from /skills. You can also just describe the task: Codex reads the description below and loads the playbook when your request matches.

What Codex reads before loading it

Grows and runs an email newsletter on beehiiv, Substack, Kit (ConvertKit), Ghost or Buttondown - positioning and promise, signup forms and landing pages, lead magnets, welcome sequence, referral programs and recommendation networks, issue format and cadence, engagement-based list hygiene, sponsorships and paid tiers - and tracks net growth and active readers instead of vanity counts. Use when asked to grow subscribers, write a welcome sequence, set up a newsletter referral program, improve click rates, clean a list, or price sponsorships.

Use it when

  • A newsletter's growth has stalled or clicks are falling
  • New subscribers get no welcome or unsubscribe after the first issue
  • You want referral programs, recommendation swaps or paid boosts
  • The list needs an engagement-based cleanup or a sponsorship model

Use something else when

  • You are building product lifecycle emails triggered by app events: use email-marketing
  • You need a referral program for a SaaS product rather than a newsletter: use referral-programs

How to check the result

The signup flow works end to end through the welcome email, and the weekly report shows net growth and 90-day active readers by acquisition source.

The mistake it prevents

Chasing subscriber count with giveaways or cheap paid boosts, which adds readers who never click and drags inbox placement for everyone.

~/.agents/skills/newsletter-growth/SKILL.md

--- name: newsletter-growth description: Grows and runs an email newsletter on beehiiv, Substack, Kit (ConvertKit), Ghost or Buttondown - positioning and promise, signup forms and landing… license: MIT ---

A newsletter is run well when one sentence explains who it is for and what they get each issue, every subscriber chose to be there (and confirmed it), new readers get a welcome that sets expectations, and growth is measured as net active readers, not total sends.

Diagnose before growing

Ask for or export:

  • Total subscribers, new per week, unsubscribes and bounces per week (net growth).
  • Clicks per issue and unique clickers; 30/90-day active readers if the platform reports it.
  • Acquisition sources (platform source reports, UTM on signup pages, referral counts).
  • Current promise: the subtitle or tagline on the signup page.
SymptomLikely problemFirst fix
Signups fine, clicks fallingContent drifting from the promise, or cadence too highRe-read the last 10 issues against the promise; survey readers
High unsubscribes after issue 1-2Welcome missing, or signup promise oversoldWrite a welcome sequence; match signup copy to actual issues
Few signups from existing trafficWeak or hidden formsSignup above the fold on posts, end-of-post form, dedicated landing page
Growth only from one sourceFragile distributionAdd referral and recommendation channels
Spam folder placementPoor engagement, no authentication, bought or bot signupsDouble opt-in, sunset inactives, check SPF/DKIM/DMARC (email-marketing)

Positioning and the signup page

  • One-sentence promise: <What> for <who>, every <cadence>, so they can <outcome>. “A 5-minute Friday brief on Postgres performance for backend engineers.”
  • Signup page: promise as headline, 3 bullet examples of recent issues, social proof (subscriber count only if impressive and true; named readers with permission), sample issue link, one email field.
  • Embed forms where readers already are: end of every blog post, a slim inline form mid-article, the site header or footer, and a dedicated /newsletter page for links.
  • Find existing forms in the repo before adding new ones: rg -n "beehiiv|substack|kit.com|convertkit|ghost|buttondown|newsletter" src/ app/ components/.

Signup quality

  • Double opt-in by default; it keeps bot signups and typos out and protects deliverability.
  • Bot “list bombing” attacks submit thousands of real victims’ addresses: enable the platform’s bot protection, rate limit custom forms server-side, and keep double opt-in on.
  • Lead magnets (template, checklist, mini-course) raise signups but attract freeloaders; track the 30-day click rate of magnet signups separately and keep the magnet on-topic.
  • Never import scraped or purchased lists, and never auto-subscribe people who only bought a product or created an account without telling them clearly at signup.

Welcome sequence

Default: 2-4 emails over the first 7-10 days, then into regular issues.

EmailWhenContent
1Immediately after confirmThanks, what to expect (cadence, topics), best past issues, ask them to reply with one question (replies help inbox placement)
2Day 2-3The single most useful piece you have written; how to whitelist / move to Primary
3Day 5-7Who writes it and why; invite to the referral program or community
4 (optional)Day 9-10Paid tier or product offer, if any, with a clear free alternative

Growth channels (rank by fit, then work the top two)

ChannelMechanicsNotes
Content and SEO on the siteArticles that rank, each with an inline formSlow, compounding; pair with seo-content-writing
Referral programReward readers for confirmed referrals (beehiiv built-in, SparkLoop, or custom)Reward tiers that cost little: guide, sticker, community access; count only confirmed and active referrals
RecommendationsSubstack Recommendations, beehiiv Recommendations, Kit Creator NetworkSwap with newsletters of similar audience and size; check their open/click quality
Paid recommendationsbeehiiv Boosts, SparkLoop Partner NetworkPay per confirmed subscriber; measure 30-day engagement of those cohorts before scaling
Cross-promotions and guest issuesWrite for another newsletter in your nicheOne of the best quality sources
SocialPost the best insight from each issue natively with a signup linkSee social-media-content
Paid adsMeta lead ads, X, RedditOnly once you know subscriber value; expect lower engagement

Rule: judge every source by the 30-day engagement of the subscribers it brings, not by the count.

Issue format and cadence

  • Consistent day and time; consistency beats frequency.
  • A recognisable structure readers can scan: one main piece, then 3-5 curated links with a sentence on why each matters.
  • Subject line: specific to this issue’s best item, not “Issue #47”.
  • Each issue has one primary action (read, reply, share, click the main piece).
  • Plain readable HTML; most reading happens on phones. Test in Gmail and Apple Mail.
  • Include a referral or share prompt in every issue, near the end.

List hygiene

  • Opens are inflated by Apple Mail Privacy Protection; define “active” by clicks (or the platform’s engagement model) within 90 days.
  • Re-engagement: send inactive subscribers (no clicks in 90-180 days) a short “still want this?” email; remove those who do not respond within 2 weeks.
  • Removing or archiving subscribers is hard to undo: export the segment first, show the user the count, and get confirmation before deleting.

Monetisation

ModelWhenWatch
SponsorshipsEngaged audience in a niche advertisers wantPrice on CPM of engaged readers or flat per placement; label ads clearly as sponsored
Paid tierReaders rely on it for work or decisionsKeep a strong free tier; paid conversion of a few percent of free readers is typical
Own products / consultingNewsletter supports a businessDo not let promotion crowd out the promise

Disclose sponsorships and affiliate links clearly (FTC Endorsement Guides in the US; similar rules elsewhere).

Metrics to report weekly

| Week | New | Unsubs | Bounced/cleaned | Net | Active (90d clickers) | Click rate | Top source |

Net growth and active readers are the headline numbers. Investigate any issue with an unsubscribe rate well above the trailing average.

Gotchas

  • Growing via giveaways: huge spikes, near-zero engagement, deliverability damage.
  • Recommendation swaps with newsletters of a different audience; subscribers churn fast.
  • Paying for Boosts without tracking cohort engagement; cheap subscribers can be dead weight.
  • Changing sender name or address often; readers stop recognising it and filters reset.
  • Sending every issue to inactive subscribers forever; it drags inbox placement for everyone.

Sending and publishing

Sending an issue, launching a referral program or importing subscribers reaches real inboxes. Prepare drafts, segments and settings; send, schedule or import only after the user confirms the final version and the recipient segment.

Verification

  • Signup flow tested end to end: form, confirmation email, welcome email 1, correct tags/segments.
  • Each acquisition source has its own tag or UTM and shows 30-day engagement.
  • Weekly table shows net growth and active readers; trend reviewed monthly.

Output template

## Newsletter growth plan: <name>
**Promise:** ...
**Diagnosis:** metrics + symptom table rows that apply
**Signup surfaces:** list with changes
**Welcome sequence:** 3-4 emails (subject + body draft)
**Channels (next 90 days):** top two with targets and cohort-quality checks
**Hygiene policy:** active definition, re-engagement, removal schedule
**Awaiting approval:** sends, imports, deletions

What the zip contains

SKILL.md plus the interface file below. Nothing runs on install.

agents/openai.yamlgenerated from this page

Gives the Codex app a display name, a one-line description and a starter prompt for this skill.

interface:
  display_name: "Newsletter Growth"
  short_description: "Grow net active readers, not the send count"
  default_prompt: "$newsletter-growth Our newsletter is stuck at 3,000 subscribers. Diagnose it and give me a 90-day growth plan"

About this skill

Written and maintained by the Codex Skills editors to the same editorial standard as every skill here: a selective description, a real workflow, known pitfalls and a way to verify the work. First published , last updated . MIT licensed. Something wrong or out of date? Tell us.

esc