Why I Swapped My Wordpress Blog for a Custom Laravel 4 Blog

Posted by Steven Richardson on December 24, 2013

Over the years I have tried many different CMS’s & frameworks for my site. It wasn’t because they were all bad and I had to keep changing, it was mainly to enable me to explore the different CMS & frameworks.

My first site was built on Wordpress way back at version 2.5, I think. And it was great, simple user interface and simple development but I knew it was lacking something. I moved on to several other systems including Joomla, ModX and back to the latest Wordpress but what I found frustrating the most about Wordpress was my inability to add custom functionality without a plugin.

I then swapped my portfolio part of the site for a custom site built in CodeIgniter 2.1 which was awesome, it was fast and very easy to customize they way I wanted it to work. The problem with this was I was now maintaining two sites, two themes, two versions of essentially the same CSS and JS. This wasn’t the biggest problem; I couldn’t handle the sudden slow loading of the site.

I November 2013 I attended the Handheld Conference in Cardiff for web developers where for the first time I tried a device lab with my site. This was a real eye opener for me as my site never worked. At all! On first load of the site it appeared to crash, further looking showed my site was completely down. My server was crashed and wouldn’t restart. I was really annoyed because granted it is not a huge powerful dedicated machine it is still a decent VPS with loads of RAM and two cores, surely a device lab wouldn’t crash it.

I investigated this and found I had some legacy plugins in my Wordpress site that were using too many resources and not properly optimized. I went ahead and stripped out all the garbage I didn’t need and moved my site onto NGINX and PHP-FPM. This was a huge increase in performance as my app response time went from 500ms to 75ms as illustrated in New Relic.

I thought I was done with it then along came Laravel and landed in my lap. Here was everything I dreamed about in CodeIgniter without the headaches. I immediately wanted to try it out so I refactored my site in Laravel leaving CodeIgnter behind like its creators Ellislabs done earlier in the year.

While I was too excited to get the site up and running I never gave my blog much thought. I wasn’t sure how I would fit in the Wordpress site to my shinny new portfolio then a colleague suggested I just build the whole thing in Laravel, including the blog.

Now I am definitely not one for reinventing the wheel but the more I thought about it the more I realized this wasn’t a bad idea, I mean there wasn’t much in the Wordpress site that I used other than posts. I figured lets create this from scratch its just one controller, one model and the templates, which I already have. Creating an admin section of my site was so easy with Laravel’s built in authentication library.

So I did it, rebuilt my entire site in one application, refactored some of the JavaScript to remove third party calls that Wordpress wanted to do. I added Incapsula for the CDN and page caching and voilà I got my app response time down to 35ms with a total page load time of 1.02s from the original 4.3s. 

I am not saying Wordpress is bad at all. Its far from it and its truly is the best blogging platform there is I just decided to weigh up my needs over my wants when it came to my site. I believe if you can build something that will perform faster, even on a mobile connection over a bloated CMS then build it. Your readers and users will be thanking you for it.