For the past couple days, I have been researching static site generator alternatives to WordPress. After taking a closer look at Jekyll and Pelican, I decided on Pelican – a Python based static site generator.
Why Stop Using WordPress
For my personal site, I figured I would never be doing e-commerce on it, so why keep on using a bloated PHP monster, a.k.a. WordPress? Sure, adding widgets and sidebars is easy with WordPress, and uploading images to create galleries is incredibly easy, but there’s just so much security risk using the world’s most popular CMS, written on a highly targeted programming language, PHP.
There are constantly plugins being compromised, and there are constant core updates to WordPress, for the sole reason of patching security holes. I’ve spent over five years learning new things about WordPress, trying harder and harder to fortify my server setup and my sites, but it never feels like enough (even though I haven’t been hacked yet).
PHP is a bloated language that takes a large amount of server resources. Want to run a WooCommerce store on GoDaddy shared hosting? Good luck! The site will very likely crash time and time again, because there just aren’t enough resources for it.
Static site generators simply generate HTML, CSS, and JS code to be read by your viewers browsers. Simple. Crazy fast. Efficient. Can be run on cheap shared hosting with no issues.
So why did I change my mind? I started looking at what I do on each of my websites. What’s the main purpose of each of them? How do my websites make my life personally and professionally easier?
First of all: image uploads. Being able to simply drag an image file to the browser, give it an alt and title tag, and have WordPress generate scaled versions in the background is something that would take many, many times longer. I’d have to do the scaling myself, upload the file via PHP, and then manually enter the file url, and the alt and title tags.
Secondly: staying connected. My blog sends out a weekly digest of the posts I’ve written, all automatically. I have to do nothing – and it’s free. If I wanted to achieve the same thing with a static site, I would have to use an external service like Aweber, and even then, I’d have to figure out how to have Aweber pull the recent content from plain HTML pages.
Also, expandability. Sure, I don’t want to sell anything on my website right now, but what if I do in the future? It would be as simple as installing WooCommerce and adding products. Static Sites also lack comment functionality. I could use Disqus, but I don’t like their insidious marketing tactics. If you’re going to see a service or product placement on my site, it’ll be because I think you can benefit from it.
So, WordPress for Now
I’ll be sticking with WordPress for now, since it is utterly convenient, and it gets the job done for me very well. I will be looking into more security techniques, including having php-fpm run each site as a unique Linux user, so that I can mix SFTP capability with a secure backbone. More on that later.