Moving from WordPress to Publii

WordPress is a great platform for building websites, especially with the help of a visual editor such as Elementor. It has extensive documentation and a big community, you can create an eCommerce with WooCommerce, forums with bbPres, etc, infinite possibilities a plugin of distance.

Speed a WordPress installation is also not a tricky job, nowadays most cache plugins are able to handle the majority of the performance aspects and there are thousands of managed hosting providers. I still use WordPress for a few side projects I run and there is no doubt it is the right solution for a lot of people, despite of all the hate it receives from part of the development community due to its monolith nature, lack of proper boundary between extensions or because it's coded in PHP.

Personally I don't hold any grudge for a specific technology, they will be replaced naturally by better alternatives in their own time, for reasons that the market deems right, today's blu ray is yesterday's tape. WordPress is still the go-to solution for most website development agencies and may continue to be for years to come.

As a security guy, I try to keep things simple as possible. WordPress is an all-in-one solution and it has much more features than I require for my personal blog. It's somehow overkill for what I needed and you gotta have at least locally, a webserver with a database in order to use it.

Previously I used a docker container to run my website locally and used HTTrack to "export" it to HTML so I could host on GitHub Pages (read more here). Since I started to blog again, I began looking for an Office-like solution to export my blog into a static format out of the box.

Initially I liked the idea of a headless CMS, sort of an API-based CMS. I found great options such as Netlify CMS, Ghost.org and Directus.io that you could integrate with a framework such as Gatsby or Hugo. They do require some work to get started and you would still have to run a webserver with a database to have a functional website. Not the simplest solution I figured, so I continued my journey.

Later that day, I finally encountered what I wanted: a static CMS generator, named Publii. I downloaded the AppImage and gave it a shot.

Honestly I was surprised how complete the software was for a project that has just started. Google’s AMP (Accelerated Mobile Pages) support by default not even WordPress has for example. It has everything you expect from a CMS such as posts, tags, authors, etc, although it does not have thousands of themes and plugins.

Since I was not looking for a highly customizable solution, Publii just felt right. I can write my posts on my laptop and everything is saved to a folder on my Documents which is copied over to a cloud backup service. In case I need to edit my website elsewhere I don't need to install tons of packages and run services on tcp ports.

Publli has a WordPress Importer so migrating my posts was straightforward. It also natively exports to GitHub Pages, Amazon S3, SFTP and more, so once you're ready to publish your changes or new posts, you can do it in a click of a button.

There were only 4 things I missed when using Publii:

  1. You can't change the posts url to a date-based format, such as "/2020/02/my-post/".
  2. A spell checker, but it's planned for future releases.
  3. No "page", every content is a post. You need to hide the post from the homepage and disable comments, author box, etc, so a post can feel like a page and be used as a page.
  4. No redirection manager, you must rely on your hosting or a reverse proxy to redirect posts and pages if necessary.

The rest works out of the box and is quite intuitive. As it exports a completely static website, it will be likely faster than a regular CMS such as WordPress, certainly cheaper and easier to maintain and you still own your data.

Northon Torga

Northon Torga

Security Analyst III @sucurisecurity. CTO @goinfinitenet. Qapla'!