January 14, 2020
Why even talk about it? I just started a new job that is much different than my previous. I was working in 3 codebases with mostly the same tech stack; now I am working on a plethora of projects in different codebases. Primary environment we work in is Wordpress. Never worked in that before.
I’ve had to come to some realizations on this because I never really wanted to work in Wordpress before, but I also never really understood Wordpress as a developer.
Why Wordpress? Well it’s a CMS (content management system). Content as in the stuff on the pages: words, text, nav, menus, pictures, etc. As a developer I could develop any page or make content changes on the most granular level. My client that I am handing this app over too wants to make those changes In the future but they can’t make those changes without the management part of CMS. Wordpress has the fundamentals setup for my clients and lets me make the granular changes too. The difference is that I can’t make a bunch of one off fixes or changes. I, as a developer, have to think of the end result and the best method for the client to manage it without me. Wordpress is mostly in PHP, which is doable, but not very fun. I’ve been working in React and Gatsby and Node, etc. It has felt so free and open, at least much more than I’ve felt working in PHP. The built in building blocks of Wordpress on the surface look and feel really nice. After using them in multiple real life situations and it gets tedious, and clunky. There is only terrible documentation that gives examples out of context, and no full Wordpress site examples that are well written. It also seems that PHP developers for Wordpress are set to stay there, in PHP, not learn new ways of doings things. Yes this probably is wrong but listening to podcasts, reading tutorials and docs and watching videos has brought me to this conclusion. I just feel like Wordpress is living in the past! You can have React on the frontend! Yay! You have to use the Wordpress API though. Nay! But you can modify it and add your own endpoints! Yay! But I haven’t figured that out yet. Most things are given to you already, like all the pages, and posts, etc. But the menus are not. You have to get a plugin, or really learn how to do it on your own so you don’t rely on all the nasty plugins. So far I’ve been successful but its been a little bit of a pain. You can make your own plugins, in React! So I’ve made a plugin for a site at work to allow users to added photos and text on the photos directly in the editor layout. And move things around and it looks exactly like it would when it is rendered for the site. Much better than trying to use all these advanced custom fields and making long templates to check for rows and rows in the database. I get it, and it was easy to setup those advanced custom fields but it isn’t very intuitive to what it will look like when it is rendered. Take Aways Wordpress feels old and it is. Feels overly and underly developed at the same time (complicated where it shouldn’t have to be, fancy features where I haven’t needed them yet). It has the ability to allow me to make some cool stuff, and make some money. I already was contacted to make a Wordpress site and get paid some nice chunk of change.
Worth looking into. Worth helping develop and document for other’s sakes. Worth learning and making something better.