PublisherRevenue Guide

The business behind
independent publishing.

New here? Choose a reading path ↗

Operating guide / Primary sources + editorial method

Migrate a newsletter with an inventory, pilot, and rollback

A controlled migration plan for content, entitlements, consent and suppression state, sending identity, and post archives.

Ghost’s original diagram connects a publishing screen to web, RSS, email and social distribution.
Ghost’s distribution diagram, including an example publishing screen, from its 4 August 2025 release. It describes the vendor’s product design, not measured reach. Ghost ↗
Open the visual model ↗
An email delivery, an open event and human attention are different measures, not interchangeable counts.
Original editorial diagram / Conceptual illustration; not benchmark data.

Inventory what the publication must preserve

A newsletter is more than an email column. Inventory subscribers, newsletter choices, consent evidence, unsubscribe and suppression state, paid subscriptions, tiers, complimentary access, tags, signup source, post archive, canonical URLs, media, redirects, templates, sending domains, automations, analytics definitions, and billing identifiers. Mark each item as exportable, reconstructable, or unavailable before choosing a cutover date.

Ghost's current export documentation, for example, describes separate exports for content and members, including email-subscription and complimentary-plan fields in the member file. Its import documentation requires email and accepts fields such as subscription preference, labels, tiers, and an existing Stripe customer identifier. These specific capabilities show why field-level inspection matters; they do not establish portability between every pair of platforms.

Source notes: Exporting content and data · Import members

Treat suppression and entitlement as controlled state

Do not import one flat list of addresses. Preserve subscribed, unsubscribed, bounced or disabled, complained, and unknown states separately. A missing suppression export is a blocker, not permission to mail the address. Preserve newsletter-level preferences rather than converting every subscriber into every topic. Keep evidence and dates needed to explain how a person reached the destination state.

Build a separate entitlement crosswalk for free access, paid tier, billing interval, renewal state, complimentary access, and expiration. Ghost's member-management documentation distinguishes newsletter status from membership and notes that an unsubscribe link changes email status without necessarily removing site access. The destination must reproduce that separation before any paid reader is moved.

Source notes: Member management · Import members

Pilot with internal records and a small consented cohort

First import internal test accounts representing every state: free subscribed, free unsubscribed, paid monthly, paid annual, complimentary, expired, failed payment, multiple-newsletter preferences, and suppressed. Test login, access, renewal linkage, downgrade, unsubscribe, reply handling, mobile rendering, links, redirects, and archive visibility. Reconcile record counts and exceptions rather than accepting a successful import banner as proof.

Then move a small, identifiable cohort whose permission and entitlement are clear. Send from the intended identity only after authentication and routing tests. Compare delivered, bounced, complained, clicked, unsubscribed, login, and paid-access results under the same definitions. The pilot should be large enough to reveal state problems but bounded enough to repair manually.

Migration acceptance matrix
ObjectSource countDestination checkRollback asset
Subscribed readersBy newsletterPreference preservedFrozen source export
Suppressed readersBy reasonNo send eligibilitySuppression file
Paid entitlementsBy tier and intervalAccess and renewal linkedEntitlement crosswalk
Post archiveBy status and URLBody, media, date, canonical pathStatic archive plus redirect map
AutomationsBy triggerDisabled until individually testedSource configuration record

Move the archive as a publishing system

Export posts, pages, status, authorship, tags, dates, canonical URLs, email-only content, paid-access rules, media references, and redirects. Render samples from short, long, image-heavy, table, and gated posts. Confirm that email-only posts are not accidentally made public and that a web archive does not lose access restrictions.

Keep an immutable source export and a URL manifest. Redirect only after the destination path is verified. Sample old inbound links, feeds, sitemaps, and shared newsletter URLs. A migration can deliver new email correctly while quietly destroying the archive that supports discovery and member value.

Source notes: Exporting content and data

Define rollback before cutover

Choose a freeze window and one system of record for each object. During cutover, prevent parallel signup or preference changes from splitting state. Keep the old sending system unable to launch routine campaigns but available for verified rollback. Record the last synchronized event and every manual exception.

Rollback triggers include missing suppressions, incorrect paid access, unexplained count gaps, broken authentication, or a sending-identity failure. Rolling back means restoring the named source-of-truth snapshot and pausing destination sends; it does not mean sending from both systems. Retire the old platform only after at least one full publishing and billing cycle reconciles.

  • Export and hash the source inventory before transformation.
  • Test every consent and entitlement state with representative accounts.
  • Keep post URLs, access rules, and media in the archive acceptance test.
  • Name the rollback owner, trigger, snapshot, and communication path.

Continue the work

Sources & limits

Ghost documentation supplies a concrete source/destination example, not a claim of universal portability. Consent, suppression, billing, and data-retention requirements need platform- and jurisdiction-specific review.

  1. Exporting content and data
    Primary source · Publication date not stated · Primary source checked · 19 September 2026
  2. Import members
    Primary source · Publication date not stated · Primary source checked · 19 September 2026
  3. Member management
    Primary source · Publication date not stated · Primary source checked · 19 September 2026

Source claims and editorial judgments remain separate. Send a correction with the passage and supporting evidence.

Keep going

Also on the desk.

Explore the library ↗

A clearer view of the business

The Revenue Letter.

One useful model. One question worth asking.
A considered note for independent publishers.