Déjà Vu in Blogging World

Rajesh Narayanan
8 min readApr 29, 2018

--

Prep-Talk

In my past decade of blogging, I have moved on from the relic called live journal and side stepped blogger, tumbled into the adventurous realms of WordPress (self-hosted) and enrolled on Steem while looking for greener pastures. In my humble opinion, considering the ease of use and arsenal of free (& paid) utilities, nothing can beat creating and managing content using WordPress. Right from the word go, you really cannot go wrong with it.

The legendary WordPress: 5 minute install

It is close to 9 years, since I wrote an article about the importance of people supporting the open source community powering WordPress. They have kept growing consistently over the years and are the core reason behind the fact that WP now drives close to 30% of the websites out there!

Yet here I am, on a platform like Medium, mulling over the pros and cons of the new kid on the block — Ghost! I don’t want this article to be the fuel for yet another Ghost vs WordPress vs Medium comparison. You will get a lot of hits on the internet for that.

This article is written for the layman who is mulling over making the switch to Ghost (from their current platform of choice) and for those who simply want to take the plunge and see what this is all about. The aim is to provide you with a heads up guide that will help you setup a running blog while also ensuring easy upkeep and give an intro to essential initial setup. The pitch… I will keep it right at the end (let’s see if you make it there).

Warning: I would like to deter a large subset of people upfront. For example, if you are a small business owner or popular group of bloggers who currently weave your show using the fabric of WordPress (or Drupal or Joomla), I would probably ask you to not get on this bus (yet). Ghost by itself is not to be confused with a full-fledged CMS.

It would take far more time to get it up to the same level of a decade old blog. Consider, this as more of a platform of choice intended for use by bloggers and publishers who have routine textual content to propagate to their end users.

Getting Setup

As a matter of first priority, I would recommend going with a managed cloud host that provides virtual servers like DigitalOcean or Vultr (please note that the preceding two URLs are my referral links).

It is likely that your shared host is already having a simplified solution to get your setup done quickly. But working with cloud computing platforms like DO or Vultr gives you a bit more control over your expenses and makes you more conscious about the capabilities of the platform you work with (as a whole).

Current set of 1-Click Apps in DO
  1. With DO, you also get one-click app based on the latest flavor of Ghost (run on Ubuntu 16.04 as of today). If you don’t like to fiddle around much with Linux commands please go for this option.
  2. Alternately, there is also a Bitnami stack available including a Docker container. Although I have not tried this yet, from hearsay it seems to be a good choice for easy site upkeep.
  3. If you are feeling comfortable so far, go for a vanilla version of the Linux distribition and get the blog running using a combination of Ghost and Docker.
  4. Finally, for those who are uncomfortable with the whole run-your-own-Linux-distro concept, please opt-in for a more controlled experience by signing-up for RunCloud or ServerPilot (the preceding two URLs are my referral links). These services will act like a control panel through which you can visually manage most of the OS and Ghost upkeep. They even throw in additional features like server monitoring and deployment-cum-renewal of SSL certificates free of charge which is going to be essential considering recent trends!

No matter whatever choice you make, the setup will involve:
* Configuring firewall and ports.
* Installing load-balancer/ reverse proxy (Nginx).
* Obtaining HTTPS (optional, but they bundled it as part of the install)!
* If you are doing the setup in full manual mode this is the step where you might end up editing certain config files (refer to instructions from your host).
* Complete your details in registration page and proceed on to Ghost admin screen.

The Results

Much has been hyped up about the beautiful Markdown support built within Ghost that makes blogging a pleasure again. While I admit this is indeed a turn-on for many bloggers this is not the only thing Ghost brings to the table.

A draft showcasing the skill-set of the Ghost Editor

With that being said, right off the bat you are going to get nothing but a blog. When I say that, I am talking bare bones:

  1. No search to speak off (at least in the default theme).
  2. No built-in commenting module.
  3. No dashboard or analytics screens.
  4. No post format or templates.
  5. No major plugins to support building your sitemaps or from the other blog multiverses out there (yet).

As a result you get the following:

  1. Zappy infinite scroll based front-end.
  2. A lightweight solution that also looks aesthetically good.
  3. Clean and simple markdown based UI.
  4. Just a tool to write blogs. Additionally you can mark a blog as a page — that’s about it.
  5. Additional things handled by Ghost:
  • Built-in XML sitemaps
  • Google AMP pages
  • Canonical tags
  • Optimized URLs
  • Micro-formats
  • Facebook Open Graph tags
  • Support for Twitter cards
  • Clean semantic markup

Another common gripe is the lack of an iOS app… So a big shout-out to iOS/ Swift developers reading this post!

Migrating from WordPress

Comments

If you have not already Ghost plugin, please do and export your WP blog to the JSON format recognized by Ghost. I have tried this on a WP site containing a dozens of plugins and tons of images and it works extremely well. However do give the read-me of the plugin once. It says “Ghost does not, and will not deal with comments” and sends you off to Disqus (of which I am not that much in love with).

It appears Disqus isn’t the only choice. You can turn on comments by using LiveFyre and even FB. Or, you can ditch these advanced commenting systems altogether and rely on social sharing and, maybe, use a simple contact-form to engage with genuine readers. The drawback here is you will end up losing existing comments from your WP blog.

Gallery/ Images

By this time, you might be realizing how most of those plugins were unnecessary for your site or even how much time they could have cost you, should the plugin author discontinue support for it. Which is when you realize that things like SEO optimization, meta data handling, code injection and readiness for social adoption are built in Ghost.

One example that comes to my mind, some of my older posts containing photo galleries were broken simply because I recently switched over to another gallery plugin and did not have time to update the short-code of the earlier posts!

A Demo of the beautiful theme Twelve at Galleria

To sort this out, I am now looking at time-tested Gallery solutions that have reasonably well built APIs like Galleria. While Ghost supports custom header and footer for each post, you might still want to code in your post level JS variables on the content body, simply to make it easier to shift, should you decide to move on to another platform in the future.

Who knows? Maybe you do not even need these external solutions, and maybe learn some easy to implement shortcut (like the one here) which could help you along the way!

Data Storage

Unless you have minuscule site traffic and unlimited bandwidth for showing off your media in full HD, I recommend you to give the cloud based cold-storage solution like the one’s offered by Google Cloud Platform or Amazon S3 a try. Your cloud host (Vultr or DO) is bound to have solution for handling requests for additional storage space.

Chances are that you will even be dynamically able to allocate that to your virtual server. However, the long-term cost to benefit ratio will be much better if you go with the big players. To future protect a possible shift in the solution of your choice, map your main storage URL to a JavaScript variable in the Ghost header (found at the Code Injection section); now keep adding your media by referencing this variable.

Customization

Any additional customization that is needed at site level can be done through the Code Injection section in your admin screen. This will essentially help you insert header and footer that will be applied at run-time on your page.

Example: Something like a cookie content message, which might be a legal necessity in your country can be achieved by adding a single line (from Cookie Consent) in your blog header.

My travelogue home page

If you have basic HTML/ JS/ CSS knowledge, you might be able to sustain your new blog with very little outside help. I was able to pull-off a travelogue home page in no time using Google Maps JavaScript API and structured JSON data.

Conclusion (*Pitch)

Your basic blog is now up, albeit like a mutant — with the legs of FB comments and hands of some open source gallery. In case you are looking around for more themes other than the one’s listed in Ghost.org marketplace, do take a look in here for some great free/ paid themes. If you are a front-end developer please consider contributing by developing themes/ apps for the Ghost publishing platform.

Current Apps within Ghost

As you can see in the above image, the currently listed apps are pretty lean at the moment. Which is fantastic - if you are a developer and reading this :)

This is a great moment for anyone who wishes to contribute in a growing community and earn/ learn/ share along the way. Additionally, do read their API documentation and see if you can create simple tools that can benefit someone and share it with the community.

Ghost is right now at a place where WordPress was when I started a decade ago. Like the developer and user community that has made WP into the powerhouse that it is today, Ghost is in need of people creating and consuming its service. Something tells me, this platform will not disappear like a puff of smoke. After all, the who’s who of today’s web are seeing its benefits and switched over to it already!

--

--