Ghost CMS Tutorial: Build Your First Site (2024)

Ready to start publishing? This Ghost CMS tutorial walks you through installation, setup, and getting your first post live.

Share
Ghost CMS dashboard showing the post editor interface with clean minimalist design

I remember the first time I tried to set up a blog. WordPress felt like I was piloting a spaceship when all I needed was a bicycle. That's when I found Ghost CMS. It strips away the clutter and gives you exactly what you need to publish. No page builder plugins to fight with. No update notifications every time you log in. Just writing.

I've now built half a dozen sites on Ghost. Some run on Ghost(Pro), the hosted version. Others live on cheap VPS servers I manage myself. Both approaches work. This guide covers both paths so you can decide what fits your situation.

What Ghost CMS Actually Is

Ghost launched in 2013 as a Kickstarter project. The founder, John O'Nolan, wanted a publishing platform that put writing first. Today it powers blogs for brands like Codecademy, Tinder, and DuckDuckGo. It's built on Node.js, which makes it fast, but you don't need to know what Node.js is to use it.

The platform handles memberships, newsletters, and SEO out of the box. You can gate content behind paid subscriptions without installing a single plugin. The editor is clean. The themes look modern by default. For journalists, bloggers, and newsletter writers, it removes the technical friction that kills momentum.

Ghost CMS Installation: Two Approaches

You have two options for getting Ghost running. Neither is objectively better. They serve different needs.

Option 1: Ghost(Pro) Managed Hosting

This is the paid route. Ghost's team hosts your site on their servers. You point your domain at it and start publishing.

Pricing starts at $9 per month for the Starter plan, which handles up to 500 members. The Creator plan at $25 per month removes member limits and adds custom integrations. If you're serious about building a paid newsletter or membership site, the Creator plan is where most people land.

The setup process takes about ten minutes. You create an account, choose a subdomain, pick a theme, and connect your custom domain if you have one. They handle SSL certificates, updates, backups, and server maintenance. You never touch a command line.

I recommend Ghost(Pro) for anyone who wants to focus purely on content. The extra cost buys back hours you'd otherwise spend on server administration.

Option 2: Self-Hosted Ghost

If you're comfortable with basic server management, you can install Ghost on your own VPS. DigitalOcean, Linode, and Vultr all offer one-click Ghost installations. You can also install it manually on any Ubuntu server.

The minimum requirements are modest: 1GB RAM, Ubuntu 20.04 or 22.04, and a registered domain pointed at your server. The official Ghost CLI tool handles most of the heavy lifting. One command installs Node.js, MySQL, Nginx, and SSL certificates.

Self-hosting costs $5-10 per month for the server, depending on your provider. You get full control over themes, custom integrations, and server configuration. You also handle your own backups, updates, and troubleshooting when things break.

I've self-hosted Ghost for years. It works well until it doesn't. When your server crashes at 11 PM before a scheduled post goes live, you become the person who fixes it. Factor that into your decision.

Step-by-Step: Setting Up Ghost CMS

Let me walk through the Ghost(Pro) setup since that's what most readers will choose. The self-hosted process varies by provider, but the concepts are similar.

Step 1: Create Your Account

Visit ghost.org and click "Start free trial." Enter your email and choose a site name. This name becomes your temporary subdomain (yoursitename.ghost.io). You can change this later when you connect a custom domain.

Step 2: Choose a Theme

Ghost ships with a default theme called Casper. It's clean, readable, and responsive. You can stick with it or browse the theme marketplace. Many themes are free. Premium themes typically cost $49-99.

Don't overthink this decision. You can change themes anytime without losing content. Pick something that looks decent and move on. Your writing matters more than your theme choice.

Step 3: Configure Basic Settings

Navigate to Settings in the left sidebar. Here you'll configure:

  • Site title and description
  • Publication logo and cover image
  • Timezone and language
  • Social media links

Fill these in now. The site title appears in browser tabs and social shares. The description shows up in search results. Upload a publication logo (square, at least 200x200 pixels) so your site looks legitimate when people share it.

Step 4: Connect Your Domain

In Settings, click "Domain" then "Set up custom domain." Ghost gives you DNS records to add at your domain registrar. This usually means creating a CNAME record pointing to your Ghost subdomain and an A record for the root domain.

DNS changes take anywhere from a few minutes to 48 hours to propagate. I usually see changes within an hour. Ghost automatically provisions an SSL certificate once your domain resolves correctly.

Step 5: Set Up Email

Ghost can send newsletters and transactional emails (password resets, member confirmations). For newsletters to work properly, you need to configure email settings.

Ghost(Pro) handles transactional emails automatically. For newsletters, you can use Ghost's built-in sending or connect Mailgun for higher volume. The free Mailgun tier handles 5,000 emails per month, which covers most small publications.

Creating Your First Post in Ghost CMS

Click "New post" in the top navigation. The editor looks sparse compared to WordPress. This is intentional.

You get a title field and a content area. Hit Enter to create new paragraphs. Type / to open the formatting menu. The slash commands cover headings, quotes, images, embeds, and HTML blocks.

The editor autosaves as you type. Ghost stores a full revision history, so you can roll back changes if needed. Hit Preview to see how your post looks on desktop and mobile. When ready, click Publish.

Scheduling works exactly as you'd expect. Set a future date and time, hit Schedule, and Ghost publishes automatically. I usually write posts in batches and schedule them throughout the week.

Understanding Ghost CMS Memberships

Here's where Ghost differentiates itself. Every Ghost site has built-in member management. Readers can subscribe to your newsletter with one click. You can gate posts so only paid subscribers see them.

The membership system connects to Stripe for payment processing. You set subscription tiers ($5/month, $10/month, whatever makes sense for your content). Ghost handles the billing, subscriber management, and email delivery.

You don't need to use memberships. You can run a simple blog with comments disabled and no subscription forms. But the option is there if you want to monetize later. I started my current site as a free blog, then added paid tiers six months in when I had enough regular readers.

SEO Features in Ghost CMS

Ghost handles technical SEO automatically. Pages load fast. The markup is clean. XML sitemaps generate themselves.

For on-page SEO, each post has a settings panel where you add meta titles, meta descriptions, and social sharing images. The default meta title pulls from your post title, but you should customize it for important posts.

The platform creates clean URLs by default (yourdomain.com/post-title). You can edit these if needed. It also generates structured data markup so your posts look good in Google search results.

One nice touch: Ghost automatically creates redirects when you change post URLs. If you update a slug from /old-title to /new-title, Ghost redirects the old URL automatically. This prevents broken links without you thinking about it.

Troubleshooting Common Ghost CMS Issues

Things occasionally go wrong. Here are the problems I see most often.

Emails landing in spam: This usually happens with self-hosted installations using default email settings. Set up Mailgun or another transactional email service. Verify your domain with SPF and DKIM records.

Slow loading: Check your image sizes. Ghost resizes images automatically, but uploading 10MB files still creates overhead. Compress images before uploading, or use Ghost's built-in Unsplash integration for free stock photos.

Theme customization confusion: Ghost uses Handlebars for templating. It's not hard to learn, but it's different from WordPress's PHP approach. For heavy customizations, hire a developer or stick to pre-built themes.

Importing from WordPress: Ghost has a WordPress importer, but it only brings posts and pages. Custom fields, shortcodes, and complex layouts don't transfer cleanly. Expect to do manual cleanup.

Final Thoughts on Getting Started with Ghost CMS

I've migrated blogs between WordPress, Ghost, Substack, and various static site generators. Ghost hits a sweet spot for independent publishers who want ownership without complexity.

The learning curve is gentle. You can have a site running in an afternoon. The membership features mean you can grow from a hobby blog into a revenue-generating publication without platform hopping.

Start with the Ghost(Pro) free trial. Build a few posts. See if the workflow clicks for you. If it does, you've found your platform. If not, you've lost nothing but a couple hours.