skip to content

Search

Part I: What are you talking about?

2 min read

Marketing sites can be a lot more complicating than they might sound, especially for enterprises. Let's explore how it's done right. WordPress doesn't have to equal WordMess.

Introduction

My first experience with WordPress involved sloshing through a toxic stew of old WooCommerce code. Rotting code is not easy to navigate, but the reason for the platform’s success quickly became obvious. It’s because product owners like it. Engineers might build storefronts, but marketers build businesses.

As a technical product? WordPress isn’t great for a lot of reasons (most of them misunderstood), but it’s a powerful tool for product owners — and it still is. You can get a shiney new headless CMS powered by a cloud provider like Contentful, but that comes with a bag of worms, especially if you have a lot of content. WordPress is still a powerful product, even if it has a truly terrible reputation.

There is a good way to do things

WordPress developers aren’t bad, WordPress conventions are bad. Believe it or not, there is a good way to create WordPress at scale. In other words, you can give marketers the power they want without being nickle-and-dimed by cloud vampires.

Structure it the right way and it won’t be a rotting toxic stew of annoying code no dev wants to touch, too! That’s the goal. A clean, flexible marketing site (with all the rich UX goodies modern designers and consumers expect) with WordPress as a backend. It actually isn’t easy, but I’m here to shamelessly share all my secrets!

What we’ll be building

  • An MVC-style, Component-driven theme: Forget WordPress’s partials and templates. That becomes a mess. Instead, let’s make truly decoupled components with separate “models” and views. We’ll dive deeper.
  • Blocks by Default: Not only can we build components into dedicated views, we can render those views into blocks. The same component can be used in static pages or as stand-alone blocks with ease.
  • Client Side React with Blocks: Someone silly decided that the only place WordPress should (currently) touch react is with the admin block system. It makes zero sense. We’re going to fix this, too. Our components can be hydrated with react…while still controlling all fields inside the WordPress admin (probably using ACF). Welcome to 2025, Wordpress. Yes, we can make rich UIs without fully decoupling and going headless.
  • Proper Content Migration Strategy: Most projects don’t start from scratch, they need to migrate content. This isn’t as easy as it sounds with WordPress. Instead of being a headache, a solid content migration strategy can become a huge asset, but it isn’t often discussed. Plugins will simply not work, so let’s review.