The nice surprise about Ghost is how much of your site's look you can change without ever opening a code editor. A lot of people arrive assuming a self-hosted, developer-friendly platform must mean wrestling with template files just to change a color. It doesn't. Ghost puts the genuinely useful knobs — theme, logo, accent color, heading and body fonts — right in the admin panel, behind clicks, not code.
So let's do two things in this guide. First, install a theme. Then customize it: branding, fonts, and colors, all from the admin. I'll also show you the one small copy-paste trick for the handful of tweaks the panel doesn't expose, and warn you about the single mistake that quietly wipes out all your customization. No Handlebars, no CSS knowledge assumed.
Part 1: Installing a theme
Every new Ghost site already ships with a clean, capable default theme (currently called Source). It's genuinely good, and plenty of successful publications never change it. But swapping themes is easy, so if you want a different look, here's how.
Where themes come from
There are three buckets. Official themes are the free, Ghost-built ones available right inside your admin — the safe, always-compatible starting point. Marketplace themes are premium designs from third-party developers, browsable at marketplace.ghost.org; you pay for these, and the upside is you also get support from the person who built it. And third-party themes are anything else you've downloaded or been given as a .zip file.
One important caveat before you go shopping: if you're on Ghost(Pro)'s entry-level Starter plan, you can only use official themes. Uploading your own .zip requires a higher plan or self-hosting. Worth knowing before you buy something you can't install.
Installing an official theme (the easy path)
This is as simple as it gets:
- Go to Settings → Design & branding.
- Click Change theme (bottom of the panel).
- Browse the official themes on offer and click one to preview it.
- Hit Install, then Activate.
That's it — your site is now wearing the new theme. The preview lets you see it before you commit, so click around.
Uploading a premium or third-party theme
If you bought a theme or downloaded one from elsewhere, you'll have a .zip file sitting in your Downloads folder. Don't unzip it — Ghost wants the zip as-is.
- Go to Settings → Design & branding → Change theme.
- Click Upload theme (top-right corner).
- Drag in your
.zipfile, or click to select it. - Once it uploads, click Activate.
A few things worth knowing here. Ghost only accepts .zip files, so don't try to upload a folder. If the theme came from outside the official marketplace, double-check it's compatible with your version of Ghost — an old theme built for an ancient Ghost version can throw errors or quietly break features. And if you ever want to go back, the Installed tab (under Change theme) keeps a history of every theme you've installed, lets you switch back to a previous one with a click, and even lets you download a copy of any installed theme. That history is your safety net, so you can experiment without fear.
Part 2: Customizing without touching code
Now the fun part. Almost all of your everyday branding lives in one place: Settings → Design & branding. Open it and you'll see a live preview of your site on the right that updates as you change things on the left — so you're never guessing.
Your brand basics
Under the Brand section you'll find the essentials that make a generic template feel like yours:
- Accent color — a single color picker that does a surprising amount of work (more on this below).
- Publication logo — your main logo, shown in the header by most themes. Use a transparent background, ideally at least 600×72px.
- Publication icon — this becomes your favicon, the little square in the browser tab. It must be square and at least 60px.
- Cover image — an optional large banner some themes display on the homepage. Aim for at least 1500px wide so it stays crisp on big screens.
- Site description — short, and used in various spots depending on the theme.
Set those five and you've already moved a long way from "default install."
Site-wide, homepage, and post options
Below Brand, you'll usually see additional groups — often labeled Site-wide, Homepage, and Post. Here's the thing to understand about these: they're theme-dependent. What appears depends entirely on what the theme's designer chose to expose. A good theme might let you pick a light/dark/auto color scheme, change where the logo sits, choose a feed layout (grid vs. list), or edit the default call-to-action text on signup prompts — all without code. A barebones theme might offer almost nothing here. So if your friend's Ghost site has options yours doesn't, it's not you, it's the theme. This is a real consideration when choosing one: a well-built theme gives you more no-code control.
(Navigation menus, by the way, live separately under Settings → Navigation — that's where you build your header and footer links.)
Part 3: Changing fonts and colors specifically
This is what most people actually come here to do, so let's get concrete.
Colors
For colors, your main lever is the accent color in Design & branding. Don't underestimate it — in most themes, that one color flows through buttons, links, headers, the subscribe prompts, and navigation highlights. Change it and your whole site's personality shifts. There's no need to hunt down each element individually; the theme wires the accent color into all the right places for you.
The one piece of advice that'll save you: pick a color that contrasts well with white text, because themes commonly drop white text onto your accent color (think a button or a header bar). A vibrant color with a slightly darker hue almost always works; a pale pastel will leave your button text unreadable. Test it against the live preview before you walk away.
Fonts
Ghost has built-in font pickers for type, no code required. In Design & branding you'll find two separate controls:
- Heading font — used for your page and post titles, plus headings inside your content.
- Body font — used for the actual body text you write, and most other text across the site.
Each is a dropdown with a curated list of typefaces, and you can mix them — a characterful serif for headings over a clean sans-serif for body text is a classic, readable combination. Like everything else here, changes show up instantly in the preview. (One caveat, same as before: a theme has to support these font settings for them to appear. The official themes do; some older third-party ones may not.)
When the panel isn't enough: one small snippet
Here's where I'll be honest with you. The built-in pickers cover the vast majority of cases, but occasionally you'll want something they don't offer — an exact brand hex color the picker doesn't expose on a particular element, or a specific Google Font that's not in the curated list. For that, there's Code Injection (under Settings → Code injection), and despite the scary name, using it is just pasting a snippet someone gives you, not programming.
For example, to use a custom Google Font and apply it to your body text, you'd paste something like this into the Site Header box:
<link href="https://fonts.googleapis.com/css2?family=Inter&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Inter', sans-serif;
}
</style>
Or to force a specific color on a particular element, a couple of lines of CSS in that same box will override the theme's default. I'm including this not to turn you into a developer, but because it's the honest answer to "what if I want a font/color the panel doesn't have" — and copy-pasting four lines is a fair distance from "learning to code." If you can change the font name between the quotes, you can do this. Anything more involved than that genuinely does start to be theme editing, and that's a different guide.
The mistake that wipes out everything: theme updates
This one catches people off guard, so pay attention because it's avoidable and infuriating if you don't know it.
Ghost ties all your design and customization settings to the theme's name. When a theme developer ships an update and you upload the new .zip, Ghost checks whether the name matches the one already installed. If it matches, you get an Overwrite prompt — confirm it, and your colors, fonts, and settings are all preserved. Perfect.
But if the new file has even a slightly different name — a different zip filename, or a changed name field buried inside the theme — Ghost decides it's a brand new theme, shows you an Activate prompt instead of Overwrite, and loads that theme's default settings. Your carefully chosen accent color and fonts? Reset to defaults.
The fix is simple once you know it: when updating a theme, keep the name identical to the version you've got installed, and when Ghost offers to Overwrite, take it. If you ever see "Activate" instead of "Overwrite" during what you thought was an update, stop — that's your warning sign that Ghost thinks this is a different theme and is about to wipe your settings. (Your old customizations aren't truly gone as long as you don't delete the previous theme from your Installed list, so you can recover, but it's far easier to avoid the trap than to climb out of it.)
While we're here: a theme's no-code settings are capped at 20 by design, and they're meant for simple visual choices — colors, fonts, a layout toggle — not for rebuilding the theme into something it isn't. If you find yourself wishing for a setting that would fundamentally change how the theme works, that's usually a sign you want a different theme, not more knobs.
The short version
Installing a theme is three clicks: Change theme, Install (or Upload), Activate. Customizing it is one panel — Design & branding — where your accent color, logo, and heading and body fonts do most of the heavy lifting, with a live preview so you never fly blind. The font and color pickers handle nearly everything; a tiny Code Injection snippet covers the rare exception. And whatever you do, keep your theme's name consistent when you update it, so the look you built doesn't vanish.
None of this requires knowing what a Handlebars file is. Pick a theme that exposes the settings you care about, spend twenty minutes in the design panel, and you'll have something that looks deliberate and yours — no code, no developer, no excuses.