I hate it

Write your answer…

10 answers

I work for 10up, an agency with some big name clients and one of the biggest contributors to WordPress core. Our team loves WordPress, and it continues to be at the center of almost everything we build.

When you work with WordPress, you need to accept it for what it is. It's a CMS that needs to run on a variety of hosting platforms, from a highly scalable, redundant, distributed platform like WordPress VIP down to a $5/month shared host. It needs to support sites built by well-trained engineers who scrutinize every line of code they write for performance & security issues, and it needs to let an amateur bash together some plugins & a free theme to put their business online. Any system that needs to work in such a wide variety of circumstances is going to have compromises.

We rarely use off-the-shelf themes or plugins, and when we do we subject them to an intensive audit. We start with the WordPress Coding Standards for PHP Code Sniffer and move on to a manual review of the code. We only use something if it meets our standards. If it doesn't, we reach out to the original author to see if they'll merge our changes in so everyone can take advantage of our improvements. If not, we'll fork the code so our clients can feel comfortable with the code behind their site.

Our custom code is expected to follow our Engineering Best Practices, which we enforce through code reviews.

WordPress itself has a concept of an Object Cache, where it will store query results so it's not hitting the database constantly. And plugins & themes can take advantage of this feature as well. We prefer memcached for our Object Cache backend. We also tend to use Batcache, a lightweight full-page cache which uses memcached for storage. Of course, it's really best if page requests can skip PHP entirely, so we often add Varnish or Nginx micro-caching to the mix.

WordPress's native search is built to work with a stock MySQL install, so it doesn't get too fancy. So, we've built ElasticPress which connects WordPress to an ElasticSearch no-SQL database and uses it pretty much anywhere WP_Query is invoked. This gives us a highly-performant query engine and the ability to do things like geolocation search results, weighted relevancy, and Unicode normalization for words with accents.

PHP 7's runtime engine gives WordPress a huge performance boost, and there's very few reasons to be running 5.x anymore.

We use tools like New Relic to see exactly how our code performs at scale and tweak things that need it. We've also built our own tools to give New Relic insight into WordPress internals.

And it's not necessarily a performance improvement per se, but building React front-ends that access WordPress through its REST API lets us improve the perceived performance. It also lets us turn our front-end engineers loose building fun, modern web experiences. We're proud of the React-based site we built for WAMU public radio. I remember when having a persistent music/radio player on a site meant using an iframe! It wasn't that long ago!

On the subject of front-end development, we've open sourced a WordPress Component Library enabling rapid development of performant, accessible front-end code on WordPress.

Clients love the WordPress admin experience, and we've built a lot of custom editing experiences that make it easy, maybe even fun, to publish content on the web. Often, these customizations involve React or rely heavily on custom JavaScript for the kind of modern experience people expect. But at the heart of the experience is the same CMS they use to publish pictures of their dogs. So it's familiar and approachable.

I'm the first to admit WordPress has its flaws. But we've used it to build some pretty exciting online publishing platforms over the years and will continue to use it as long as it delivers value to our clients.

For anyone else that reads this, you should also check out how Dave ties functional programming in PHP together with WordPress. It's awesome.

Reply to this…

Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!

  • 💬 Ask programming questions without being judged

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 More than 500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Create my profile

I hated it for years and years. Still do - anytime I see any website > a restaurant website or actual blog, I criticize for using it.

3 or 4 years ago, I was going for a job interview on Monday - it was a Thursday or Friday when I scheduled it. They specifically wanted WP experience. So I spent the weekend learning it; built a sample website - a Pizza review blog. I made a custom theme, couple custom plugins, installed some plugins, did some custom queries, etc... Enough to show them I knew what I was doing and could learn easy. I got the job, lol...

In the years since, I've built probably 20-30 WP websites. Some at that job, a lot freelance.

If WP is ALL you know - keep diversifying. If you know WP plus can work in PHP by itself or with Laravel or frontend or server admin - WP can be great for making a quick buck.

So true! WP is my go to solution for low effort income.. Its not complex and low traffic clients don't really care if you've built a complex Angular/Vue/React app if all they want is just a 5-page website!

Reply to this…

Wordpress is a misunderstood product. Wordpress is an MVP machine.

Show me any other framework that I can hand to incompetent web developers and have them build an entire web community. No SSH, no dependencies, just a fast 5-minute install on any server with PHP/mySQL (_which is way more than Node_). Been in a cave for 5 years as a web dev? No problem, just spin up your old LAMP and go.

There's no way any other library or framework has that kind of flexibility, with a robust marketplace for free and paid extensions. If you need any functionality, there's probably a Wordpress plugin for it (ACF, WooCommerce, etc), or it's built in to the core (REST API, user login/registration, commenting, etc).

Are you building an enterprise application at scale that connects to a myriad of platforms? Need a load time of less than 2 seconds? Go build it in whatever framework is best for your company.

Are you building a landing page + blog for a company that's either tanking in two years or redesigning anyway? Don't waste your time making a custom stack with your own scripted admin panel and whatnot -- slap Wordpress on that server with a few optimization plugins and watch how comfortable the client gets managing their site. Especially when they want a new feature but they're too cheap to pay for it, they'll love the ability to install a plugin and run with it.

And that's not to say Wordpress is only for simple sites. There are plenty of projects that run WP at scale by leveraging technology like Memcached, Redis, CDNs, and MVC-style React based themes. _However_, I'll be real and admit that getting Wordpress to scale requires hacking the core and dropping a lot of plugins (since they're all so poorly written, they slug down the site).

If I had to make a new web app, and the budget allowed for it, I'd pick another CMS/framework.

TLDR: If I had a client who was high standards and a low budget? I go with Wordpress.

Getting WordPress to scale shouldn’t require any hacks to core. At 10up, we build sites for some of the biggest names out there. But I agree you need to drop a lot of plugins.

We open sourced our Engineering Best Practices a couple years back, and our Systems team is working on something similar explaining how we set up hosting for clients. You hit the nail on the head: memcache is critical. WordPress will use it internally for its Object Cache, and a full-page cache like Batcache will serve pages out of it.

Reply to this…

me 2 but I understand if people specialize in it -> low effort high income when you're trained in it. you can always find plugins there are millions of templates and so on.

I still hate it, still I understand that webagencies specializes in it and here's the thing .... most companies don't care if their homepage is a hack on a hack on hack on hack based on a prototype written 17years ago .... or as other people would call it .... wordpress .... btw fun fact this also is true for pip the python package manager and the C library integration ;D ....

anyhow .... customers don't care, so you don't have to care or switch to drupal or somthing similar.

Reply to this…

I think the answer is: It depends. Personally, it is NOT my "go to" solution. I still shudder at having to support a multi-user WP site. It feels like a bit of a witch's brew finding the right balance of a security, speed, and ease-of-use. I can't knock it, though. There's a reason why it's powering more than 25% of websites in the world. Content is king and WP makes it really easy for content creators to get their stuff published.

Reply to this…

Load more responses