I first started using WordPress before it was even called WordPress. It was called b2/cafelog back in 2004. It was technically my third foray into the web after HTML, CSS, and Microsoft Front Page. I wanted to learn how to publish a website that could be updated by someone who didn’t know HTML. I’ll also admit that I managed to take a couple year Adobe Flash diversion and a commercial Drupal job. Although I’ve worked with a bunch of other content management/publishing systems and I’ve worked with a number of other technology stacks , which you can see @ https://davidwindham.com/#what. I’ve always had a WordPress project or two going on. It’s now so widely adopted in web publishing that I can depend on projects coming in.
WordPress Now Powers 40% of the top 10 Million websites, 51.8% of the top 1000 websites worldwide, and 66.2% of all new websites are built on WordPress.
~ https://wordpress.org/news/2021/03/the-month-in-wordpress-february-2021/
WordPress is not always the right fit and it certainly has limitations alongside of PHP. I’ve found that WordPress works for a majority of simple web publishing and I’ve kept with it. I’m privy to think that WordPress, alongside of PHP, will have niched out a spot moving forward alongside of the JavaScript world. I’ve found the API powered headless WordPress sites a bit less cumbersome, but there will be place for those too in the near future. I’m really just surprised that Google, Microsoft, or Amazon haven’t carved out some widely adopted publicly available web publishing tool yet. I’m sure it’s coming and I fully expect a browser based drag and drop sort editor, functionality builder, publisher, database manager, and email systems admin that’s easy to use.
I think that the real backbone of the internet are the web standards as specified by the W3C and somewhat adopted by browsers. I think school kids should be learning the fundamentals of programming, programming languages, networking, and how the internet operates. They’re being thrown into a world of communications technologies before they can really understand them. That’s another topic all together though. Regardless to say, I’ve developed some solid opinions on the good and bad of WordPress and I’ll lay em out here. At it’s core, WordPress is a simple system that allows folks to store code, documents, and files for folks who don’t know how to connect to a web server or write HTML. It solved my very first problem in that it allowed me to install it for others and give them a way to publish and edit documents online. It’s not far off from that today. The magic that has made WordPress work is that it’s open source.
Web Applications
The applications of your website are a key element that often goes overlooked. It’s what has really made my skillset a valuable asset even though I have a background in visual design. What does it do? How does it function? What can it do? A website is not essentially the same as publishing a brochure online. I could repeat that over and over. I think you have to ask yourself what do you want it to first. Make you money? Provide public relations? WordPress is guilty and limited here in that the general design is that of a publishing platform. And although I can bend it every which way but loose, it’s often not a good fit for handling customer data, sales data, and so forth. However, it can be used to communicate with customers, collect information, provide timely information, archive information, etc. The key words there are information and communicate because the database is organized around storing only one type of data which it calls ‘posts’. And while you may call these ‘posts’ anything you’d like, sometime they’re not suited to handle the more complex queries of larger datasets that involve calculations and computations.
This does not mean that WordPress isn’t perfectly capable of handling an assortment of other applications like an e-commerce application, membership based sites, a mobile application, or customer relation management. I’ve paired WordPress alongside of Laravel, Ruby on Rails and Django applications to handle and assortment of more complex tasks. You just have to ask yourself what you what your website to do first and not expect the web publishing framework to be best suited for every application.
Web Design
Web design is a study unto itself in communications and I always tend to think about the Law of the Instrument.
I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.
~ Abraham Maslow – 1966
I’ve noticed that when you discuss web design with anyone, they always use other examples of web design as a point of reference. I tend to think a bit further outside of the box in that regard. However, at the same time, I tend to be a traditionalist because it’s really about effective communication. Being effective relies on the ability of the viewer to understand what is going on. I always say “I can make it look or do anything you want, but I’m recommending this on experience”. I used to work for an agency that had a strong emphasis on design and we really pushed the limits. WordPress tends to confine the average developer into some basic constraints based on how it’s built and it can hard to break out of these. The Gutenberg editor has pushed it forward quite a bit and I think that full site editing using blocks will push it even further.
Themes
I subscribe to the school of and separating out your application logic and controllers from the presentation layer. It can apply to WordPress as much as any other software system or programming. Most popular programming languages have MVC frameworks ready to roll. The WordPress theme should define the View logic of the website. There is absolutely no need for your theme to be adding database tables to your WordPress install. I understand the need for some basic theme options, but all other actions are better suited to a plugin. Many themes just throw the kitchen sink at the end user and that doesn’t work either. There is no need to load 30 different CSS and JavaScript libraries on a page that uses none of them. I prefer everything to be succinct. I also think that matching the front end to the editor is the easiest way for the end user to understand the design.
Plugins
Plugins, plugins, plugins. I ran into a client at the grocery store one day and he said “can’t you just install a plugin for that”. Although the plugin system for WordPress is part of what makes it so powerful, it’s also an Achilles’ heel. Folks tend to abuse the ability to install third party code. My attitude is to try and keep it as slender as possible without having to re-engineer the wheel. There are some stellar plugins out there, but the vast majority of them are just bloat. Not sprinkles on your cupcake bloat, but more like bedazzles on your steering wheel. Perhaps that’s good for some folks and the ability to do so is important. However, if you want a sustainable long term web publishing solution, I”ll be the first to caution you about using lots of plugins.
Maintenance
A WordPress website requires regular tune ups just like your automobile. This may involve optimizing the database, reviewing the error logs, upgrading the host, or rewriting functions. I’ve seen too many folks deep into a mess that they just want to “start over”. I’m usually able to salvage that step, but there are a number of serious maintenance considerations to have in place if you’d like to maintain a well oiled website.
I could likely go on ad infinitum here with my opinions, but I’ll just come back to this page on occasion and edit it as I see fit.
References:
- b2/cafelog – http://cafelog.com/
- Microsoft Front Page – https://en.wikipedia.org/wiki/Microsoft_FrontPage
- Adobe Flash – https://en.wikipedia.org/wiki/Adobe_Flash
- Drupal – https://en.wikipedia.org/wiki/Drupal
- WordPress News – https://wordpress.org/news/2021/03/the-month-in-wordpress-february-2021/
- W3C – https://en.wikipedia.org/wiki/World_Wide_Web_Consortium
- Law of the Instrument – https://en.wikipedia.org/wiki/Law_of_the_instrument
- Achilles’ heel – https://en.wikipedia.org/wiki/Achilles%27_heel