How to Blog with Ghost (the Comprehensive Guide)

Aliko Sunawang

Aliko Sunawang

A blogger and photography hobbyist.

WordPress is dominating the CMS market with over 40 percent market share. People love using WordPress as it is very flexible when it comes to customization. But when we talk specifically about CMS for blogging, you might be tempted to make a switch to Ghost after giving it a try for just a moment.

Ghost is an amazingly simple blogging tool. It has fewer features than WordPress, but it what exactly makes Ghost a great blogging tool. When it comes to blogging, you sometimes don’t need too many features. You just need a simple editor to write the blog posts and fewer customization options. You can get it from Ghost.

Started interested to try blogging with Ghost?

This article will walk you through step by step to blog with Ghost. Let’s start by getting to know Ghost first.

What is Ghost?

Ghost is built with simplicity in mind. Referring to its official website, Ghost was founded in 2013 with the main mission to create an open-source tool for independent journalists and writers.

Unlike WordPress, Ghost has the focus solely on professional publishing. Ghost doesn’t support plugins (or maybe not yet) to allow you to extend the functionality of your website like WordPress, but it does support integrations to add more features. For instance, you can integrate Ghost with Google Analytics to monitor the traffic of your blog.

Ghost is one of the content management systems that adopts the headless concept, a concept whereby the focus is to facilitate content workflows and administrative interface dedicated to content creators. That is why Ghost has a very simple dashboard with all main menu items are related to content management.

The Ghost Interface
The Ghost Interface

Ghost is built with NodeJS. It’s available in two versions just like WordPress: the hosted version (Ghost.org) and the self-hosted version. You can get the source code of Ghost on its official GitHub page.

Although Ghost comes with fewer features compared to WordPress, but it has all the necessary built-in features for blogging, including:

  • SEO
  • Email newsletter

One of the notable built-in features of Ghost is the ability to restrict content based on the membership type. For instance, you can set certain blog posts to be accessed by paid members only. In Ghost, your audience is divided into three types:

  • Public
  • Members
  • Paid members

Regarding paid members, Ghost has native integration support with Stripe to handle the membership payment. The fact is that offering paid content is the monetization model commonly adopted by Ghost users although you can also adopt other monetization models such as installing PPC ads (e.g., Google AdSense) or selling affiliate products.

Picking a Ghost Hosting

The core of Ghost is available for free. However, given the lack of popularity of Ghost, it’s rare to find a web hosting provider that offers a managed hosting for Ghost. So far, the best way to create a Ghost-based blog is by registering an account on Ghost.org.

Ghost.org offers a managed Ghost hosting. You can create a blog on Ghost.org whether with a sub-domain or with your own domain. When creating a blog on Ghost.org, you don’t need to install the Ghost software or deal with the system administration on the server side such as configuring the web server or database.

Is there an alternative to Ghost.org to run your Ghost blog?

DigitalPress and A2 Hosting are two alternatives you can consider for running a Ghost hosting.

Best hosting services to run a Ghost blog:

Setting Up a Ghost Blog

If you are a solo blogger or have no dedicated team with decent knowledge in server administration, we strongly suggest you use the service from Ghost.org to run your Ghost blog. In this post, we will show you how to set up your blog on Ghost.org.

Please note that Ghost.org is a paid service. You have a 14-day trial. After the trial period ends, you can decide whether to continue using the service or not. On the registration process, you will be asked to enter your credit/debit card number, but Ghost won’t charge you (even if the trial period ends) until you activate the subscription manually. The Ghost service itself starts at $9 per month.

To create a Ghost account, go to Ghost.org and click the Get started – free button on the top-right corner. This will open the registration page. On the registration page, enter your email address and password. Click the Continue button to continue.

Next, enter your name and card number and click the Continue button.

On the next step, you will be asked whether you are a content creator, marketer, or developer. Simply select one best describes yourself and click the Continue button.

Give your blog a name and click the Alright, let’s do this button.

Wait until Ghost is done installing and configuring your blog. Once done, you will be directed to the Ghost dashboard.

The basic configuration is done. Next, you can set the custom domain, set the site identity (name, logo, favicon, and so on), and design your blog.

Setting Up the Custom Domain

When creating a blog on Ghost.org, you will have a blog under the sub-domain of ghost.io (e.g., yourblog.ghost.io), which is not good for a professional purpose. You need a top-level domain (.com, .net, .org, etc.) for a professional blog.

Ghost.org allows you to set up a custom domain, but before you set up a custom domain, make sure you already have the domain you want to use for your blog. You can get a top-level domain from the following sites:

  • Bluehost
  • Namecheap
  • GoDaddy

Once you have the domain, you can login to the Ghost dashboard. Go to the Domain setting screen by clicking the Ghost(Pro) menu on the left panel.

Open the Domain tab and click the Setup button to set up the custom domain.

Enter your domain in the Domain field (e.g., www.yourblog.com).

There are two DNS records you need to add to your domain.

To add these DNS records, login to the service where you bought the domain from (e.g., Bluehost) and select the domain you want to use. Click the Manage Domain menu, the gear icon, or any item aimed at managing the domain.

Click the DNS Management menu or a similar menu.

Click the Add New Record button to add a new record.

For the first DNS record, enter the data according to the data you get from Ghost. Click the Add Record button once done entering the data.

Add another DNS record for the second DNS record. You can also use the data according to the data from Ghost.

If you get an error message on the activation process, you can leave the Domain field empty (see the screenshot above).

Once done adding the DNS record, switch back to the Ghost dashboard and click the Activate button.

Wait a moment until your domain is activated. If everything is ok, you will see a Continue button. Simply click the button to continue blogging.

With your custom domain has been activated, you can type yourblog.com/ghost on web browser every time you want to login to the Ghost dashboard.

Setting the Blog Title

On the registration process, you have been prompted to enter the title of your blog. If you want to change it, you can go to the Settings screen by clicking the gear icon on the left panel. On the Settings screen, click the General menu.

On the General screen, you can set the blog name/title and blog description. You can also set the social media cards as well as adding your social media account. Don’t forget to click the Save settings button every time you are done making the changes.

Creating Static Pages

Your blog needs some static pages such as the Contact page, About page, Privacy policy, and so on. Once these pages are created, you can add them to your navigation menu. By default, Ghost comes with four published pages:

  • Contribute
  • Privacy
  • Contact
  • About

To edit these pages, first, you can click the Pages menu on the left panel to see all the static pages on your Ghost blog.

To create a new page, you can simply click the New page button on the top-right corner. Whereas to edit an existing page, you can click a page you want to edit. This will open the content editor of Ghost.

On the editor screen, you can click the Settings icon on the top-right corner to open the Settings panel. From this panel, you can set the URL of the page, add a tag, access permission, meta data, excerpt, and so on.

Setting up the Navigation Menu

Once the static pages are ready, you can add them to the navigation menu of your blog. In Ghost, there are two navigation menus:

  • Primary Navigation: The navigation menu placed on the header
  • Secondary Navigation: The navigation menu placed on the footer.

To set up the navigation menu, click the gear icon on the left panel to open the Settings screen. Click the Navigation menu on the Settings screen.

As you can see, there are two navigation blocks you can see here: the primary navigation and secondary navigation. To add a new menu item, you can add the menu label on the left column and the link on right column. Click the green plus icon to add the menu item.

To remove an existing menu item, simply click the trash can icon on the menu item you want to remove. Make sure to click the Save button on the top-right corner to save the changes.

Setting Up the Necessary Integrations

Ghost already has a built-in SEO feature as well as a built-in newsletter feature, two of the most essential features for blogging. But still, these features are not enough. You need analytics feature to track the visitor statistics, a commenting feature to interact with your visitors, and so on. These two features (analytic and commenting) are not available in Ghost.

Ghost supports integration with third-party services to add more features to your blog. The following services are necessary to be integrated with your blog.

  • Search Console: By integrating your blog with Search Console, you can monitor the performance of your blog on Google. You can monitor things like which blog posts rank higher on Google, which blog posts that are not indexed yet, and so on.
  • Google Analytics: Google Analytics allows you to track the visitor statistics on your blog. You can check the number of visitors (daily, monthly, yearly, custom period), where they are from, technologies they use, demographics, and so on.

— Integrating Ghost Search Console

First off, visit the Search Console page and login with your Google account. Select a property type you want to use (we suggest you use the URL prefix option as it is easier to set up). Enter your URL of your blog and click the Continue button.

There are several verification methods you can choose, but we suggest you choose the Domain name provider option as this method can be implemented on any Ghost.org plan. The HTML file option can only be implemented on the Creator plan and the higher plans.

Open the Domain name provider option and copy the available TXT record.

Go to the website where you bought the domain from and login with your account. Select your domain and manage it. Open the DNS management menu and add a new record. When adding the new record, set the record type to TXT and paste the TXT record you have copied. Click the Add Record button to add the record.

Once the record is added, switch back to the Google Search Console tab and click the Verify button.

If everything goes well, you should see the following screen. Click GO TO PROPERTY to go to the Google Search Console dashboard.

If the verification failed, try again within minutes. DNS changes can take some time to apply.

— Google Analytics

To install Google Analytics in Ghost, first, go to the Google Analytics page and login with your Google account. Click the Start measuring button to get started.

Add the account name for Googe Analytics and click the Next button (you can skip this step if you already use Google Analytics before).

Add the name of your property and click the Next button to continue (a Google Analytics account can have multiple properties).

On the next step, you will be asked some questions about your business. Simply answer the questions and click the Create button.

On the appearing window, simply accept the user agreement and click the I Accept button. Next, you will be asked to select a data stream. Since you want to use Google Analytics for your blog, you can choose the Web option.

On the next step, add your website — as well as the stream name — and click the Create stream button.

Click the Global site tag (gtag.js) option and copy the code.

Login to your Ghost dashboard and click the gear icon on the left panel to open the Settings screen. On the Settings screen, click the Code injection menu on the ADVANCED section.

Paste the tracking code you have just copied to either the Site Header or Site Footer field. Click the Save button to apply the change.

Customizing Your Ghost Blog

Until here, your blog is ready to use. But before you start to write blog posts and release your blog, you need to make some customizations first. Unlike WordPress, Ghost offers minimum customization options as it is built — once again — with simplicity in mind. You can only set the following things to customize your Ghost blog:

  • Site logo
  • Site icon (favicon)
  • Global typography
  • Color accent

You can start the customization process by installing a theme.

Installing a Theme

Just like other CMS software, Ghost also allows you to install a theme to create a unique website. A theme is a component that governs the appearance of your website. From the homepage layout, the blog post layout, the header layout, the footer layout, and so on. A new Ghost blog has a default theme called Casper.

In Ghost, themes fall into two categories: the official themes and themes from third-party developers.

If your Ghost blog is hosted on Ghost.org, you can only install a theme from third-party developer if you use the Creator plan or the higher plans. The Starter plan is only allowed to install an official theme.

To install a theme in Ghost, first, click the gear icon on the left panel to open the Settings screen. Click the Design menu on the Settings screen.

Click the Change theme menu on the bottom side of the settings panel and select a theme you want to use (you can click the Upload theme button on the top-right corner to install a theme you download from a third-party source, e.g., ThemeForest).

After picking a theme, click the Use [theme theme] button to install it.

— Where to Download a Ghost Theme

If none of the official Ghost themes suit you, you can buy a theme developed by third-party developers. Again, you need to upgrade your account to at least the Creator plan to install a theme from a third-party developer. The following marketplaces are the best places to download Ghost themes.

Setting Up the Blog Logo, Blog Icon, and Accent Color

Before setting up the blog logo and favicon, you can prepare the images of them using tools like Photoshop or GIMP (GIMP is a great free alternative to Photoshop). Or, you can also use online logo makers like LogoMyWay, Logo.com, to Canva. You can create the logo and favicon with the following specs:

  • Logo: 600x72px
  • Favicon: 60x60px

Once your images are ready, login to the Ghost dashboard and click the gear icon on the bottom side of the left panel to open the Settings screen. Click the Design menu. On the Site design screen, click the Brand settings block on the left panel.

As you can see, there are five settings you can set here.

  • Site description
  • Accent color
  • Publication icon (favicon)
  • Publication logo (blog logo)
  • Publication cover (cover on the homepage)

Don’t forget to click the Save changes button on the top-right corner to apply the changes.

Setting Up Typography

There is not much you can change regarding typography. You can only change the font family of the post title and post body. The rest, including the text size and color, have been set by your theme.

To change the font family of the post title and post body, go to the Side design screen and open the Site-wide block.

Writing Your First Blog Post

You have done customizing your Ghost blog. Next, you can start to write blog posts. Your new Ghost blog already has 7 published blog posts. You can delete them first before you start to create your own blog posts. To delete the default blog posts, first, click the Posts -> Published menu on the Ghost dashboard.

Select (click) a blog post you want to delete. This will open the content editor of Ghost. On the Ghost editor, click the Settings icon on the top-right corner to open the settings panel. Scroll down to the bottom until you find the Delete post link. Simply click the link to delete the blog post.

Repeat the steps above to delete the remaining default blog posts.

To write a new blog post in Ghost, you can simply click the plus icon on the Posts menu. Clicking this icon will open the Ghost editor.

Getting to Know the Content Editor of Ghost

The Ghost content editor is codenamed Koenig (much like Gutenberg in WordPress). Koenig is a Markdown-based editor.

In general, your blog post consists of three main elements:

  • Feature image
  • Title
  • Body

Ghost has a native integration with Unsplash to allow you to instantly add a feature image. You can simply click the Unsplash icon on the feature image field to load images from Unsplash.

In addition to text, Ghost also allows you to add other elements to your blog posts such as image, video, social media content (tweets, YouTube videos, Facebook posts, etc.), button, call to action, and so on. To add a new element, you can simply click the plus icon.

— Formatting Text

To format a text in Ghost, first, highlight the text you want to format. This will open the formatting bar where you can select options like Bold and Italic. You can also turn the format from regular text to heading and quote.

— Adding a Link

When you highlight a certain text in the Ghost editor, the formatting bar will appear whereby you can set some formatting options (as just have covered above). From this bar, you can also adda a link. Simply click the chain icon to add a link. Enter your link on the appearing box and hit enter.

— Opening a Link in a New Tab

By default, Ghost opens all links you inserted to blog posts in the same tab, including external links. This is not the best practice to reduce the bounce rate. The Ghost editor offers no option to set a link to be opened in a new tab. You need a little tweak to open a link in a new tab.

You can add the following JavaScript snippet to open links in a new tab.

<script type="text/javascript">
    var links = document.querySelectorAll('a');
    links.forEach((link) => {
        var a = new RegExp('/' + window.location.host + '/');
        if(!a.test(link.href)) {
          	link.addEventListener('click', (event) => {
                event.preventDefault();
                event.stopPropagation();
                window.open(link.href, '_blank');
            });
        }
    });
</script>

Credit: Aileen on Ghost forum.

You can add the snipped above to the Site Footer on Code injection. To do so, click the gear icon on the left panel to open the Settings screen. Click the Code injection menu on the Settings screen. Paste the code to the Site Footer field and click the Save button to apply the change.

After adding the snippet above, all external links on your blog posts will be opened in a new tab, while the internal links will be opened in the same tab.

— Setting Up the SEO

Ghost has a built-in SEO feature. The SEO feature meant here is the ability to add a custom meta title and custom meta description. To set the SEO on a blog post, first, you can open the settings panel by clicking the settings icon on the top-right corner. On the settings panel, you can click the Meta data settings block to add a custom meta title and custom meta description.

— Adding a Tag

Ghost uses tags to group your blog posts. Before you can add a tag to a blog post, first, you need to create the tags. To create a new tag, simply click the Tags menu on the left panel on the Ghost dashboard. This will open the Tags screen where you can create a new tag and delete the existing tags. To create a new tag, you can click the New tag button on the top-right corner.

On the next screen, you can add the name of the tag on the Name field, set the slug on the Slug field, and set the description on the Description field. You can also set an image on the Tag image field. To set the SEO (meta title and description) you can open the Meta data block. Click the Save button on the top-right corner once you are done filling in the fields.

Once your tags are ready, you can add them to your blog post. To do so, open the settings panel on the Ghost editor and simply click the Tags dropdown.

Ghost uses tags as the parameter to group your blog posts in archives. If you have a tag called Tutorials, for instance, you can type yourblog.com/tag/tutorials on web browser to view all blog posts with the Tutorials tag.

— Setting Up the Content Access Restriction

Before publishing your blog post, you can set who can access it. Whether regular visitors (non-members), members, or paid members. To set the type of readers that can access your blog post, you can select the option on the Post access dropdown on the blog post settings panel.

— Publishing the Blog Post

Once you are done writing the blog post and making the necessary settings (SEO, content access, and so on), you can click the Publish button on the top-right corner (or you can click the Preview button to preview your blog post first).

A dialog window will appear after you click the Publish button. You can publish your blog post right away or schedule it. By default, the blog post will also be sent to your members as a newsletter other than a new blog post on your blog. If you want it to be published as a blog post only, you can disable the Send by email to option. Click the Publish button to publish the blog post.

The Bottom Line

There are a bunch of content management systems to choose from to create a professional website, but if your need is solely blogging, then Ghost might be the best option. Ghost adopts the headless CMS concept to deliver a better performance with simpler content management. Its dashboard is designed to focus on content administration instead of site administration.

Ghost is available in two versions: hosted (Ghost.org) and self-hosted. Ghost.org is a managed solution to run a Ghost blog (much like WordPress.com). So far, Ghost.org is the best option to create a Ghost-based blog as it’s very challenging to find a hosting provider that offers a managed hosting for Ghost. Whereas installing Ghost manually requires complex steps. Plus, you need to have shell (terminal) access on your hosting.

Unlike, for instance — WordPress –, Ghost is designed to create a professional blog. Ghost is not the best option for casual bloggers (those who blog without business orientation). Instead, you can use Ghost if you want to create a business-oriented blog. In Ghost, you have one main monetization model: offering member-only content. Ghost has a built-in feature to adopt this business model. Of course, you can also adopt other monetization models such as selling affiliate products or installing PPC ads.

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top