Moving to Postleaf

I've been using WordPress for about 5 years. It's been my go to CMS for too long. All of last year I wanted to move away from using WordPress and start using a more modern CMS for my personal site. WordPress has horrible code, poor release integrity, and all too frequent security issues. When the 4.7.2 release caused my website to be immediately compromised I know it was time to look for more options. So I looked at Drupal8, Concrete5 and more recently Grav and BoltCMS as possible alternatives. Each had varying strengths and weaknesses.

Drupal8 was rebuilt to use most of the agreed upon PHP best practices such as PSRs, Composer, Twig templates and YAML config files. This is great but the admin area is still horrible and too much needs to be done in .yml files. Every modules, theme and Drupal itself has at least one .yml file which needs to be modified to work. For me this was too much of a learning curve to commit to at the time. I know an easier solution must be out there.

Next I tried Concrete5. Concrete5 has been a strong competitor in the CMS market due to it's front-end editing features. I had been threatening to use it anger for a long time...but just never got around to it. After trying it I can say it is a very good option. However, I just didn't feel it was right for me at the time.

Next, I looked at BoltCMS. I liked the idea of Bolt because it is build on top of Silex, which is my favourite MVC microframework. However, once again I was put off by the dated admin area. Moving on.

Then I started using Grav. Grav is a "flat-file" CMS. This means no database AT ALL! Everything is done in Markdown or Twig files. You right your posts that way, your pages and even your password gets saved as a hash string to a file, as long as you use the Admin plugin. One again things are in .yml files...which was the trickiest part in using Grav. However, documentation is good, the admin is nice and even tweaking template files was quite straightforward. I spent more time with Grav than any of the other CMS options I tried. I was pretty sure it was going to be the winner. I'll definitely use it for projects in the future.

I was actually in the process of building a new site form myself using Grav when another CMS which I'd been keeping an eye on called Postleaf, went into Alpha testing phase. As of writing this, it's still on version 1.0.0 Alpha 3. So after having a conversation via email with Postleaf's creator, Cory LaViska about how to make it easier to install for people looking to try it out, I started working on creating a Docker container and an Ansible Playbook to automate the process of installing Postleaf on Ubuntu/Debian servers.

That was just over a week ago and both the Docker container (here) and the Ansible playbook (here) are finished. Postleaf was originally built with PHP, however Cory rebuilt it from the ground up on NodeJS. The admin has been reworked. It was nice before but now it's quite impressive. Perhaps the easiest CMS to get up and running with of any I've tried. Took only a few minutes for me to get familiar enough with it to create posts, upload images and add the default website info. It also has one of the best WYSIWYG editors I've used.

As I'm writing this I just turned on Zen mode and noticed I could set the to white text on a dark charcoal (not black) background. Couldn't help but smile at how much better that instantly was. Really helps for finding spelling mistakes which are automatically highlighted. Amazing how many CMS' don't offer that simple feature.

So it's early days for Postleaf, but I think it's off to a great start and I'll hopefully be involved in it's growth. I'm planning to create a theme in the coming weeks if I have the time.

I plan to write articles using Postleaf and perhaps tutorials on developing themes for it. Stay tuned!