WordPress used to be (and arguably still is) the go-to platform for quickly creating a content-driven site without coding or manage servers. But Wordpress is starting to show it’s age, and there are many options which may be better suited for the job. Ghost, a relatively new but rapidly evolving framework, is one that we’ve become big fans of since building Barely Built with it.

Why did we choose Ghost as our publishing platform? What are some (supposed) benefits we wanted to evaluate?

  • Extremely simple set-up (as you'll see 👊)
  • Highly customizable without needing pricey, sluggish and buggy plugins
  • Blazingly-fast load times compared to Wordpress, which can impact SEO
  • Great UX for writing and publishing content, and uses Markdown
  • Free (though hosting, domains etc. obviously are not)

Hosting Ghost on Digital Ocean

We chose Digital Ocean, a cloud server provider, and so far it has been a star for our Ghost stack. Unlike many other server providers (such as AWS and Rackspace), Digital Ocean has Ghost as a one-click app installation. This means that when you start a server you can select the Ghost setup, which comes with Ghost pre-installed and all the correct Nginx (web-server) configurations already done for you.

If you choose a hosting provider that doesn’t have a one-click Ghost server option, Ghost will require a little tinkering around to get the correct settings in place. At Barely Built we obviously love things that require a minimal configuration and coding, so loved the Digital Ocean option.

Digital Ocean - Create new Droplet with One-click Ghost App

  • Create a Droplet (Digital Ocean's terminology for a cloud based server).
  • Select the region that you want to host the server in (ideally closer to your main intended audience)
  • $10 USD a month is the minimum server performance build that you can select for Ghost. (don't worry, if you ever need to upgrade becasue your site is getting an extreme amount of visitors, then you can always upgrade later).

Once it has spun up, you should see the droplet in your dashboard.

Copy and paste the IP address and then go to that site in your browser.

Hey Presto! You have a Ghost blog up and running on your own server, and didn’t write a line of code!. 😃😏

There’s still a lot we can do with Ghost to customize our new content site without any coding...

Go to the url:  your-ghost-ip-address/ghost in the browser. In this example, that would be http://128.199.139.223/ghost.

Here you will be able to create an admin account and access the admin dashboard of the site. You can do things like:

  • Create content, such as blog posts
  • Edit themes (including adding a logo, favicon, etc.)
  • Add collaborators to the site
  • Add plugins and integrations, like Slack (for example, get a Slack message when a collaborator posts)
  • Adjust the settings of the blog

Ghost has a lot of helpful features that are best discovered on your own by digging around the admin dashboard. For example you can easily add snippets of codes to every page or to specific pages, which is useful for adding third-party tracking services such as Google Analytics or Mixpanel.

Additional Info if you want to customise your blog further.

In your email Digital Ocean will send you credentials for accessing your new server with Ghost:

You can use this to access your server from your computer's command line/terminal.
On a Mac, open the Application 'Terminal' and type:

ssh [email protected]

It will prompt you for the password provided in the Digital Ocean email address and then prompt you to change it.

Once you are in, the most important project folder that you care about is The Ghost project folder, where the platform itself resides:

/etc/var/www/ghost.

Though not necessary, if you learn about Ghost internals and roll up your sleeves to change the templates, you can deeply customize it. We recommend checking out the Ghost documentation to learn more.

While in this folder, commands like “>ghost update” and “>ghost start” will run you through updating Ghost and taking you through setup like SSL or a custom domain name.

Ghost uses the Nginx web-server for serving up your site to the world. Nginx works on config files that are located in:

/var/www/sites-available

This is where you need to change rules and configuration options for more advanced settings.

Ghost makes life a lot easier for you by giving you simple commands that you run in the Ghost folder to do a lot of the webserver setup automatically, and sparing you from monkeying around with Nginx files yourself.

And there you have it. Your journey into the world of content publishing has begun!

Keep on Learning,

Team Codelearn