DEV Community

Cover image for Why I Built a WooCommerce Product Configurator Without React or jQuery
iDev-Games
iDev-Games

Posted on

Why I Built a WooCommerce Product Configurator Without React or jQuery

When most developers build a WooCommerce product configurator, the frontend quickly becomes the hardest part.

You start with a few dropdowns.

Then the requirements arrive.

  • Hide options based on previous selections.
  • Update prices instantly.
  • Support image swatches.
  • Validate required options.
  • Show and hide sections dynamically.
  • Keep everything responsive on mobile.

Before long, you've built a miniature frontend application inside a WooCommerce product page.

Most plugins solve this by shipping a large JavaScript runtime.

I wanted to see how far I could go without doing that.

The Problem

WooCommerce already gives us something valuable:

  • Server-rendered HTML
  • Excellent SEO
  • Familiar PHP hooks
  • Progressive enhancement

The last thing I wanted was to replace that with a client-side SPA.

Instead, I wanted the page to stay server-rendered while still feeling reactive.

The Goal

The goals for Woo State Configurator were surprisingly simple:

  • No jQuery dependency.
  • No React.
  • No Vue.
  • No layout shifts.
  • Instant UI updates.
  • Server-side validation.
  • Fast enough to preserve Core Web Vitals.

The Result

Woo State Configurator uses a lightweight reactive engine to drive interface behaviour without turning the page into a single-page application.

That means product pages remain HTML-first while still supporting:

  • Button selectors
  • Dropdown selectors
  • Image-grid selectors
  • Image swatches
  • Live pricing
  • Conditional visibility
  • Dynamic pricing
  • Custom metadata

The page reacts immediately to customer selections while remaining lightweight.

Performance

Performance wasn't something I measured afterwards.

It shaped the architecture from the beginning.

The current uncached product page achieves approximately:

  • Largest Contentful Paint (LCP): 0.57 seconds
  • Cumulative Layout Shift (CLS): 0.00

Configurators often suffer from layout jumping as fields appear and disappear.

Avoiding that was one of the primary design goals.

Server First

One thing I refused to compromise on was pricing.

The browser updates prices instantly for a responsive user experience.

The server independently validates every configuration before the product reaches the cart.

That means the frontend improves usability without becoming the source of truth.

The Live Demo

Rather than building a separate showcase, I decided to let the plugin demonstrate itself.

The Woo State Configurator product page uses Woo State Configurator for its own licence selector.

Every option you click is powered by the same plugin available for download.

Why I Think This Matters

Frontend development often assumes every interactive interface needs a heavyweight framework.

For many WordPress sites, I don't think that's true.

WooCommerce product pages are fundamentally server-rendered documents.

The job isn't to replace that architecture.

It's to enhance it without sacrificing performance, SEO or maintainability.

That philosophy shaped every decision behind Woo State Configurator.

I'd genuinely be interested to hear how other developers approach reactive WooCommerce interfaces without defaulting to a full frontend framework.


Links

🚀 Live Demo & Woo State Configurator Pro

https://plugins.idevgames.co.uk/product/woo-state-configurator/

🆓 Download Woo State Configurator Free

https://plugins.idevgames.co.uk/product/woo-state-configurator-free/

⚙️ Built using State.js

https://github.com/iDev-Games/State-JS

Top comments (0)