Time to move on from Jekyll
As the title says… I’ve failed to compile my website on the last two PCs I’ve attempted. It is still working on my old laptop, but that’s about to celebrate its seventh birthday. Thankfully, it’s still going strong (the 2015-era Macbook Pro is the perfect laptop, after all), but I need to be able to create my website on any PC.
As Florens argued, SSGs aren’t really simple in the slightest – they’re “tools made for developers by developers”. While I would count myself a half-decent Jekyll developer (which means I’m OK with HTML, CSS, the Liquid templating language and the concept of Bundler and Ruby gems), I don’t know the first thing about Ruby itself, which is what Jekyll is built on. There‘s only so far Googling command line error messages will get you. So, I’ve dutifully raised a ticket for the latest problem and resolved to move on.
What to choose, though? Bearing in mind the problems I’ve had with Jekyll – and what I like about it – it needs to be:
- either dependency-free or dependably dependant on something stable and relatively “simple” like PHP
- quick to compile a site (if it needs to compile at all)
- relatively easy to style and control what it outputs
- cheap to host
- fast and secure
- (possibly) able to handle some of the features I’ve wrangled out of Jekyll, such as comments and webmentions
- able to import Markdown posts from Jekyll
I think that leaves me with three options:
- Hugo. Yes, it’s another SSG. But it has no dependencies and, unlike Jekyll, it compiles instantly. Downsides: I don’t know if I’d be able to get comments and webmentions working, and I hated its templating language and general fussiness the first time I used it.
- WordPress. A return to my 2008 blogging roots! The good – it works anywhere with PHP and deals with any dependencies. Millions of features – brilliant comments out of the box and a webmention plugin. Solid RSS citizen. A proper visual editor that you can use anywhere with a web browser. I still kind of know how it works, I think. The downsides: Gutenberg and blocks. Getting it to output exactly what I want is difficult – there’s an extra layer between intention and the site itself; something unknowable. It’s slower than a static site and a lot more hackable. I could run it locally and generate a static site, though…
- Kirby. A sort of lightweight WordPress, perhaps? It enjoys the same PHP advantages, and I really like the editor. It’s the system I know least of all, but it has good documentation and seems a lot clearer then WordPress. A flat file CMS, so not sure how it would (or could) handle comments. From memory, deals in Markdown files.
I think that whatever CMS I choose, importing my 700-odd posts, links and notes will prove a bracing challenge. I don’t really have the time for a big “project”, so I expect this will be done in stages – I might even have to use a theme template to start with :-(
Anyway – any ideas or thoughts gratefully received.
Add a comment
I had given this quite a bit of thought over the years. My first experience with a static site generators was with Jekyll several years ago when I gave GitHub pages a try. I kept running into issues with keeping the theme up to date and I felt that having control over the finer details would’ve involved an investment that I wasn’t willing to make. I was also always concerned that these tools might be abandoned or replaced by an entirely different system some day, so I didn’t want my site to be tethered to something that I would eventually have to maintain myself after spending an inordinate amount of time trying to understand code written by other people.
There are a lot of other appealing CMSs out there although I haven’t tried out any of them, so I can’t quite vouch for them. FlatPress is another flat file CMS that supports comments. Banshee was written by a security-minded guy and it would probably be my first choice for a CMS. I believe that Grav is another flat file CMS that has generated quite a bit of interest. There are some cool projects out there that have flown under the radar, like this blog engine written entirely in C, although that seems to rely on Apache.
Since I wanted to have control over my site down to the very tags that appear on each page, I did the crazy thing and decided to write in plain HTML. I wrote a few Perl scripts to automate updating the site with new content, and I use some command line tools as well. I wanted to open source my comment system so that it could easily be dropped into any site but I never managed to finish the admin interface before selling my soul to my current employer and it isn’t polished enough for public release in its present state.
Pandoc might be of some use in converting your Markdown files to HTML but I don’t think that it’s going to fit your needs overall. As far as hosting, you’re very conscientious of efficiently delivering content so your site would be a good candidate for hosting on something like SDF or one of the tildes.
Yes, it’s difficult. I ended up reinstalling Macos and got Jekyll working again, so the immediate problem is fixed.
I feel Jekyll itself is stable enough to be relied on, although it’s possible
4.2.2 will be the last version. The risk then is that its own dependencies start failing.
There would have been a time when moving to a new CMS would have been an exciting challenge. Now I really can’t be bothered with the effort it’ll involve. I’ve just started a new job, which will take a lot of my energy.
For that reason I am erring to WordPress. I don’t like it a huge amount, but it’ll do everything I need it to and I can get posts into it by using a plugin. The other options – including those you helpfully suggested – probably involve too much work.
Props for rolling your own comments system :-)
(Also @poorchop, thanks for pointing me to SDF – it looks interesting.)
Looks good, but I think I want to get away from worrying about dependencies to build the core system – NPM in this instance.
Thanks. I have looked at Blot. I really like the idea of these folder/file to website services (and toyed with DropPages many years ago); having Git integration makes it even better.
Blot’s templating seems easy and flexible. In a lot of ways it’s ideal. I guess a concern would be it’s tied to the Blot service remaining up and running; there’s no self-hosted version as far as I’m aware.