Ghost CMS Themes: A Complete Guide to Finding and Installing
Complete guide to Ghost CMS themes: built-in options like Casper and Source, marketplace themes ($0-$149), uploading custom themes, Handlebars basics, customization tips, and troubleshooting.
- Ghost includes five built-in themes (Casper, Source, Dawn, Journal, Liebling) that are free and actively maintained; use these when starting out.
- Ghost Marketplace offers free and premium themes from $0 to $149 USD; popular developers include Fueko, Aspire Themes, and Bright Themes.
- Upload custom themes as.zip files via Settings > Design > Themes > Upload Theme; validate file structure (package.json, default.hbs, post.hbs, page.hbs, assets folder).
- Ghost themes use Handlebars templating; customize themes safely with CSS overrides and custom code rather than modifying core theme files.
- Common errors include invalid.zip format, missing package.json, and Handlebars syntax mistakes; check Ghost logs and version compatibility when troubleshooting.
Ghost ships with built-in themes like Casper and Source, but the real flexibility comes from choosing a theme that matches your publication type. Whether you run a tech blog, newsletter, or news site, Ghost Marketplace offers free and premium options from $0 to $149 USD. This guide covers what themes Ghost includes by default, how to find and install marketplace themes, how to upload custom themes to self-hosted Ghost, and how to customize without breaking your site.
Understanding Ghost's Built-in Themes
Ghost includes five production-ready themes out of the box. Casper is the default, a clean, responsive design that works for blogs and magazines. Source strips away features for a minimal, text-focused layout. Dawn and Journal provide more specialized designs for different publication types. Liebling adds right-to-left language support, critical if you publish in Arabic, Hebrew, or Persian.
These themes are free, actively maintained, and sufficient for most publications. Use a built-in theme when you are starting out or when your design requirements are straightforward. Switch to a custom or marketplace theme when the built-in options do not match your brand or publication's specific needs.
Each built-in theme responds to mobile screens, supports dark mode, and integrates Ghost's membership and subscription features. You can customize colors and fonts in Ghost's Design settings without editing code. If you need more control, you can modify the theme files directly or upload a custom theme built on the Ghost codebase.
Finding and Installing Themes from Ghost Marketplace
Ghost's official marketplace is the primary source for both free and premium themes. Visit the marketplace from your Ghost admin panel: go to Settings, then Design, then Themes. You will see a Browse button that connects to the official marketplace.
Searching the marketplace filters themes by price (free or paid), publication type, and design category. Premium themes range from $49 to $149 USD per license. Popular theme developers include Fueko, Aspire Themes, and Bright Themes, each with their own design aesthetic and feature set.
To install a marketplace theme, follow these steps:
- Find the theme you want and note whether it is free or paid
- If paid, purchase the license and download the.zip file to your computer
- Return to your Ghost admin: Settings > Design > Themes > Upload Theme
- Select the.zip file and upload it
- Once uploaded, the theme appears in your theme list
- Click Activate to switch to the new theme immediately
- Preview the theme on your live site
If you want to test a theme before activating it, some premium theme developers offer live demos on their marketplace listings. Read reviews and feature lists carefully, as Ghost themes vary widely in what features they include.
Uploading a Custom Theme to Self-Hosted Ghost
If you are self-hosting Ghost, you can upload custom themes built specifically for Ghost. A Ghost theme is a folder containing Handlebars template files, CSS, JavaScript, and assets. The folder must follow Ghost's expected file structure to activate correctly.
A valid Ghost theme folder includes:
- package.json (metadata about the theme, including name and version)
- default.hbs (the base template all pages use)
- post.hbs (the template for individual blog posts)
- page.hbs (the template for standalone pages)
- index.hbs (the home page template)
- assets/ (folder for CSS, JavaScript, and images)
- partials/ (optional, for reusable template snippets)
Once your theme folder is ready, compress it as a.zip file. In Ghost admin, go to Settings > Design > Themes > Upload Theme. Select your.zip file and upload it. Ghost validates the file structure and extracts the contents.
After upload, your theme appears in the Installed Themes list but is not yet active. Click Activate to make it live. Your site immediately switches to the new theme. If something looks wrong, go back to Settings > Design > Themes and click Activate on your previous theme to revert.
For self-hosted Ghost, you can also upload themes directly via SSH by placing the theme folder in the /content/themes/ directory on your server, then activating it in the admin panel. This method is faster for developers who manage their server directly.
Handlebars and Ghost Template Basics
Ghost themes use Handlebars, a templating language that lets you insert dynamic content (posts, author data, site metadata) into HTML. If you are customizing a theme or building one, understanding Handlebars basics helps you read and modify template files without breaking them.
Handlebars uses double curly braces: {{variable}} inserts a value. For example, {{title}} outputs the post title. {{#if condition}}...{{/if}} runs code only if a condition is true. {{#each posts}}...{{/each}} loops through a list of posts and repeats a block of HTML for each one.
Ghost provides context variables automatically. Common ones include {{site.title}} (your site name), {{post.title}} (current post title), {{post.excerpt}} (post summary), {{author.name}} (post author), and {{post.url}} (post link). Ghost also provides helpers like {{#each}} for lists and {{#if}} for conditionals.
To learn more about Handlebars syntax and Ghost's full context variable reference, consult the official Ghost theme documentation at ghost.org/docs/themes. You do not need to memorize syntax; keep the docs open while editing templates and copy patterns from existing themes.
When customizing a theme, edit the.hbs files and restart Ghost for changes to take effect. If a file has a syntax error, Ghost may fail to load the theme and fall back to Casper. Always test theme changes in a development environment before deploying to production.
Customizing Themes Without Breaking Them
The safest way to customize a Ghost theme is to avoid editing the theme files directly. Instead, use Ghost's built-in customization options in Design settings: change the accent color, upload a logo, set a site icon, and choose from any built-in fonts and color schemes the theme supports.
For CSS changes beyond what Design settings offer, use Custom CSS in the Design panel. Paste CSS rules there to override the theme's default styles. This approach keeps your changes separate from the theme code, so you can update the theme without losing your customizations.
If you need to edit the theme's Handlebars templates (for example, to add a custom layout or remove a feature), create a copy of the theme with a new name, then edit the copy. This way, you keep the original theme intact. When the original theme gets an update, you can compare the changes and decide whether to adopt them in your custom version.
Before editing any template files, test your changes on a staging copy of your site or a local development environment. Load the page in a browser and verify that posts display correctly, links work, and styles render as intended. Common mistakes include forgetting to close Handlebars tags, breaking HTML structure, or removing helpers the theme relies on.
Version compatibility matters. If your custom theme was built for Ghost 5.0 but you upgrade to Ghost 5.40, the theme usually continues to work unless the upgrade includes breaking changes to Ghost's context or helpers. Check the Ghost changelog before upgrading a self-hosted instance, especially if you have heavily customized your theme.
Common Theme Upload and Activation Errors
When uploading a theme, Ghost validates the.zip file and its contents. Common errors include:
Invalid.zip format: The file is corrupted or was not compressed correctly. Re-create the.zip, making sure the theme folder is inside the archive, not the individual files at the root level.
Missing package.json: Ghost requires a package.json file in the theme root with a name field. If the file is missing or malformed, Ghost rejects the upload. Verify the JSON syntax is valid (no trailing commas, proper quotes).
Incorrect file structure: Template files (default.hbs, post.hbs, page.hbs) must be in the theme root, not nested in a subfolder. Ghost looks for them at the top level of the extracted folder.
Handlebars syntax errors: If a.hbs file has invalid Handlebars, Ghost may load the theme but pages render incorrectly or show errors in the browser console. Check the theme's.hbs files for unclosed tags, missing helpers, or typos in variable names.
Permission errors on self-hosted Ghost: If you upload via SSH, make sure the /content/themes/ folder is writable by the Ghost user. If permissions are too restrictive, Ghost cannot extract the.zip or read theme files. Use chmod 755 on the folder and 644 on theme files.
Version mismatch: A theme built for Ghost 4.x may not work on Ghost 5.x if the platform made breaking changes. Check the theme's package.json for a supported ghostVersion field. If you are upgrading Ghost, test the theme on the new version before pushing to production.
To troubleshoot, check the Ghost logs (on self-hosted instances) for detailed error messages. Visit Settings > Design > Themes and review any notifications that appear next to your theme. If a theme activation fails silently, Ghost usually reverts to the previous active theme automatically.
Best Practices for Theme Selection and Maintenance
Choose a theme based on three criteria: does it support the features you need (memberships, newsletters, comments), is it actively maintained by the developer, and does it perform well on mobile devices?
Performance matters. Load your theme on a mobile device or use a tool like Google PageSpeed Insights to check speed. Bloated themes with excessive JavaScript or large images slow down your site. Ghost's built-in themes are optimized for speed by default.
Check the theme's support and update history. Visit the developer's website or GitHub page to see when the theme was last updated. If a theme has not been touched in two years, the developer may have abandoned it, and you could be stuck on an older version of Ghost if you upgrade.
Read reviews and community feedback. Ghost's marketplace includes user ratings and comments. Search for the theme name on Reddit (r/ghost is active) or Ghost's forum to see what real users say about performance, bugs, and support.
Once you activate a theme, review its documentation. Most premium themes include setup guides, feature walkthroughs, and customization instructions. Spend time on configuration before launching so you understand how to use all features.
When Ghost releases major updates, test your theme on a staging environment first. Activate the new Ghost version there, load your site, and verify the theme still works correctly. Only then upgrade your production site.
If you need a feature your current theme does not offer, evaluate whether to add the feature via CSS and Handlebars customization, switch to a different theme, or hire a Ghost developer to build a custom solution. Switching themes is easier than extensive customization, so do not over-invest in modifying a theme that is fundamentally mismatched to your needs.
Frequently Asked Questions
Can I use Ghost themes from other platforms like WordPress?
No. Ghost themes use Handlebars, a template language specific to Ghost. WordPress themes use PHP. The file structures and context variables are entirely different. You must use a theme built for Ghost.
Are free Ghost marketplace themes as good as paid ones?
Yes and no. Free themes from Ghost (Casper, Source, Dawn, Journal, Liebling) are production-quality and actively maintained. Free marketplace themes vary in quality, updates, and support. Premium themes often include more advanced features, better support, and regular updates, but a well-designed free theme can outperform a poorly designed paid one. Evaluate the specific theme, not the price.
What if my theme breaks after a Ghost update?
Ghost typically maintains backward compatibility, so older themes usually continue to work. If a theme breaks, check the developer's GitHub or website for an updated version. You can also revert to your previous theme in Settings > Design > Themes while waiting for an update. Contact the theme developer if they have not updated in several Ghost releases.
Can I switch themes without losing posts or content?
Yes. Switching themes only changes the visual presentation. All posts, pages, members, and settings stay the same. Upload the new theme, activate it, and your content displays in the new design immediately. You can switch back anytime without data loss.
How do I use a custom domain with a Ghost theme?
Theme choice is separate from domain setup. Configure your custom domain in Ghost Settings > Email, and it applies regardless of which theme you use. A theme is purely the visual layer.
Where can I find free Ghost themes?
Ghost's marketplace includes free themes. GitHub also hosts open-source Ghost themes from community developers. Search "Ghost themes GitHub" to find repositories. Vet any GitHub theme carefully: check the last commit date, open issues, and documentation before using it.
Can I hire someone to build a custom Ghost theme?
Yes. Ghost has a community of freelance developers who build custom themes. Check Ghost's community forum or look for developers on platforms like Upwork. Provide your design mockups, feature requirements, and Ghost version. Costs vary widely depending on complexity.
The Bottom Line
Ghost's built-in themes cover most use cases, but the marketplace and custom themes give you flexibility. If you are self-hosting Ghost, investing in the right theme saves months of development time. Use marketplace themes for fast deployment, and reserve custom themes for unique brand or feature requirements.
Focus on performance, mobile responsiveness, and active maintenance when choosing. Avoid heavy customization of themes you do not own; use CSS and Handlebars helpers to extend functionality without fragility. When you need full control over design and functionality, explore Opsily's managed Ghost CMS hosting to free yourself from theme management and infrastructure overhead.