I really have a place in my heart for WordPress. It’s always there when you need it, and even when you don’t want it. But it’s there.
The problem? It is simply too big, bloated and slow. The number of attempts I’ve had from bots out there to break in to this installation to use it as another one of their spam zombies or phishing hosts is incredible. WordPress is a target, and it’s a pretty good one to hit. There are millions of old, outdated, and generally ignored installations out there.
I tend to keep my installation fairly well maintained. Always up to date, backed up, no old / junk plugins etc. but ultimately WordPress is still slow, clunky and just downright painful.
So, My Plan
The plan is to build my own thing, from scratch, using Laravel. But I’m going to push myself a little bit here – I’m not going to use Bootstrap.
I’m going to use Foundation (by Zurb, which is an amazing name). Recently I’ve gone through a job application process and managed to convince a lovely local company to hire me. During the process I found out they use Foundation, and after managing to hack something vaguely ok for the coding test, I promised them I’d learn Foundation ahead of me starting there next month. Over the past few weeks I’ve been doing just that, but its time I stepped further from just throwing together little fun things and actually built a proper project using it to really get to grips with it.
What It Needs To Do
First – it needs the ability to have posts. Of course. These will be stored in a MySQL database in markdown, and I’ll then use Parsedown to, well, parse it and turn it in to HTML.
I’ll also include categories and the likes in this bit since posts are put in categories.
Second – images. This shouldn’t actually be too hard. So at the moment, I have a plugin for WordPress called Featured Image Generator. This allows me to browse through photos on Unsplash, pick one, and then automatically crop it to the perfect size from the centre. I can fiddle with it if I wish, but for the most part, it works fine. Using something like Intervention Image should actually make this pretty simple.
From there, once the image is generated, I’ll be using BunnyCDN (yes, this is a referral link) to store and deliver, not just images, but all CSS / JS assets too. BunnyCDN is an amazing CDN, and its very very nicely priced.
Third – redirections. Yes, I use redirections for things such as the BunnyCDN affiliate link above. This allows me to track, myself, how many people I send to that link but also means that if that link ever needs to change in the future, I only need to update one place and not all blog posts that contain the link. Nifty.
Fourth – search. Yes, turns out people use search to find posts on a website. Who knew? Search must be a thing, and for that we have Laravel Scout backed by Algolia. I love this combination having used it in the past, so I’m going to use it again because that’s how original I am.
This section also includes tagging and whatnot. Though I’m not sure how much I’ll make use of tags since indexing the actual content may produce more usable results. Who knows.
How It Needs To Look
How It Needs To Function
So, In Conclusion
It’s going to be a fun project, let’s do it.
Also, yes. I do realise I just made this post on WordPress. Don’t @ me.