Ectobuilder
Guides

How to make Ghost look and feel like Substack

Moved from Substack to Ghost and miss the look? Build a Substack-style Ghost theme in Ectobuilder, keep your /p/ post addresses, and set up Ghost so readers feel at home.

Michal Wlosik

Michal Wlosik

· 6 min read

How to make Ghost look and feel like Substack

Substack has a look readers recognise straight away: the publication name centred at the top, an orange Subscribe button, a narrow serif reading column, and a post list with a subscribe box beside it. Moving to Ghost doesn't mean giving that up.

This guide shows how to build that design as a Ghost theme in Ectobuilder, without code, and how to set up Ghost so the rest of the experience feels familiar too, including Substack's /p/ post addresses.

First: move your content with Ghost's own importer

A theme changes how your site looks. It doesn't move posts or subscribers. Do that first with Ghost's built-in Substack importer. It brings your posts, free subscribers and paid subscribers across, and keeps paid subscriptions running on your Stripe account.

Follow How to migrate from Substack to Ghost, then come back here. You can also build the theme first and import later; the order doesn't matter to the theme.

What you'll build

Page in EctobuilderSections to use, top to bottom
HomeNewsletter masthead · Newsletter lead story · Newsletter featured row · Newsletter feed with sidebar · Newsletter footer
Blog (becomes your Archive)Newsletter masthead · Newsletter archive · Load more button · Newsletter footer
PostNewsletter masthead · Newsletter post header · Newsletter reading column · Newsletter subscribe box · Newsletter discussion · Newsletter more posts · Newsletter footer
Page (About and others)Newsletter masthead · Newsletter page title · Newsletter reading column · Newsletter footer
Optional extrasNewsletter welcome (a Substack-style landing screen), Newsletter plans (your Ghost tiers), Newsletter recommendations, Newsletter post list or post grid

All of these are in the section library. Search for substack or newsletter to see only them.

Step 1: Create a new theme

In your Ectobuilder dashboard, click New theme. The editor opens with a starter layout on every page: home, blog, post, page, tag, author and the error page.

Ectobuilder dashboard with the New theme card highlighted
(1) Start a new theme from scratch.

Step 2: Swap in the newsletter sections

Work through the pages in the table above. For each one:

  1. Pick the page from the menu at the top of the editor (Home, Blog, Post…).
  2. In the Sections panel, click a section you don't need and delete it with the bin icon.
  3. Click Add, type substack in the search box, and click the section you want. It's added to the page; drag it in the Sections panel to change the order.
Ectobuilder section library filtered by the word substack
(1) Search the library for "substack". (2) The newsletter sections: welcome, masthead, subscribe box, footer, featured row and more.

Start with the header and footer. They're shared across the whole site (the globe icon in the Sections panel marks them), so replacing them once on Home updates every page.

Ectobuilder editor showing the Home page built from newsletter sections
(1) The Home page sections, in order. (2) The Newsletter masthead: your logo, publication name, search, Subscribe and Sign in, with your Ghost menu underneath.

You don't need to type your posts into these sections. The text you see is a sample. On your site, the lead story, featured row and feed fill with your real Ghost posts, and the masthead shows your publication's name and icon from Ghost.

CTA Image

Moving your newsletter to Ghost? Ectobuilder lets you design your Ghost site visually, from a Substack-style layout to a full homepage, without touching theme code.

Try it free

Step 3: Set the Substack look in Style

Click Style in the left bar. These settings apply to every page.

  • Accent: pick the orange swatch for Substack's familiar button colour, or your own brand colour.
  • Greys: Stone gives the warm grey Substack uses for secondary text.
  • Page background: Light.
  • Typography: choose the Spectral + Inter pairing: a serif for headings and reading, a clean sans for labels and buttons.
Style panel with accent colours and the Spectral plus Inter font pairing highlighted
(1) Accent colour. (2) Font pairing: Spectral for headings, Inter for the interface.

Step 4: Build the post page

Switch to Post. This is the page your readers spend the most time on, so it matters most.

Ectobuilder Post page with newsletter post header and reading column
(1) The post sections in order. (2) Comments and Share buttons, as on Substack.
  • Newsletter post header shows the title, subtitle (your Ghost excerpt), author, date and reading time, with Comments and Share buttons.
  • Newsletter reading column is where Ghost puts your post. Headings, images, quotes, embeds and the paywall all render here.
  • Newsletter subscribe box is the "Thanks for reading! Subscribe for free" box. It only shows to visitors who aren't signed in.
  • Newsletter discussion holds Ghost's native comments. It only appears once comments are switched on in Ghost (see Step 7).
  • Newsletter more posts lists your other posts, skipping the one being read.

Step 5: Turn the Blog page into your Archive

Switch to Blog. Use Newsletter archive for Substack's simple list of titles with thumbnails, and add Load more button under it. Readers click it to load older posts in place, without a page of numbered links.

Ectobuilder Blog page built as a newsletter archive
(1) Newsletter archive and Load more button. (2) The Archive link in your menu points here.

Step 6: Keep Substack's /p/ post addresses

On Substack, every post lives at /p/post-name. Ghost uses /post-name/ by default. If your custom domain moves to Ghost, every link that people have shared over the years points at /p/. You have two ways to keep them working:

  • Keep Substack's addresses (recommended with this theme). Your posts stay at /p/post-name, the list of posts lives at /archive/ as on Substack, and nothing needs redirecting.
  • Switch to Ghost's addresses and redirect the old links, as shown in the migration guide. Use one or the other, not both.

To keep Substack's addresses:

  1. In the editor, click Settings (bottom left), then Ghost Settings.
  2. Under Routes, set Post addresses to /p/post-name (Substack). Links in your theme that point to the post list now go to /archive/.
  3. Click Download next to routes.yaml.
Ghost Settings in Ectobuilder with Post addresses set to the Substack style
(1) Post addresses: /p/post-name (Substack). (2) Download the routes file Ghost needs.
  1. In Ghost Admin, go to Settings → Labs, find Routes and click Upload routes file. Choose the file you downloaded.
Ghost Labs settings with Upload routes file highlighted
(1) Settings → Labs → Routes → Upload routes file.

Ghost's own preview links also start with /p/, but they use a long random ID instead of a post name, so the two don't clash. Ghost's sitemap and canonical tags pick up the new addresses automatically.

Step 7: Publish, then set up Ghost to match

Click Deploy. Ectobuilder builds the theme and switches it on at your Ghost site (connect your site once under Settings → Integrations). You can also download the theme ZIP and upload it in Ghost under Settings → Theme.

The theme covers how things look. These Ghost settings cover how they behave, and each one has a Substack equivalent:

Substack featureWhere to set it in Ghost
Subscribe pop-upSettings → Signup portal. Keep the free signup on so the Subscribe button takes just an email address.
Home, Archive, About menuSettings → Navigation. Add Archive pointing to /archive/ (or /blog/ if you kept Ghost's addresses).
CommentsSettings → Access → Who can comment on posts. The Discussion section appears once comments are on.
RecommendationsSettings → Recommendations. Add the publications you recommend; the Newsletter recommendations section lists them.
Paid plans and Founding memberSettings → Tiers. Ghost's tiers show up in the Newsletter plans section; name one "Founding member" if you had it.
Email designSettings → Newsletters → Edit. Pick a serif title font and your accent colour so emails match the site.
Welcome emailSettings → Welcome emails, for free and paid signups.
Notes and the Substack appNo direct equivalent. Ghost's Network (Settings → Network) lets people follow you from other apps and see your posts there.

What's different, and what isn't

Readers keep the parts they notice: the masthead, the reading column, the subscribe box, comments under posts, the archive and the links they saved. What changes is what you get as a writer: your own domain, your own design, no cut of your revenue, and a site you can take anywhere because Ghost is open source.

Be honest with your readers about the move. Comments, likes and Notes don't come across (the migration guide lists everything), so a short "we've moved" post on Substack and a first email from Ghost go a long way.

CTA Image

Build your Ghost theme without code. Pick a theme from the Ectobuilder gallery or start from scratch, change it by clicking, and publish it to your Ghost site. Start free and only pay if you’re happy with it.

Start free
Michal Wlosik

Written by

Michal Wlosik

Founder of Ectobuilder, the AI-powered visual theme editor for Ghost. Indie software builder in Wrocław and co-author of The AdTech Book. I write about Ghost themes, newsletters and building websites with AI.

Comments

Questions or thoughts? Share them below.

Keep reading