On not becoming a Ghost site
Though I’m still very pleased with WordPress I have continued to attempt to move the contents of this site over to Ghost. It’s an experiment in Ghost’s capabilities and a search for a way to deal with private content. For several years in the early aughts I kept this blog on LiveJournal. Those were the years when the blog was most personal and much more of a community exercise. LiveJournal was (and is) a walled garden sort of platform, which made it possible to choose who could see and/or comment on my posts.
Because I was less concerned about what a random visitor might see, my posting patterns were very different. This can be seen by looking at the archives here, and it’s more obvious if you have access to the private posts (which, of course, no one but me does). It looked a lot more like a Facebook stream, with memes posted and with a mix of long-form rants and one-line status updates. It also included some much more personal information than I’ve been willing to post in the last fifteen years or so, including personal relationships and complaints about coworkers. As important as it is to be open and honest about my thoughts, opinions, and feelings, some specifics should be private. An angry rant about a difficult day at work really shouldn’t be for everyone’s eyes.
I’d like to preserve that private content and perhaps create a space where I could continue that kind of personal journaling, visible only to a few. That’s where Ghost comes in. Among its other virtues, Ghost is set up out-of-the-box for private content to be shared only with subscribers. Though I’m not currently interested in having a paywall for any of my projects, the ability to restrict content to friends or family is a feature that I’ve missed. Of course WordPress and Drupal have modules for creating permissions systems and access control lists, but there is some appeal to using a feature that is built in and has little extra complexity.
Ghost’s first shortcoming is its lack of a native comment system, as I’ve mentioned before. Commento is a capable comment system but the import options are somewhat limited. My latest attempt has left me with a JSON file full of comments that could (probably) be used in a Commento install with the WordPress site, but the WordPress Ghost Exporter fails to preserve the post URLs, which means that the newly-migrated posts can’t be associated with the newly-migrated comments. That’s not an insurmountable obstacle, surely. I haven’t looked at the code for the exporter but I can’t imagine it would be too difficult to modify the exported posts’ URLs. I could do it with regex on the JSON file the exporter generates.
However, after seeing my thousand-plus posts imported into Ghost on my development server, I have some qualms about Ghost’s suitability as a content management system, even for simple blogging.
Stuck in an infinite loop
There doesn’t seem to be any way to disable infinite scrolling and replace it with a way to skip forward through the feed. If your site’s information is time-sensitive and anything after a certain amount of time is no longer relevant, this may not be an issue. If you have a relatively young blog with only a few posts, this will similarly not be an issue. On a site with hundreds or thousands of articles, infinite scroll without another way to look backwards in time will bury your old content where it cannot be found.
The question of how to get around this has been asked, again and again on the Ghost support forum. There is an answer which has a few issues. First, it requires editing theme files. That’s acceptable (though not ideal) for me on a self-hosted install but it seems like a drawback for anyone on Ghost’s paid hosted service, or who is afraid of editing files on their server. To compound this issue, the solution given above does not apply to the current version of Ghost’s Casper theme. Today’s Casper requires digging into Javascript files. Perhaps I’ll go deeper into that in a later post.
To be fair, this is a theme-specific issue. There are themes that don’t include infinite scroll. I don’t see any on which it is a feature that can be enabled and disabled using the admin interface. For many this could limit their available theme choices.
However, none of the themes offered with Ghost offer an actual solution to the problem of navigating old posts. Instead of infinite scrolling, themes with pagination have two variations: a “load more” button which is infinite scrolling but without the scrolling being automatic, or a pagination interface with “newer posts” and “older posts” being the only buttons. There’s an indicator of what page you’re on, but no way to jump to the end or somewhere in the middle. If you want your users to be able to look at old content, they either have to click “older posts” a bunch of times or go to the browser’s address bar and change page/74/
to page/79/
etc until they find what they’re looking for.
Worse, some themes offer an archive option with only one page. You can see the most recent post, or you can see all of the other posts. That might not be a problem if you only have three posts on your site. If you have three thousand, it’s not good.
I don’t hate infinite scrolling. But it can’t be the only means of navigating a site, even a site as simple as a blog.
Worse than infinite
The infinite scroll issue is troubling on the user side. It becomes a real problem in Ghost’s admin interface. The list of posts can be sorted and filtered, but it can be sorted only by date and there is no option for pagination. As an author or editor, the options for finding a piece of content are painfully limited.
There are no administrative functions available in this list of posts. In order to delete several posts or change status (publish/unpublish, or make public or private) Each post must be opened individually, changed, and saved. Then when the intrepid editor returns to the list of posts, it will be at the top of the list of posts where she may now have to scroll through hundreds of more posts to find the next post after the one just edited.
Reliance on infinite scroll with very limited (and not useful) paginations options is a venial sin on the front end. In the administrative interface it is a mortal one. Not everyone will be migrating an existing site with hundreds of posts, but this is a problem that will face every site eventually unless they stop adding content. Granted, many sites do eventually fade out, but one’s site administration tools shouldn’t be designed around an assumption that the site will fail.
The Ghost is not dead
Ghost is still a blogging/newsletter platform with a lot to recommend it. A site without evergreen content where the newest content is all that’s relevant would still be well-served by Ghost. A new site whose authors and administrators are confident that old content will never need be recategorized or altered could likewise be happy with Ghost for quite a while. It’s possible that as Ghost sites mature, so too will the demand for more robust administrative tools. Ghost’s developers have done a great job of rolling out additions (the notable exceptions are ones like native comments where the developers have been clear that they don’t want to add the feature).
For the time being, my project blog at positronic.works stays a Ghost site. With fewer than a dozen posts (and admittedly almost as many drafts) I won’t have problems with content management or pagination for a while. I can afford to wait and see there. I look forward to seeing how Ghost continues to grow. Continuing to work with it is the best way I know how to keep up to date. Ghost is still a young platform, has room to grow, and apparently has the resources behind it to keep that growth coming. One ought to take it on as a platform only with some knowledge of what the shortcomings are and with some consideration to the balance of its strengths against those shortcomings.