July 24, 2017
In my last entry, I wrote about a challenge I faced in a WordPress project. That project was an online store for a soap maker who also happens to be my wife. Hazel Valley’s online site was a lot of firsts for me. It was my first e-commerce site, my first WordPress site, and it was the first time I didn’t write the code for a project from scratch. After all is said and done, building a website this way was a mixed bag of pros and cons.
Building a WordPress site is fast. WordPress handels so much out of the box that I had that online store functional in just a couple of hours. The rest of the time was spent going back and forth on design decisions, pricing structures, and aesthetics. There is a large enough library of WordPress plugins available for free that you’d be hard-pressed to find a case that didn’t already have a solution built for it.
Getting a WordPress site started is easy. Because WordPress is so ubiquitous there are tons of hosts that offer automoted installs and configuration. Of course what you gain in ease of use you lose in customization, but the process couldn’t be easier.
With WordPress all of the site architecture and data modeling is done for you. If you have a clear idea of how you want objects to relate to each other, it’s easy to get WordPress to do almost what you want. You can then focus almost exclusively on content and presentation. Ultimately this is what your clients will see, so it’s nice to spend some extra time on the front-end of a site.
WordPress is huge. The popularity that has led to WordPress being easy to use and multi-faceted has also led to it being a massively bloated application. In a web where every megabyte of storage costs money, that bloat isn’t free. In this particular case I was adding a subdomain onto an already existing account, but for a client starting from scratch the long-term cost of hosting such a large application needs to be compared with the up-front time it takes to write a more streamlined custom app.
WordPress is slow. The bloat that makes WordPress versatile doesn’t just cost money, it costs time. Performance bottlenecks are tricky to isolate and improve in custom apps, and the problem gets bigger the bigger the application. WordPress is so large that it’s unrealistic for a solo developer to optimize on a normal development timeline. If lightning-fast load times are a priority for your project, WordPress is probably not the way to go.
WordPress forces you into a box. At its core, WordPress is a blogging platform. Everything else—WooCommerce, ProPhoto, etc—is built on top of an app intended for publishing articles. Earlier I said that it was “easy to get WordPress to do almost what you want.” Getting past “almost” was difficult. Not as difficult as writing an e-commerce site from scratch, but difficult enough I set up a virtual machine to figure out why a behavior I wanted wasn’t working.
Every project has its own requirements. If development speed and ease of use are more important than optimized performance or customized features, WordPress is great. While this tradeoff may be worth it commercially, I don’t see myself using WordPress for any future personal projects. The part of development that’s fun for me is crafting new solutions to interesting problems, and WordPress doesn’t allow much room for that.