← All playbooks
Newsletter migration

Kit → Substack

Move a Kit list and archive to Substack. Export subscribers as CSV. Import posts with Substack's importer or Kit's RSS, which may only include recent posts. Rebuild sequences, tags, and paid billing. Warm the new sending domain before the first blast.

Typical timeline8–16 business days20–40 hours active work
Statusneeds review
Source profileKit subscriber export docs reviewed 2026-10-29
Destination profileSubstack platform import docs reviewed 2026-10-29
Documentation date
Review window
Evidence3 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Kit

Reasons to stay
  • Creator-friendly tagging and visual automations make audience journeys approachable
  • Audience, campaigns, automations, and reporting live in one publishing system
Reasons to leave
  • Publishing, referral, and native monetization features are narrower than newsletter-first platforms
  • Automation logic, analytics history, and deliverability settings are not very portable
New platform

Substack

What gets better
  • Publishing, email, recommendations, network discovery, and paid subscriptions work out of the box
  • Audience, campaigns, automations, and reporting live in one publishing system
What gets worse
  • Brand control, automation, data depth, and platform independence are limited
  • Automation logic, analytics history, and deliverability settings are not very portable
Best of the move

Substack: Publishing, email, recommendations, network discovery, and paid subscriptions work out of the box. This removes a major source-side concern: Publishing, referral, and native monetization features are narrower than newsletter-first platforms.

Worst of the move

What you lose: Creator-friendly tagging and visual automations make audience journeys approachable. What you inherit: Brand control, automation, data depth, and platform independence are limited.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome12 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 4, Manual rebuild: 6, Not transferred: 2.
Clean0
Partial4
Manual6
Lost2
Mapping route6 of 9 fields have a destination path

This timeline assumes

  • One publication with at most 100,000 subscribers and a Kit archive you still want on the web.
  • You control Kit, Substack, DNS, and every public signup form.
  • The list was collected with consent. Purchased names are out of scope.
  • Kit sequences, tags, and visual automations will be rebuilt or dropped. They do not execute on Substack.
  • Paid Kit billing is a separate Stripe workstream. Do not assume Substack adopts those subscriptions automatically.
02What transfers

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Subscriber emailspartialcriticalKit can export subscribers to CSV. Substack can import a list. Inactive, bounced, or unsubscribed rows must stay out of the active import.Export the full selected list, not one page. Split active from unsubscribed before you upload.
Tags, fields, and segmentsmanualhighKit tags and custom fields do not become Substack segments.Keep the Kit export as evidence. Recreate only the segments you will still use.
Sequences and automationslostcriticalVisual automations stay in Kit. Substack does not run Kit sequences.Inventory every live sequence. Rebuild a welcome post or drop it. Tell readers if a drip stops.
Posts and archivepartialhighSubstack's importer lists Medium, Ghost, WordPress, Mailchimp, Beehiiv, Tumblr, and Blogspot. For other tools it says use RSS. It also says some RSS feeds, including ConvertKit-style feeds, only include recent posts such as the latest 20.Try RSS, then count posts. If the archive is short, upload a CSV of posts or paste the missing ones. Do not trust the first import count.
Paid posts during importpartialhighSubstack says you can import posts as paid when payments are enabled on the publication.Enable payments first if the archive is gated. Check a paid post after import.
Paid Kit subscriptionsmanualcriticalKit Stripe billing does not become Substack billing by CSV.Reconcile Stripe customers. Use Substack's paid import path only if you have a documented subscription move. Otherwise ask readers to resubscribe.
Forms and embedsmanualhighKit forms keep collecting if you leave them up.Replace every embed and landing page before you send from Substack.
Sending domain and reputationmanualcriticalA first-person move from ConvertKit to Substack reported opens dropping from about 50 percent to 30 percent on the first week, and the writer blamed a cold domain.Authenticate the domain and send a seed, then a small cohort, before the full list.
AnalyticslostmediumKit campaign history stays in Kit.Export reports you still need for taxes or sponsors.
Referral programsmanualmediumKit or SparkLoop referrals are not Substack referrals.Turn on Substack referrals only after you understand the new rules.
Double sendingmanualcriticalIf Kit still sends after the import, people get two newsletters.Pause Kit broadcasts and sequences before the first Substack send.
URLspartialmediumSubstack web posts use their own paths. Kit slugs need redirects if the archive was public.Map public Kit URLs to Substack /p/ paths.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
EmailSubstack subscriber emailautomaticUnique key. Trim the CSV.
First nameSubstack name or notetransformConfirm the importer field exists before you rely on it in greetings.
Created atNo destinationunsupportedSubstack subscribed date is usually the import date.
Subscriber stateNo destinationunsupportedUse it to build the eligibility file.
TagsManual segments or notesmanualNo automatic tag import.
Sequence enrollmentNo destinationunsupportedSequences do not run on Substack.
RSS or post CSVSubstack posttransformCount posts. RSS may stop at recent items.
Kit formSubstack subscribe form or embedmanualReplace every public Kit form.
Kit Stripe subscriptionSubstack paid subscriptionmanualNo CSV-only path.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep the list, consent evidence, and archive before Substack sends anything.

  1. Record active, unsubscribed, bounced, and paid counts in Kit.
  2. Export all selected subscribers and download the file before the link expires.
  3. Export or save sequences, forms, and campaign reports.
  4. Count public posts and keep a local copy of the ones RSS might miss.
  5. Export Stripe subscription rows if you have paid readers.

Proof to capture: A dated manifest lists CSV hashes, post counts, sequence names, and paid totals.

Transformation · A spreadsheet

Eligibility CSV

Keep unsubscribed people off the active Substack list.

  1. Join status to the export.
  2. Import only approved active addresses.
  3. Keep unsubscribed rows as a suppression reference.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Substack Settings → Import/Export

Archive import

Avoid a 20-post RSS hole.

  1. Paste the Kit or RSS URL.
  2. Count imported posts against Kit.
  3. Upload or paste the missing archive.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Cutover

Both platforms send

criticalpossible likelihood

Kit still has a scheduled broadcast or a live sequence.

Consequence
Readers get two emails and unsubscribe.
Mitigation
Pause Kit sending before the first Substack send.

Stop if: A seed inbox gets mail from both.

Import

RSS imports only recent posts

highlikely likelihood

Substack shows about 20 posts and Kit has hundreds.

Consequence
The public archive looks empty.
Mitigation
Count posts and use CSV or paste for the rest.

Stop if: The imported count is short and you have no second path.

Deliverability

Cold domain blast

highpossible likelihood

The first Substack send goes to the whole list from a new domain.

Consequence
Opens drop and complaints rise.
Mitigation
Authenticate and warm up in cohorts.

Stop if: Authentication fails or complaints exceed your baseline.

06Precise timeline

Do the work in this order.

Estimate forEditorial estimate for one publication up to 100,000 subscribers without a confirmed paid-subscription import
Total elapsed8–16 business days
Active work20–40 hours
BufferAdd time for a large archive, paid Stripe work, or a domain that needs warm-up.
01
Day 1Inventory1 day
02
Day 2Export1 day
03
Days 3–7Import and rebuild3–5 days
04
Days 8–11Switch sending1–3 days
05
Days 11–16Warm-up and watch4–6 days
  1. Day 1 · inventory

    Inventory

    3–5 hours active1 day elapsedNone waiting
    • Record list, sequences, forms, domains, and paid plans.
    • Decide what happens to drips.

    Depends on: Kit and Substack admin access

    Stop / go checkpoint

    Export?

    Go when: Every live send path has an owner.

    Stop when: Paid ownership is unclear.

  2. Day 2 · backup

    Export

    2–4 hours active1 day elapsedKit export email waiting
    • Export subscribers.
    • Save posts and reports.
    • Hash the CSV.

    Depends on: Approved inventory

    Stop / go checkpoint

    Import?

    Go when: Counts match Kit dashboards.

    Stop when: The CSV is one page or missing status.

  3. Days 3–7 · pilot

    Import and rebuild

    8–16 hours active3–5 days elapsedDNS and test sends waiting
    • Import a seed list and the archive.
    • Replace forms.
    • Authenticate the domain.

    Depends on: Verified export

    Stop / go checkpoint

    Cut over?

    Go when: Seed signup, archive count, and DNS pass.

    Stop when: The archive is short or both systems send.

  4. Days 8–11 · cutover

    Switch sending

    3–6 hours active1–3 days elapsedImport processing waiting
    • Pause Kit.
    • Import the final list.
    • Replace remaining embeds.

    Depends on: Passed pilot

    Stop / go checkpoint

    Send?

    Go when: Substack is the only intake and send path.

    Stop when: A Kit form still collects readers.

  5. Days 11–16 · observe

    Warm-up and watch

    4–9 hours active4–6 days elapsedDelivery signals waiting
    • Send to seeds, then cohorts.
    • Watch complaints and unsubscribes.

    Depends on: Successful cutover

    Stop / go checkpoint

    Close rollback?

    Go when: Two sends look clean.

    Stop when: Complaints or missing-reader counts blow the baseline.

07The point of change

Cut over with a way back.

Go live

Cutover

Make Substack the only place new readers join and the only place you send.

Recommended window: A Tuesday or Wednesday, two days before a major issue.

  1. Pause Kit broadcasts and sequences.
  2. Export the final active list.
  3. Import into Substack and reconcile counts.
  4. Replace Kit forms and public links.
  5. Send a seed issue before the full list.

Proof to capture: One intake path, one sender, reconciled counts, and a clean seed send.

Return to safety

Rollback

Return sending to Kit before the lists diverge.

Deadline: Within 72 hours and before a second production blast.

  1. Stop Substack sends.
  2. Restore Kit forms and sending.
  3. Export Substack signups created after cutover.
  4. Add those addresses to Kit only if they are still opted in.
  5. Send a Kit seed before production.

Proof to capture: Kit receives test signups and sends one correct message. Substack production sending is off.

Rollback immediately when
  • Double send
  • Archive short
  • Complaint spike
  • Paid access mismatch
  • Kit form still live after the switch
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingActive listCompare approved Kit emails to Substack subscribers.Every active address is present or signed as rejected.Count sheet.
V-02BlockingInactive protectionSearch unsubscribed seed addresses on Substack.They cannot receive production mail.Suppression check.
V-03BlockingPost countCompare Kit public posts to Substack posts.No unexplained hole from a short RSS feed.Post count.
V-04BlockingFormsSubmit every public form.The reader lands on Substack only.Form matrix.
V-05BlockingSingle senderInspect Kit schedules and Substack drafts.Only Substack can send after cutover.Schedule screenshots.
V-06BlockingAuth and first sendsRead headers on seed and cohort sends.SPF and DKIM pass. Complaints stay inside the baseline.Headers and cohort report.
V-07BlockingEntitlementReconcile paid customers if you moved billing.Access matches Stripe, or paid cutover stays blocked.Paid sheet.
V-08BlockingKit exportConfirm the CSV and Kit account still exist.You can send from Kit again.Rollback note.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: Two Substack sends and 14 days without a rollback trigger.

  1. Archive Kit exports and campaign reports.
  2. Revoke unused Kit API keys.
  3. Remove leftover Kit embeds.
  4. Keep Kit read-only through the retention window.
  5. Delete working CSVs from laptops.
  6. Record the Substack publication URL and next review date.
10Experiences from the field

When the plan met reality.

First-hand accounts are preferred. Vendor case studies are labeled, and every note below is an editorial paraphrase—follow the link for the full context.

First-person accountChristina Piccoli · Write A Catalyst

The Switch from ConvertKit (Kit) to Substack2024

Christina Piccoli moved the weekday Intellectualists newsletter from Kit to Substack on 15 August 2024 to save the Kit fee and to use Notes and recommendations. She was not using Kit sequences or conditional content. A later follow-up says the Substack experiment did not grow the list either, and she later sent the newsletter from Kit again. The switch article is the first-person move. The later return is context, not a second source.

What they recommend
  • Move to Substack only if you are ready to drop Kit automations. Piccoli was not using them, and still found the destination a poor fit later.
  • Treat Substack discovery as a bet. Her archive did not take off after the import.
Worth noticing
  • A creator who only sends a simple digest can leave Kit without a sequence rewrite.
  • Saving the annual Kit fee is reversible. She later moved the same newsletter back.
First-person accountStew Fortier · Stew's Letter

Why I switched from ConvertKit to Substack2021

Stew Fortier moved Stew's Letter off a ConvertKit plus WordPress setup because he was tinkering instead of writing. Substack made individual issues shareable and put the archive in one searchable place. Open rates fell from about 50 percent to about 30 percent on the first week, which he blamed on sending from a new domain without warmup. He kept ConvertKit at Foster for heavier email features.

What they recommend
  • Warm the Substack sending domain before the first full-list send. Fortier watched opens drop on week one.
  • Keep Kit or ConvertKit for products that still need sequences if the publication itself is moving to Substack.
Worth noticing
  • The win was less tinkering and a public archive, not a richer automation suite.
  • A publication can leave ConvertKit while the same operator keeps it for another product.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Kit: export subscribersAccessed 2026-10-29
  2. Substack: move from your current platformAccessed 2026-10-29
  3. Substack: export posts and subscriber listAccessed 2026-10-29