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.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
Kit
- Creator-friendly tagging and visual automations make audience journeys approachable
- Audience, campaigns, automations, and reporting live in one publishing system
- Publishing, referral, and native monetization features are narrower than newsletter-first platforms
- Automation logic, analytics history, and deliverability settings are not very portable
Substack
- Publishing, email, recommendations, network discovery, and paid subscriptions work out of the box
- Audience, campaigns, automations, and reporting live in one publishing system
- Brand control, automation, data depth, and platform independence are limited
- Automation logic, analytics history, and deliverability settings are not very portable
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.
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
Know the shape of the move.
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.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Subscriber emails | partial | critical | Kit 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 segments | manual | high | Kit 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 automations | lost | critical | Visual 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 archive | partial | high | Substack'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 import | partial | high | Substack 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 subscriptions | manual | critical | Kit 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 embeds | manual | high | Kit forms keep collecting if you leave them up. | Replace every embed and landing page before you send from Substack. |
| Sending domain and reputation | manual | critical | A 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. |
| Analytics | lost | medium | Kit campaign history stays in Kit. | Export reports you still need for taxes or sponsors. |
| Referral programs | manual | medium | Kit or SparkLoop referrals are not Substack referrals. | Turn on Substack referrals only after you understand the new rules. |
| Double sending | manual | critical | If Kit still sends after the import, people get two newsletters. | Pause Kit broadcasts and sequences before the first Substack send. |
| URLs | partial | medium | Substack web posts use their own paths. Kit slugs need redirects if the archive was public. | Map public Kit URLs to Substack /p/ paths. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Substack subscriber email | automatic | Unique key. Trim the CSV. | |
| First name | Substack name or note | transform | Confirm the importer field exists before you rely on it in greetings. |
| Created at | No destination | unsupported | Substack subscribed date is usually the import date. |
| Subscriber state | No destination | unsupported | Use it to build the eligibility file. |
| Tags | Manual segments or notes | manual | No automatic tag import. |
| Sequence enrollment | No destination | unsupported | Sequences do not run on Substack. |
| RSS or post CSV | Substack post | transform | Count posts. RSS may stop at recent items. |
| Kit form | Substack subscribe form or embed | manual | Replace every public Kit form. |
| Kit Stripe subscription | Substack paid subscription | manual | No CSV-only path. |
Make the move recoverable.
Create the source-of-truth backup
Keep the list, consent evidence, and archive before Substack sends anything.
- Record active, unsubscribed, bounced, and paid counts in Kit.
- Export all selected subscribers and download the file before the link expires.
- Export or save sequences, forms, and campaign reports.
- Count public posts and keep a local copy of the ones RSS might miss.
- 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.
Eligibility CSV
Keep unsubscribed people off the active Substack list.
- Join status to the export.
- Import only approved active addresses.
- Keep unsubscribed rows as a suppression reference.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Archive import
Avoid a 20-post RSS hole.
- Paste the Kit or RSS URL.
- Count imported posts against Kit.
- Upload or paste the missing archive.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
Both platforms send
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.
RSS imports only recent posts
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.
Cold domain blast
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.
Do the work in this order.
- 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 checkpointExport?
Go when: Every live send path has an owner.
Stop when: Paid ownership is unclear.
- 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 checkpointImport?
Go when: Counts match Kit dashboards.
Stop when: The CSV is one page or missing status.
- 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 checkpointCut over?
Go when: Seed signup, archive count, and DNS pass.
Stop when: The archive is short or both systems send.
- 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 checkpointSend?
Go when: Substack is the only intake and send path.
Stop when: A Kit form still collects readers.
- 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 checkpointClose rollback?
Go when: Two sends look clean.
Stop when: Complaints or missing-reader counts blow the baseline.
Cut over with a way back.
Cutover
Make Substack the only place new readers join and the only place you send.
- Pause Kit broadcasts and sequences.
- Export the final active list.
- Import into Substack and reconcile counts.
- Replace Kit forms and public links.
- Send a seed issue before the full list.
Proof to capture: One intake path, one sender, reconciled counts, and a clean seed send.
Rollback
Return sending to Kit before the lists diverge.
- Stop Substack sends.
- Restore Kit forms and sending.
- Export Substack signups created after cutover.
- Add those addresses to Kit only if they are still opted in.
- Send a Kit seed before production.
Proof to capture: Kit receives test signups and sends one correct message. Substack production sending is off.
- Double send
- Archive short
- Complaint spike
- Paid access mismatch
- Kit form still live after the switch
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Active list | Compare approved Kit emails to Substack subscribers. | Every active address is present or signed as rejected. | Count sheet. | |
V-02Blocking | Inactive protection | Search unsubscribed seed addresses on Substack. | They cannot receive production mail. | Suppression check. | |
V-03Blocking | Post count | Compare Kit public posts to Substack posts. | No unexplained hole from a short RSS feed. | Post count. | |
V-04Blocking | Forms | Submit every public form. | The reader lands on Substack only. | Form matrix. | |
V-05Blocking | Single sender | Inspect Kit schedules and Substack drafts. | Only Substack can send after cutover. | Schedule screenshots. | |
V-06Blocking | Auth and first sends | Read headers on seed and cohort sends. | SPF and DKIM pass. Complaints stay inside the baseline. | Headers and cohort report. | |
V-07Blocking | Entitlement | Reconcile paid customers if you moved billing. | Access matches Stripe, or paid cutover stays blocked. | Paid sheet. | |
V-08Blocking | Kit export | Confirm the CSV and Kit account still exist. | You can send from Kit again. | Rollback note. |
Remove the scaffolding safely.
Safe after: Two Substack sends and 14 days without a rollback trigger.
- Archive Kit exports and campaign reports.
- Revoke unused Kit API keys.
- Remove leftover Kit embeds.
- Keep Kit read-only through the retention window.
- Delete working CSVs from laptops.
- Record the Substack publication URL and next review date.
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.
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.
- 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.
- 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.
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.
- 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.
- 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.
Verify against the primary material.
Platform behavior changes. Check these sources and the review dates above before executing a production migration.
- Kit: export subscribersAccessed 2026-10-29
- Substack: move from your current platformAccessed 2026-10-29
- Substack: export posts and subscriber listAccessed 2026-10-29