Before my recent exposure to the world of content management systems (CMS), the thought of developing a website using WordPress seemed unwieldy and unbecoming for a developer. But WordPress is popular, very popular, approximately 33% of websites use wordpress, that’s around 66% of all CMS use.

It’s understandable for users to request an easy interface to add content to a site, and not every developer has the experience or the time available to create bespoke solutions for every client. So when it came time to create a website with the requirement of wordpress as a back-end, I had some catching up to do. Using Twenty Nineteen as a reference, I set off to create this wordpress Theme. This time we decided against headless CMS, but let’s see what tomorrow brings.

For me, having to accept programming languages or paradigms that I wouldn’t necessarily choose was enough to abait my interest in WordPress, and don’t get me started on plug-ins.

But like most developers, I have dealt with a lot of PHP and although it’s not our favourite, it’s very familiar and it just works. In fact, a video) peaked my interest in PHP once again, the creator of PHP spoke on the recent improvements to the language. Performance being a critical component of current development, not surprising for a project written in C, of which I also have some experience. PHP is not alone in it’s aspirations of improvement and modernisation, WordPress recently released Gutenberg, the new default page builder. Although it’s caught some mixed feelings online, I am quite interested in it’s progress.

Gutenberg bases it’s layouts on “blocks”; small modular elements that developers can easily integrate as plug-ins or baked into a theme. They’re like tiny react components that drive the back-end user configuration, rather than the user experience, I think that’s quite a novel use of these modern front-end frameworks. Developing a block is very straightforward, especially for those with javascript experience, although I definitely recommend using a build system to utilise the latest ESX syntax and JSX, otherwise I just get lost in calls to createElement.

Using blocks is even easier, the admin interface looks more like a word processor than a CMS. After the mandatory header/footer combo, creating high quality blocks for my interface meant that I didn’t have to go digging into a PHP template too often. No one wants the end user to have to wrangle with hundreds of shortcodes. There’s no headache inducing menus in the admin editor, I actually wince when I see the classic editor, It can’t have been easy to build all those and they’re definitely not fun to use.

Honestly, I’m looking forward to the next one. It’s never going to compare to getting stuck into a PWA or native solution to a complex problem (research or business), but wordpress has its place and I’m beginning to see why.