Skip to content
This day’s portion

Some notes on moving from Jekyll to either Kirby or WordPress

I’ve 99% made the decision to move away from Jekyll to either WordPress or Kirby – which explains why I haven’t been posting much recently. I’m currently erring towards Kirby – reasons below.

Why move from my Jekyll setup?


Jekyll would be fine if I was just writing posts on this laptop, pushing them to a bogstandard host and displaying them without comments or webmentions. But I’m not. I also publish notes and links using a CMS, so that I can publish from anywhere with an internet connection. On top of that, I accept and publish native comments without javascript, and send and accept and display webmentions. Also without javascript.

I’m sure you’ll allow this is all very fucking impressive. But it’s dependent on many things:

  • Forestry CMS
  • Netlify webmention plugin
  • The jekyll-get-json Jekyll plugin to display incoming webmentions
  • Nelify forms for comment forms
  • Airtable to store comments
  • An Airtable plugin I wrote (or rather, copied and pasted) which is dependent on two Ruby gems
  • Zapier to link Netlify forms and Airtable and send confirmation emails to commenters
  • IFTTT to autopost to Mastodon
  • Netlify build hooks to fire site builds whenever I like
  • Netlify for Github deploys
  • Netlify itself
  • Github itself
  • …and so on

I’m really happy with how this all works, but it’s starting to creak. Forestry is being sunsetted, jekyll-get-json is returning warnings when the site is built and Airtable is moving to a new authentication system. It also has a really annoying API where it’s impossible to return more than 100 results from a table.

I also have a nagging concern that Netlify itself is beginning to struggle – it recently laid staff off and divested itself of Netlify CMS.

It’s a bit like work

My website has been a hobby for years, and it is satisfying when you rig up a system that actually works. Until it gets frustrating. Recently, went down (another dependency) due to a Vercel (another indirect dependency) pricing change. This meant my outgoing webmentions (and those of several other people) just stopped working.

Thankfully, Netlify offers a webmention integration (for how long?) that works a treat. But there’s minimal documentation and it took me a few hours work to get it up and running. This was frustrating more than anything else.

I’m also mindful of how self-referential this makes my website; often, I’m posting about running a static website that does dynamic things. I always add a but you’d be better off using WordPress – which is, well, true.

It’s not indieweb

Netlify, Vercel, Github, Airtable… although you could run a simple static site on Jekyll, an FTP client and cheap hosting, the chances are you’re using one of the big providers and Github for deployment. The static/JAMstack world is largely VC-funded, west-coast tech, or owned by Microsoft. It is free, and very convenient, but it’s not indieweb in the same way as running a self-hosted CMS on a small provider is.

What do I need/want from the new setup?

Must haves

  • A CMS
  • A monolithic service, resulting in
  • Fewer dependencies, resulting in
  • More time to not write about setting up the website

Would like to haves

  • Guaranteed speed and security of static
  • Ease of creating themes/listings/templates the way I want them
  • Comments
  • Webmentions (in and out)
  • Cheap (free if possible)
  • Autoposting to Mastodon and

How to prioritise these? Over the last couple of weeks I’ve been exprimenting with WordPress and Kirby. The options are:

  • Just meeting the must haves. I think I’d go with WordPress run as a static site. And to do that, I’d use HardyPress. Partly because it makes it very simple, partly because I could really hack at WordPress because the backend would never be exposed, and partly because it’d cost me €4/month. Downsides: a dependency on HardyPress itself and HardyPress is run on AWS. Theming with WordPress. No comments or webmentions.
  • Full on indieweb blogging: categories, tags, crossposting, comments and webmentions. This is probably a standard WordPress installation using the indieweb plugins. I have looked into running WordPress statically with the plugins, but there’s no way to do it. If I was using standard WordPress, I’d pay for good hosting, probably Fused at $30/month. Downsides: probably slower, slight concern over security, theming with WordPress. Expensive.
  • Possible crossposting, comments and webmentions with Kirby. The single thing about Jekyll I would miss most is Liquid, and how easy it makes it to create templates and data types exactly as you want them. The single thing I most dislike about WordPress is its templating, and the sense there’s always something at a level you don’t have control over. Kirby, on the other hand, is direct, flexible and clear. It also uses files instead of a database, so it’s certainly quicker than WordPress, and probably more secure – if only because it’s not used as much. Downsides: I’m not sure how good the comments and webmention plugins are, and they’re not “official”, so possibly more fragile than WordPress’s. Hosting might be more than €4/month. Importing Jekyll posts not as easy as WordPress. £87 one-off license fee.

At the moment, I think it’ll be Kirby. Now to find the time to make the switch. I could do it in stages, just getting a barebones site up and running first.

Liked this?

Consider subscribing to the RSS feed. That way, you’ll get notified whenever I post anything new. If you’re not sure about RSS feeds, I wrote a guide to RSS.

Previous post


Add a comment

Required fields marked * I won’t publish or share your email address. Privacy statement.

Comments are moderated and won’t appear straight away. Subscribe to the comments feed to see when new comments are published.


I think that you might be able to continue using Jekyll and get everything you want.

If you self-host a Webmention endpoint, you can probably set up a convenient system for automatically sending them when building the site. You also won’t have to worry if an existing service goes down. I have been meaning to rig up something like this with my own endpoint.

There must also be a self-hostable comments system with an API that allows you to output comments to static files at build time. You could also go the dynamic route and use PHP includes or server-side includes in your Jekyll templates in order to retrieve comments from either a local or remote endpoint so that you can avoid JavaScript. Of course that would depend on managing your own VPS/server or your provider offering PHP or SSI support.

A tried and true CMS would probably be the least of a headache until you decide to migrate away again. Also, seeing how relentlessly bots hit my website looking for WordPress exploits despite the fact that my site is completely unknown to all but like two people, I would be worried about keeping the backend up to date. I wonder if providers that offer WordPress hosting automatically handles updates, which would alleviate that concern.



Thanks. I could look at setting up a webmention endpoint, but like you say that’s a fair bit of work and something else to manage.

I did have quite a lot of joy with Welcomments, the third party post-comments-to-your-repo servic, but that suddenly stopped working, which just gave me another reason to go for something a bit more established. There are quite a few headless forms services out there, but again, another dependency and API to wrangle (and cost).

Yeah, that’s my main WordPress concern, even for a low-traffic site. I’ve used Fused in the past, and they were very solid and did, on the one occasion a client site got hacked (not my fault, incidentally), sort out any problems I had. But $30/month is a lot.


Comments and replies to this post from other sites and services, such as and Mastodon.

Replies (1)

Andrés Cárdenas

Wishing you luck with the move. It looks like it’s gonna be tedious work to get it all done.

I currently pay for a VPS €6/month and it hosts 2 instances of GoBlog, a Wordpress site, Miniflux RSS Reader and Huginn (self-hosted IFTTT alternative). Maybe that’s worth giving a try?