For several years, we used Wordpress as a Content Management System for the Admail blog and all of the customer facing content, like pricing, FAQs, contact info and our home page. We made that move when it become untenable to keep our content in the same codebase as our application. Moving all of that content to Wordpress allowed us to develop system features independently from blog posts, which was helpful.
Over the years, we’ve made changes to how we deliver and develop our content, which made it harder to manage Wordpress upgrades, template file updates, and syncing content across development and production servers. Simply put, there were growing pains with Wordpress.
After trying a few other solutions, I settled on Jekyll as the new way to manage our content. Jekyll is a small tool that looks at a folder full of articles and generates a blog. It uses the Liquid templating language and it was fairly simple to migrate our existing Wordpress templates over. And now, each Admail developer or designer can work on their own copy and all of our content resides in the same source control as our design and layout.
We made this change a few weeks back and we’ve had the best possible result: no one noticed a thing!
The entire transition was straightforward, until it came time to export all of the blog posts and and content pages out of Wordpress. Jekyll has a tool for that purpose, but I found it lacking. All of our content pages were dumped into the same folder as the blog posts, without any real indication of what was what.
Since all of the Jekyll tools have their source code available on Github, I created a fork of the code and, with a little time and effort, updated it to export Wordpress pages into separate index files, located in the appropriate directory structures.
A few days later, I decided that the changes I made could be useful to others, so I suggested my changes as a pull request to the Jekyll team. As of a few days ago, my changes have been accepted and are in the latest builds of the Jekyll-Import project. That’s the joy of shared code!