Category: Newsletters

  • Newsletters drain deliverability faster than they build trust

    Newsletters drain deliverability faster than they build trust

    Most newsletter operators believe that more touchpoints build more trust. Send twice a week instead of once. Add a Sunday bonus. Launch a daily tip series. The logic sounds reasonable: more contact equals more familiarity, and familiarity drives conversions.

    But that logic ignores the infrastructure layer underneath every newsletter: deliverability.

    The truth is that increasing send frequency without corresponding engagement gains doesn’t build trust—it destroys your sender reputation, tanks inbox placement, and turns your entire archive into spam fodder. You’re not building authority. You’re training inbox algorithms to ignore you.

    How send frequency damages sender reputation

    Email service providers track your sender reputation using a combination of signals: open rates, spam complaints, bounce rates, and engagement velocity. When you double your send frequency, you need to double your engaged audience to maintain the same reputation score.

    Here’s what actually happens: you send twice as often, but your open rate drops by 30–40% because subscriber attention is finite. Your most engaged readers might open both emails, but your median subscriber opens one or neither. Your overall engagement rate falls. ISPs interpret that drop as a signal that your content is less relevant, and they adjust inbox placement accordingly.

    The math is unforgiving. If you send once a week to 10,000 subscribers with a 40% open rate, that’s 4,000 engaged readers per send. Switch to twice a week with a 28% open rate (a realistic drop), and you’re down to 2,800 engaged readers per send—5,600 per week total. You’re sending twice as much for a 40% gain in absolute engagement, but your per-send reputation score is now 30% lower.

    Gmail and Outlook don’t care about your weekly totals. They care about per-campaign signals.

    The engagement cliff

    Once your sender reputation drops below a certain threshold, inbox placement collapses non-linearly. You don’t gradually slide from inbox to promotions tab. You fall off a cliff into spam folders, and recovery takes months of disciplined list hygiene and reduced sending.

    I’ve watched this happen to operators who went from weekly to daily sends without testing the transition. Within six weeks, their inbox placement rate dropped from 92% to under 60%. Their open rates fell further because fewer people saw the emails in the first place. The feedback loop is vicious: worse placement drives lower engagement, which drives worse placement.

    The operators who recovered did so by cutting send frequency in half, removing unengaged subscribers, and rebuilding slowly over 90 days. Some never fully recovered their original inbox rates.

    When frequency works—and when it doesn’t

    High send frequency works in exactly one scenario: when you have an audience that actively wants daily or near-daily content, and you can prove it with engagement data.

    If you’re running a news digest, a stock-tip service, or a highly segmented course drip, frequent sends can work—because your audience expects them and opens them. But even then, you need to monitor per-campaign open rates religiously and cut frequency the moment engagement drops.

    For the rest of us—commentary writers, niche educators, solo operators building authority in a specific domain—frequency is a tax on reputation. Your subscribers don’t need to hear from you three times a week. They need to hear from you when you have something worth saying, and they need to open the email when it arrives.

    One high-quality send per week with a 45% open rate will build more trust and deliver better long-term results than three mediocre sends per week with a 22% open rate. The total engaged-reader count might look similar in a spreadsheet, but the infrastructure consequences are not.

    What to do instead

    If you’re tempted to increase frequency, test it properly. Segment a portion of your list and send them the higher-cadence version for 30 days. Track per-campaign open rates, spam complaints, and unsubscribe rates. Compare those numbers to your control group.

    If engagement holds or improves, roll out the change slowly. If engagement drops even slightly, revert immediately. A 10% drop in per-send open rate today becomes a 40% drop in inbox placement six months from now.

    And if you’re already sending frequently and seeing declining engagement, the fix is simple but painful: send less. Cut your frequency in half, improve your content quality, and give your sender reputation time to recover. It’s not exciting, but it works.

    Want to dig into deliverability mechanics and list-health strategies? Reply to this email with your biggest inbox-placement question—we’ll cover it in a future issue.

    The operators who win the long game aren’t the ones who send the most. They’re the ones who still land in the inbox after two years.

  • How ConvertKit’s ‘Incentive Email’ Field Works and When to Use It

    How ConvertKit’s ‘Incentive Email’ Field Works and When to Use It

    ConvertKit includes a feature called the Incentive Email that most solo operators either overlook or misunderstand. It’s designed to deliver your lead magnet or opt-in bribe automatically—without building a separate automation sequence. But the way it fires, when it doesn’t fire, and how it interacts with existing automations can trip you up if you don’t know the rules.

    Here’s what the Incentive Email actually does, when to use it, and one non-obvious gotcha that can double-send your lead magnet if you’re not careful.

    What the Incentive Email Does

    When you create a form in ConvertKit, you’ll see a checkbox labeled “Send incentive email.” Toggle it on, and you can draft a single email that fires immediately after someone confirms their subscription (if you’re using double opt-in) or submits the form (if you’re using single opt-in).

    The email includes merge tags for the subscriber’s name and a custom download link. You write it once, and ConvertKit sends it to every new subscriber who joins via that specific form. No automation, no sequence, no visual canvas required.

    It’s a faster setup than building a full automation if you’re just delivering a PDF, checklist, or Notion template. You don’t need to tag subscribers, filter them into a sequence, or manage conditional logic. The form handles everything.

    When to Use It vs. When to Skip It

    The Incentive Email makes sense when your funnel is simple: one form, one lead magnet, one confirmation email. If you’re running a single opt-in offer and you don’t plan to segment subscribers or trigger follow-up emails based on behavior, it’s the cleanest option.

    Skip it if you’re doing any of the following:

    • Segmenting subscribers by interest, source, or product intent at the point of opt-in
    • Running A/B tests on lead-magnet delivery timing or copy
    • Tracking open or click behavior in your automation reporting (Incentive Emails don’t appear in sequence stats)
    • Delivering multiple resources in a welcome series

    The Incentive Email doesn’t play well with complex funnels. It’s a one-and-done trigger. If you need to branch logic, delay delivery, or send a second email 24 hours later, you’re better off using a visual automation with tags and conditions.

    The Double-Send Trap

    Here’s the non-obvious problem: if you enable the Incentive Email and have an automation that triggers on the same form submission, both will fire. ConvertKit doesn’t suppress one in favor of the other. Your subscriber gets two emails—one from the Incentive Email, one from the automation—within minutes of each other.

    This happens most often when you’re migrating from an old automation setup to the Incentive Email (or vice versa) and forget to disable the other. The form doesn’t warn you. The automation builder doesn’t flag the conflict. You only notice when a subscriber replies asking why they got the same PDF link twice.

    The fix: audit your forms and automations before enabling the Incentive Email. Search for any automation that uses the form as a trigger. If you find one, decide which delivery method you want to keep, then disable the other. Don’t run both at once unless you’re intentionally sending different content in each email.

    Editing and Timing Notes

    Once you enable the Incentive Email, you can edit the subject line, body copy, and sender name at any time. Changes apply to all future sends, but they won’t retroactively update emails already delivered. If you need to fix a broken link or update the lead magnet, you’ll need to manually email past subscribers or rely on an automation to catch them.

    Timing is immediate: ConvertKit sends the Incentive Email as soon as the subscriber confirms (double opt-in) or submits (single opt-in). There’s no built-in delay. If you want to wait 10 minutes or 24 hours, you need an automation instead.

    The Incentive Email also doesn’t respect sending windows or time-zone adjustments. If someone opts in at 2 a.m., they get the email at 2 a.m. This usually doesn’t matter for lead magnets—people expect instant delivery—but it’s worth noting if you’re used to sequence-based sends that respect subscriber time zones.

    When It’s Worth the Simplicity

    If you’re launching a single opt-in offer and you don’t plan to iterate on delivery timing or segmentation, the Incentive Email is the fastest path to a working funnel. You skip the automation builder entirely. The trade-off: less flexibility, no reporting granularity, and no conditional logic.

    For most solo operators, that trade-off is fine—until it isn’t. If you find yourself wanting to A/B test subject lines, track open rates in a dedicated sequence, or send a follow-up email two days later, you’ll outgrow the Incentive Email quickly. At that point, migrate to a visual automation and disable the Incentive Email on the form.

    Just make sure you turn off one before you turn on the other. Your subscribers don’t need two copies of the same PDF.

    One Two Three Send helps online operators make smarter tooling decisions. If you want sharp breakdowns like this in your inbox every week, subscribe below—or reply with a question you’d like answered next.

  • ConvertKit subscriber scoring: what it tracks and when to ignore it

    ConvertKit assigns every subscriber an engagement score between 0 and 100. The platform updates it automatically based on opens, clicks, and reply activity. The idea: surface your most engaged readers so you can treat them differently—early product access, exclusive content, or tighter segmentation.

    Most operators never look at it. Those who do often misread what the number actually represents.

    How the scoring algorithm works

    ConvertKit’s engagement score weighs three behaviors:

    • Email opens — tracked via pixel load; weighted heaviest in the first 48 hours after send
    • Link clicks — any tracked link in any broadcast or sequence; weighted more than opens
    • Replies — direct email replies to your sends; highest weight, but rare for most lists

    The score decays over time. A subscriber who opened every email in January but none in February will drop from 95 to the mid-60s by March. ConvertKit doesn’t publish the exact decay curve, but testing suggests it’s roughly 5–8 points per month of inactivity.

    Scores update within 24 hours of each tracked action. You can’t adjust the weighting, turn off specific signals, or reset a score manually.

    What the score misses

    Engagement scoring sounds useful until you realize what it ignores:

    Forwarded opens. If a subscriber forwards your email to a colleague who opens it, ConvertKit counts that as the original subscriber’s engagement—even though they didn’t read it themselves. High score, zero intent.

    RSS-to-email and read-later apps. Subscribers using Feedbin, Instapaper, or similar aggregators trigger opens without clicking through. Their scores stay artificially high even if they never visit your site.

    Purchase behavior. A subscriber who buys your course but never opens marketing emails will score low. ConvertKit doesn’t integrate Stripe or payment data into the engagement algorithm, so your best customers often rank in the bottom quartile.

    Time on site. If someone clicks your link, spends eleven minutes reading, and shares it on Twitter, ConvertKit logs one click. Same score as someone who clicked by accident and bounced in two seconds.

    When to use scoring—and when to build your own segments

    Engagement scoring works well for one thing: suppressing low-intent subscribers before a product launch. If you’re announcing a paid offering and want to avoid spam complaints, excluding everyone below a score of 40 cuts deadweight without manual list pruning.

    It’s also decent for identifying who to re-engage. Subscribers in the 20–50 range aren’t completely cold; a targeted win-back sequence often pulls them back up.

    Where it fails: prioritizing high-value actions. If you run a paid newsletter, a sponsorship-driven site, or sell products, engagement score won’t tell you who actually pays. You need custom segments:

    • Tag subscribers on purchase (via Zapier or ConvertKit’s Stripe integration)
    • Tag clicks on specific high-intent links—pricing pages, checkout, affiliate offers
    • Tag manual replies or survey completions

    Then filter by tags, not score. A subscriber tagged “Paid 2026” with a score of 30 is worth infinitely more than someone scored 95 who’s never clicked a buy button.

    The non-obvious tip: use scoring to find accidental unsubscribes

    Here’s the move most operators miss: filter for unsubscribed contacts with scores above 70.

    ConvertKit lets you view engagement scores even after someone unsubscribes. If a highly engaged reader opts out, there’s a decent chance it was accidental—they meant to unsubscribe from a different list, or clicked the wrong link on mobile.

    Export that segment monthly. Email them directly (outside ConvertKit, one-to-one) with a plain-text note: “Noticed you unsubscribed but were opening every email—just checking that was intentional. If not, here’s the re-subscribe link.”

    Conversion rate on that outreach runs around 15–20%. You’re not spamming; you’re catching UI mistakes before the reader forgets your site exists.

    Want sharper segmentation strategies that actually tie to revenue? Subscribe to One Two Three Send for weekly breakdowns of the tools, tactics, and pricing details that matter when you’re running a content business solo.

    Engagement scoring isn’t useless—it’s just not the complete picture ConvertKit’s UI implies. Treat it as one signal among many, and build your own segments around the actions that actually predict revenue.

  • MailerLite’s Auto-Resend Feature: How It Works and When to Use It

    MailerLite’s Auto-Resend Feature: How It Works and When to Use It

    MailerLite offers a feature most solo operators ignore: auto-resend to non-openers. You send a campaign, wait a set number of days, then MailerLite automatically resends the same email to everyone who didn’t open it the first time—with a new subject line you provide.

    It sounds like free engagement. Sometimes it is. Sometimes it’s a waste of deliverability budget. Here’s how to know the difference.

    How Auto-Resend Works

    When you schedule or send a campaign in MailerLite, you’ll see a checkbox: “Resend this campaign to non-openers.” Enable it, and you choose:

    • How many days to wait before resending (minimum 1 day, maximum 10)
    • A new subject line for the resend
    • Whether to resend to people who didn’t open or didn’t click (two separate filters)

    MailerLite tracks opens via a 1×1 pixel embedded in the email. If that pixel doesn’t load within your wait window, the subscriber gets the resend. The body content stays identical; only the subject line changes.

    The feature is available on all MailerLite plans, including the free tier (up to 1,000 subscribers and 12,000 emails per month). No extra charge per resend—it just counts against your monthly send quota.

    When Auto-Resend Actually Works

    This feature pays off in three scenarios:

    Time-sensitive content with a narrow window. If you’re promoting a webinar, sale, or limited offer, a resend 2–3 days before the deadline can recover 8–15% additional opens. The urgency justifies the repeat send, and the new subject line can emphasize scarcity (“Last chance” vs. your original angle).

    Evergreen content you’re confident in. If your original open rate was below 30% and you believe the content itself is strong—tutorial, case study, resource roundup—a resend with a clearer or more specific subject line often pulls another 5–10% open rate. You’re not pestering; you’re giving the email a second chance to surface in a cleaner inbox.

    Large lists with inconsistent engagement. If you have 5,000+ subscribers and your median open rate sits around 25–35%, auto-resend becomes a volume play. Even a modest 8% lift on the resend adds hundreds of opens you wouldn’t have captured otherwise, and the deliverability risk is minimal if your sender reputation is healthy.

    When to Skip It

    Auto-resend backfires when:

    Your original subject line wasn’t the problem. If your open rate is consistently above 40%, the issue isn’t visibility—it’s relevance or timing. Resending won’t fix that. You’ll just train subscribers to expect duplicates and ignore both.

    You send frequently. If you publish three or more emails per week, a resend starts to feel like spam. Subscribers who didn’t open the first time likely weren’t interested, and showing up again 48 hours later erodes trust faster than it recovers engagement.

    You’re resending promotional content repeatedly. If every sales email gets auto-resent, subscribers notice the pattern. It signals desperation, and it trains them to wait for the resend (or unsubscribe). Reserve auto-resend for your strongest content, not every broadcast.

    One Non-Obvious Tip

    Most operators test two subject lines by running A/B splits on the initial send, then using the winner for the resend. Flip that logic.

    Send your safer, clearer subject line first—the one that accurately describes what’s inside. Then use the resend to test a riskier, more curiosity-driven or emotional angle. If it flops, you’ve only burned the non-openers. If it works, you’ve discovered a subject-line style that breaks through inbox noise, and you can apply that learning to future campaigns.

    This approach also avoids the common mistake of making the resend subject line worse than the original. I’ve seen operators rewrite a specific, compelling subject into a vague one just to make it “different.” The resend open rate craters, and they blame the feature instead of the execution.

    MailerLite’s auto-resend costs you nothing but send volume. If you’re already paying for a plan and sitting below your monthly limit, the feature is pure upside—as long as you use it strategically, not reflexively. Test it on one high-value campaign, measure the lift, and decide from there.

    Want more breakdowns like this? Subscribe to One Two Three Send for weekly deep-dives on the tools and tactics that actually move the needle for solo operators.

  • ConvertKit vs. Beehiiv vs. Substack: which platform wins in 2026

    ConvertKit vs. Beehiiv vs. Substack: which platform wins in 2026

    If you’re launching a newsletter or considering a platform switch in 2026, you’re probably weighing ConvertKit, Beehiiv, and Substack. All three handle the basics—sending email, growing a list—but the pricing models, feature sets, and ideal operators diverge fast.

    Here’s the honest breakdown: what each does well, where each falls short, and who should pick which.

    Pricing structures and where they hurt

    ConvertKit bills on subscriber count. You’ll pay $29/month for up to 1,000 subscribers, $49/month for 3,000, and $79/month for 5,000. Every contact on your list counts, even if they never open. The free tier caps at 10,000 sends per month and strips out advanced automations.

    Beehiiv uses a hybrid model: the free tier supports up to 2,500 subscribers with full feature access, but you’ll hit send limits and branding. The Scale plan ($49/month) removes caps and adds custom domains, referral programs, and ad network access. If you monetise through ads or premium subscriptions, Beehiiv takes a 3% cut on top of Stripe fees until you upgrade to $99/month.

    Substack is free to send, forever. You pay nothing unless you charge readers. Then Substack takes 10% of gross subscription revenue, plus Stripe’s ~3%. No monthly fee, no subscriber caps. You’re trading platform fees for zero upfront cost.

    The pain point: ConvertKit penalises list growth. Beehiiv’s ad-network cut eats margin if you’re earning through sponsors. Substack’s 10% hurts most once you’re above $5K/month in revenue—that’s $500/month in platform fees alone.

    Feature depth and what’s actually useful

    ConvertKit leads on automation. You can build complex sequences, tag based on link clicks, segment by custom fields, and trigger emails from Zapier events. The visual automation builder is clean, and subscriber scoring helps you identify engaged readers. It’s built for creators who run multiple funnels and need granular control.

    Beehiiv focuses on growth tools. The referral program is native and easy to configure—readers unlock rewards by sharing your newsletter. The recommendation network cross-promotes you to other Beehiiv publishers. Polls, 3D analytics, and A/B testing on subject lines come standard. If you’re chasing rapid list growth and don’t need deep CRM features, Beehiiv’s toolset is optimised for that.

    Substack strips features to the bone. You get a text editor, a paywall toggle, and threading for discussions. No automation, no tagging, no custom fields. The mobile app drives discovery and reader engagement, but you can’t segment sends or personalise beyond first name. It’s a deliberate trade-off: simplicity over power.

    The decision point: pick ConvertKit if you’re running a business with lead magnets, courses, or multi-step onboarding. Pick Beehiiv if your primary goal is growing the list and monetising through ads or recommendations. Pick Substack if you want to write, charge, and ignore infrastructure.

    Who each platform is actually built for

    ConvertKit works best for course creators, coaches, and productised-service operators who treat email as the top of a conversion funnel. If you’re selling a $500 course or a $2K coaching package, the automation ROI justifies the monthly cost. You’ll use sequences to nurture cold leads and tags to segment buyers from browsers.

    Beehiiv fits media-style publishers and newsletter-first businesses aiming for five- or six-figure subscriber counts. The referral mechanics and ad network make sense if you’re optimising for reach and CPM-based revenue. If you’re planning to sell sponsorships or run your own ad placements, Beehiiv’s analytics and testimonial exports help close deals.

    Substack suits independent writers and commentary-focused creators who want readers to pay for the writing itself, not a product at the end of a funnel. The 10% fee is tolerable if you’re earning $2K–$10K/month and don’t want to manage infrastructure. Above $10K/month, the platform cut starts to sting, and migration becomes worth the effort.

    Migration friction and lock-in risks

    All three let you export your list as CSV. ConvertKit and Beehiiv support GDPR-compliant double opt-in imports; Substack requires you to email your list with a confirmation link before importing to another platform, which adds friction and drops some subscribers.

    ConvertKit’s automation and tagging data exports cleanly, but you’ll need to rebuild sequences on the new platform. Beehiiv’s referral program data doesn’t port anywhere—if you’ve built a referral flywheel, leaving means starting over. Substack’s discussion threads and community features don’t migrate; you lose the social layer.

    The lock-in hierarchy: Substack has the lowest technical lock-in but the highest social lock-in. Beehiiv locks you into growth mechanics. ConvertKit’s lock-in is workflow rebuilding, not data loss.

    If you’re just starting, pick based on where you want to be in 12 months. If you’re switching, model the cost of recreating what you’ve built versus the cost of staying. ConvertKit at $79/month is cheaper than Substack’s 10% once you’re earning $800/month. Beehiiv’s $99/month makes sense if it replaces a separate referral tool and an analytics dashboard.

    Want more tool breakdowns like this? Subscribe to One Two Three Send for weekly comparisons, no sales pitch.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • Substack’s paid subscriber import: how it works and what breaks

    Substack’s paid subscriber import: how it works and what breaks

    If you’re switching to Substack with an existing paid subscriber base, you’ll quickly discover that importing them isn’t a one-click operation. The platform treats free and paid subscribers very differently—and the tooling around paid imports is intentionally limited to protect both you and your readers from billing chaos.

    Here’s how the process actually works, what limitations you’ll hit, and the non-obvious gotcha that can cost you a month of revenue if you’re not careful.

    The two-path import: free vs. paid

    Free subscribers upload via CSV without friction. You export from your old platform, map the columns, and Substack ingests them in minutes. Paid subscribers require a different workflow because Substack needs to connect each person to an active billing relationship—either a Stripe subscription ID or a comped status you manually assign.

    If your previous platform used Stripe, Substack can import the subscription metadata directly—but only if both accounts share the same Stripe Connect relationship. That’s rare unless you were already using a Stripe-native platform like Ghost or a custom-built membership site. Most operators are coming from ConvertKit, Mailchimp, or Beehiiv, none of which expose raw Stripe subscription IDs in their CSV exports.

    That means you’ll use the comped subscriber route: you import paid subscribers as free accounts, then manually apply a “complimentary subscription” that grants them full access without charging them. Substack treats comped subs identically to paid ones for content access, but they don’t appear in your MRR calculations and won’t auto-renew unless you later convert them to a paid plan.

    The billing cutover problem

    Here’s the edge case that catches people: if you comp your existing paid subscribers and tell them to re-subscribe at their next renewal date, you’ll lose anyone whose renewal falls in the window between your import and your announcement. They’ll get charged by your old platform, then hit a paywall on Substack, and assume something broke.

    The safer approach is to cancel all subscriptions on your old platform before you import, refund any partial-month charges, and immediately comp everyone on Substack with an expiration date set to their original renewal. Then send a dedicated email explaining the transition and asking them to update their payment method before the comp expires. Substack will email them automatically seven days before expiration, but your own message converts better because it comes from you, not the platform.

    Expect 10–15% of comped subscribers to churn during this transition. That’s normal. The ones who don’t update their payment info within 30 days probably weren’t engaged enough to stay long-term anyway.

    The Stripe metadata you actually need

    If you do have access to Stripe subscription IDs—either because you’re migrating from Ghost, or because you were running Stripe directly—you’ll still need to provide Substack support with a CSV that maps each email address to its subscription ID and current billing cycle anchor date. You can’t upload this yourself; Substack’s backend team handles it manually to avoid mismatched billing states.

    Turnaround time is typically 3–5 business days, and they’ll only process it if your Stripe account is already connected to your Substack publication. If you’re switching Stripe accounts as part of the migration (common if you’re moving from a business entity to a personal one, or vice versa), you’ll need to use the comp method instead. Substack won’t connect a subscriber to a subscription ID that lives in a different Stripe account.

    When to skip the import entirely

    If you have fewer than 50 paid subscribers, the cleanest move is often to let them re-subscribe manually. Cancel their old subscriptions, refund the current billing period, and send a launch email with a discounted annual plan offer that offsets the hassle. You’ll lose some, but you’ll also avoid two weeks of support emails from people whose billing states didn’t migrate cleanly.

    For lists above 200 paid subscribers, the comp-and-convert method is worth the effort. Between 50 and 200, it depends on how hands-on you want to be and whether you’re also changing pricing or plan structure as part of the move.

    One last note: if you’re moving to Substack because you want their payment infrastructure to handle sales tax, VAT, and global compliance, make sure you’re not grandfathering in subscribers at old prices that don’t include tax. Substack’s tax automation only works on new subscriptions created after you enable it. Comped subscribers who convert will be charged tax, but anyone you migrate via Stripe ID handoff will keep their original tax treatment unless you manually update each subscription in Stripe. That’s a billing-support nightmare six months later when your accountant asks why half your EU subscribers aren’t remitting VAT.

    If you’re planning a platform migration and want step-by-step breakdowns like this every week, subscribe to One Two Three Send. We cover the tooling decisions that actually matter when you’re running a one-person content business.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • ConvertKit vs. MailerLite: which ESP fits a sub-5,000 list

    If you’re running a content business with fewer than 5,000 subscribers, you’re in the sweet spot where platform choice actually matters. Pick wrong and you’ll either overpay for features you don’t use or outgrow your tool in six months.

    ConvertKit and MailerLite both target solo operators and small teams, but they solve different problems. Here’s what each does well, where each falls short, and who should pick which.

    Pricing: where the gap widens

    MailerLite’s free tier covers up to 1,000 subscribers and includes automation, landing pages, and a website builder. You’ll pay $9/month for 1,000–2,500 subscribers, $18/month for 2,500–5,000.

    ConvertKit starts at $25/month for up to 1,000 subscribers. At 2,500 subscribers you’re paying $41/month; at 5,000 it’s $66/month. There’s a free tier capped at 300 subscribers, but it strips out automation—the main reason to use ConvertKit in the first place.

    If budget is tight and you’re just starting, MailerLite saves you $300–$600/year at the same list size. ConvertKit’s pricing assumes you’re monetising early or plan to.

    Automation: depth vs. simplicity

    ConvertKit’s visual automation builder lets you branch, tag, delay, and score subscribers based on link clicks, form submissions, product purchases, and custom events. You can build sequences that feel like decision trees. It’s overkill if you’re just sending a weekly digest, but essential if you’re running a paid community, a course funnel, or segmented content tracks.

    MailerLite’s automation is lighter. You get triggers, delays, conditions, and basic branching. It handles welcome sequences, re-engagement flows, and simple product funnels without friction. But once you need multi-step logic—like “if they clicked this link but didn’t buy, tag them and send a different sequence”—you’ll hit the ceiling fast.

    Non-obvious tip: MailerLite’s workflow editor saves every change instantly. ConvertKit requires you to manually activate automations after editing. That’s a feature, not a bug—it prevents you from accidentally breaking a live sequence. But it also means you need to remember to turn things back on.

    Forms, landing pages, and creator-focused extras

    Both platforms include landing pages and signup forms. MailerLite’s templates look cleaner out of the box and load faster. ConvertKit’s forms integrate tightly with its tagging system, so you can pre-segment subscribers at signup without Zapier.

    ConvertKit also includes a commerce layer—you can sell digital products, subscriptions, and tip jars directly through the platform. It takes a 3.5% + $0.30 transaction fee on top of Stripe’s cut, but it’s built in. MailerLite doesn’t offer native e-commerce; you’ll need to connect Gumroad, Stripe Checkout, or a course platform.

    If you’re monetising through paid newsletters or digital products, ConvertKit’s commerce tools save you from duct-taping three services together. If you’re running ads, affiliates, or sponsorships, MailerLite’s lower base cost matters more.

    Deliverability and reporting

    Both platforms maintain strong sender reputations and handle SPF/DKIM setup for you. Deliverability differences at this scale come down to list hygiene, not platform choice.

    ConvertKit’s reporting is subscriber-centric: you can see every action a single subscriber took across broadcasts, automations, and landing pages. MailerLite’s reporting is campaign-centric: opens, clicks, unsubscribes per send. ConvertKit’s view is better for understanding individual journeys; MailerLite’s is faster for diagnosing a bad campaign.

    Who should pick which

    Choose MailerLite if you’re pre-revenue, sending one or two emails per week, and need to keep costs under $20/month. It’s also the better pick if you value design flexibility and don’t need multi-step conditional logic.

    Choose ConvertKit if you’re already monetising, running segmented content tracks, or plan to sell directly through email. The automation depth and commerce tools justify the higher price once you’re past the “is this working?” phase.

    For most operators under 5,000 subscribers, the decision comes down to one question: are you optimising for cost or for automation depth? MailerLite wins the first; ConvertKit wins the second. Neither is a bad choice—just different bets on where your business is headed.

    Want more tool breakdowns like this? Subscribe to One Two Three Send and get honest comparisons, operator-focused tutorials, and no-fluff guidance every week.

  • Postmark’s message streams: separate logs for transactional and broadcast

    Postmark’s message streams: separate logs for transactional and broadcast

    Postmark ships with a feature most operators discover only after they’ve already mixed password resets with product announcements: message streams. They let you route different types of email through separate pipelines, each with its own delivery tracking, suppression list, and sender reputation.

    If you’re running both transactional email—receipts, login links, account notifications—and broadcast messages like product updates or weekly digests, message streams keep the two from contaminating each other’s deliverability.

    What message streams actually do

    Every Postmark account starts with two default streams: Transactional and Broadcasts. When you send an email via API or SMTP, you specify which stream it belongs to. Postmark then tracks opens, clicks, bounces, and spam complaints separately for each stream.

    This separation matters because transactional email—password resets, order confirmations—typically sees open rates above 60% and near-zero spam complaints. Marketing broadcasts might hit 20% opens and attract a handful of complaints, even when people opted in. If you mix them in one stream, a spike in broadcast complaints can drag down your overall sender reputation, which affects all your email, including the critical transactional stuff.

    Each stream also maintains its own suppression list. If someone marks your newsletter as spam, Postmark adds their address to the Broadcasts suppression list—but they’ll still receive password resets and receipts from the Transactional stream. You don’t lose the ability to send account-critical email just because someone unsubscribed from marketing.

    When to create custom streams

    Beyond the two defaults, you can create additional streams for specific use cases. Here are three that make sense for solo operators and small teams:

    Onboarding sequences. If you run a multi-email onboarding series—welcome, getting-started tips, feature walkthroughs—route it through a dedicated stream. Onboarding email sits between transactional and broadcast: it’s expected, but not urgent. Separating it lets you monitor completion rates and deliverability without muddying your core transactional metrics.

    Digest emails. Weekly or monthly roundups often see lower engagement than one-off broadcasts. A separate stream lets you track digest-specific open rates and adjust frequency without affecting your main broadcast reputation.

    Partner or affiliate sends. If you occasionally send email on behalf of a partner—joint webinars, co-marketing—isolate it. Partner sends introduce variables you don’t control: list quality, subject lines, content. A separate stream quarantines the risk.

    Postmark allows up to ten streams per account. You don’t pay extra for them, but each stream requires its own API token and SMTP credentials, so there’s a small setup cost.

    How to route messages to the right stream

    If you’re using Postmark’s API, you specify the stream with a MessageStream parameter in your JSON payload. For SMTP, you set the stream by choosing the correct SMTP credentials during configuration—each stream generates its own username and password.

    Most developers default to the Transactional stream for everything, then wonder why their welcome emails show up in spam. The fix: audit every email type your app sends, classify it as transactional or broadcast, and route accordingly. Receipts, password resets, and two-factor codes go to Transactional. Product updates, newsletters, and nurture sequences go to Broadcasts or a custom stream.

    The non-obvious tip: use streams to test reputation recovery

    If your broadcast deliverability tanks—inbox placement drops, spam complaints spike—create a new message stream, warm it with a small segment of your most engaged subscribers, and migrate your broadcast sends over two weeks. The new stream starts with a clean reputation. You can’t erase your domain’s history, but you can isolate future sends from past damage.

    This works because Postmark treats each stream as a separate sender profile. ISPs still see your domain and IP, but the engagement patterns and complaint rates reset. It’s not a magic fix—if your content or list quality is broken, the new stream will degrade just as fast—but it buys you time to tighten your targeting and content.

    One warning: don’t create streams just to dodge suppression lists. If someone complained about your email, they don’t want any of your marketing, regardless of which stream it comes from. Routing around suppressions will get your account suspended.

    If you’re already using Postmark and haven’t set up separate streams for transactional and broadcast email, do it this week. The deliverability buffer alone justifies the ten minutes of setup. And if you’re evaluating Postmark against other ESPs, message streams are one of the features that separate it from basic SMTP relays.

    Got a question about email infrastructure or a tool you’d like us to cover? Reply to this email—we read every response and use them to shape future articles.

  • ConvertKit’s subscriber tagging limit and how to work around it

    ConvertKit doesn’t advertise it loudly, but there’s a hard limit: 10,000 tags per subscriber. For most operators, that sounds absurdly high. But if you’ve been running automations for a year or more—especially if you tag based on link clicks, form submissions, or purchase behavior—you can hit it faster than you think.

    When you do, ConvertKit silently stops applying new tags to that subscriber. No error message in the UI. No email alert. The automation runs, the subscriber moves through the sequence, but the tag never lands. You only notice when a segment comes up empty or a conditional split sends someone down the wrong path.

    How you hit the limit without realizing it

    The most common culprit: date-stamped tags. If you’re tagging subscribers with things like clicked_link_2024-05-15 or opened_email_january_2026, you’re creating a new tag every single day or week. Multiply that across a dozen automations, and a subscriber who’s been on your list for 18 months can easily accumulate 3,000+ tags.

    Link-click tracking is another one. If you tag every link click with a unique identifier—say, clicked_affiliate_link_productA, clicked_affiliate_link_productB, and so on—you’re burning through your tag budget fast, especially if you publish daily or run frequent promotions.

    Purchase tags are safer, but only if you’re disciplined. Tagging purchased_course_A is fine. Tagging purchased_course_A_via_email_campaign_spring2026 is not. The more specific you get, the faster you hit the ceiling.

    How to audit your current tag usage

    ConvertKit doesn’t surface per-subscriber tag counts in the dashboard, so you’ll need to export your subscriber list and count manually. Go to Subscribers → Export, download the CSV, and open it in Google Sheets or Excel. Each subscriber row will have a Tags column with a comma-separated list.

    Use a formula like =LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1 to count how many tags each subscriber has. Sort descending. If anyone’s above 8,000, you’re close to the edge.

    While you’re in there, scan for patterns. Look for date-stamped tags, redundant event tags, or anything that increments indefinitely. Those are your cleanup targets.

    Two strategies to stay under the limit

    Strategy one: replace incremental tags with custom fields. Instead of tagging last_clicked_2026-05-24, create a custom field called last_click_date and update it with each action. Custom fields don’t count toward the tag limit, and you can still segment or filter by date. The tradeoff: you lose the historical record. If you need to know every date someone clicked, this won’t work. But if you only care about the most recent action, it’s cleaner.

    Strategy two: archive old tags in bulk. ConvertKit lets you remove tags from subscribers, but there’s no native “delete all tags older than X date” feature. You’ll need to export, filter by tag name pattern (e.g., anything containing 2024), then use the bulk actions menu to remove those tags from the affected subscribers. This is manual, but if you do it quarterly, it keeps your tag count manageable.

    One more option: if you’re tagging for analytics purposes—tracking which emails drove the most clicks, for example—consider moving that data out of ConvertKit entirely. Tools like Plausible or Fathom can track link clicks via UTM parameters, and you won’t burn tags on behavior you’re only measuring, not acting on.

    When the limit actually matters

    For most solo operators, 10,000 tags per subscriber is still overkill. If you’re running a simple welcome sequence, a few product-based segments, and occasional broadcasts, you’ll never get close. The limit only becomes a problem if you’re running complex, multi-branch automations that tag aggressively at every decision point.

    But if you are in that category—if you’re running a membership site, a course platform, or a content business with dozens of lead magnets and automations—this is worth auditing now, before a subscriber silently stops receiving the tags that trigger your most important sequences.

    Want more feature breakdowns like this? Subscribe to One Two Three Send for weekly deep dives on the tools that run your online business—no fluff, just the mechanics that matter.

  • ConvertKit’s subscriber score: how it ranks engagement and why it’s wrong

    ConvertKit quietly calculates an engagement score for every person on your list. It’s a single number—0 to 100—that’s supposed to tell you who cares and who doesn’t. The platform uses it to sort subscribers in reports, flag cold contacts, and guide re-engagement decisions.

    Most operators never look at it. The ones who do often misread what it measures—and make pruning or segmentation calls based on incomplete signals.

    Here’s what the score actually tracks, when it’s useful, and where it leads you astray.

    What drives the score

    ConvertKit’s engagement score weighs three behaviors:

    • Opens: How often a subscriber opens your emails in the past 90 days.
    • Clicks: How often they click links inside those emails.
    • Recency: How recently they’ve done either.

    Opens carry the most weight. A subscriber who opens every email but never clicks will score higher than someone who clicks occasionally but skips half your sends. Recency acts as a multiplier—someone who opened yesterday gets a bump over someone who opened 80 days ago, even if their long-term open rate is identical.

    The score doesn’t consider:

    • Whether they bought something
    • Whether they replied to an email
    • Whether they visited your site via a link (unless they also clicked in the email)
    • How long they’ve been subscribed

    It’s a deliverability proxy, not a business metric. ConvertKit designed it to help you identify contacts who hurt your sender reputation—not contacts who drive revenue.

    When the score matters

    The score is useful in two narrow scenarios.

    Pre-pruning cold contacts. If you’re preparing to scrub your list, sort by engagement score and review everyone below 20. These are the people who haven’t opened or clicked in months. Removing them improves your open rate and keeps inbox providers from flagging your domain. Just don’t auto-delete based on score alone—check signup date and source first. A subscriber who joined two weeks ago and hasn’t engaged yet isn’t cold; they’re new.

    Segmenting for re-engagement campaigns. Run a win-back sequence to subscribers scoring 10–30. They’re not dead, but they’re fading. A subject line refresh, a content pivot, or a simple “still interested?” email can pull them back. Anyone below 10 is harder to recover and may not be worth the send cost.

    Where the score misleads

    The engagement score breaks down when you treat it as a proxy for value.

    High scorers aren’t always your best subscribers. Someone who opens every email but never buys, never replies, and never shares your work scores higher than someone who buys twice a year but only opens when they need something. ConvertKit can’t see purchase behavior unless you tag it manually—and even then, it doesn’t factor into the score.

    Low scorers aren’t always dead weight. Plenty of valuable subscribers skim subject lines in their inbox and only open when a topic hits. They might visit your site directly, bookmark your archive, or consume your content via RSS. Their engagement score tanks, but they’re active in ways the platform can’t measure.

    The 90-day window hides seasonality. If you run a tax-prep newsletter, subscribers who engage in February and March will score poorly in June—even though they’re likely to come back next year. A hard cutoff at 90 days doesn’t account for cyclical engagement.

    What to use instead

    If you want to identify your most valuable subscribers, layer in context the score doesn’t capture:

    • Tag purchases and replies. Create segments for buyers and people who’ve replied to a broadcast. These are your highest-intent contacts, regardless of open rate.
    • Track link clicks by type. ConvertKit lets you filter by clicked link. Someone who clicks affiliate links or product pages is more valuable than someone who clicks every “read more” button.
    • Monitor unsubscribe timing. If low-engagement subscribers stick around for months without unsubscribing, they’re choosing to stay. That’s signal, even if they’re not opening.

    The engagement score is a starting point, not a verdict. Use it to spot patterns, but don’t let it override what you know about how your audience actually behaves.

    Want more tool breakdowns like this? Subscribe to One Two Three Send for weekly deep-dives on the features that shape how you run your online business—no fluff, just the mechanics that matter.