Announcing WP Rig v3.4.2: Built for Speed, Style, and Submission

The WP Rig team is thrilled to announce the official release of WP Rig v3.4.2!

WP Rig has always been the premier developer-first starter theme and build system for WordPress. With v3.4.2, we’re taking performance, layout sophistication, and theme compliance to the next level. This release introduces game-changing server-side rendering speeds, cutting-edge CSS layouts, and powerful local auditing tools designed to get your theme into the official WordPress.org Directory on day one.

Here is a look at what makes WP Rig v3.4.2 our most exciting release yet.


1. Blazing-Fast Server Speeds with Block Manifests (Issue #936)

Bespoke block-based WordPress themes often suffer from a hidden bottleneck: runtime filesystem scanning. On every page load, WordPress has to scan directories, locate individual block.json files, and parse them with CPU-intensive JSON decoding.

WP Rig v3.4.2 completely eliminates this runtime overhead by integrating with modern WordPress 6.7 and 6.8 Block Metadata Collections.

  • Pre-Compiled Manifests: During npm run build, WP Rig compiles all your block configurations into a single, high-performance PHP file (assets/blocks/blocks-manifest.php).
  • In-Memory Performance: Because the manifest is a native PHP array, it caches directly in your server’s OPcache. WordPress reads your entire block library directly from memory almost instantly—completely bypassing the filesystem.
  • Resilient Fallback Pipeline: A smart 3-tier loader utilizes modern WordPress 6.8+ batch loading, falls back to WordPress 6.7 in-memory collections, and gracefully drops back to traditional scanning on older WordPress versions or local dev setups.

2. Viewport-Aware, Zero-Flicker Submenus (Issue #845)

We have resolved the long-standing issue of dropdown navigation menus overflowing the edge of the viewport using an ultra-modern hybrid positioning system:

  • CSS Anchor Positioning: For modern browsers, WP Rig uses native CSS Anchor Positioning to dynamically align submenus relative to their parents. This delivers absolute zero layout flicker and zero JavaScript execution.
  • Optimized TypeScript Fallback: For older browsers, a highly optimized Intersection Observer script seamlessly detects potential overflows and flips submenu alignment without taxing browser paint cycles.

3. Demystifying the Theme Directory: Local Submission Auditing

Passing the official WordPress.org Theme Directory review is notoriously challenging. To take the guesswork out of compliance, WP Rig v3.4.2 introduces an automated local submission readiness platform!

We have codified strict theme review guidelines directly into an executable suite of commands:

  • npm run audit:theme-review: Instantly checks your active theme for metadata accuracy, banned files, illegal plugin-territory code (like inline block registration), translation errors, and security issues.
  • npm run bundle:wporg: Compiles a clean, production-ready .zip archive—stripping all source files (src/.ai/, etc.)—and automatically audits the final zip to ensure it is 100% submission-ready.
  • wp rig review-setup: Integrates with WP-CLI to install the official Theme Check and Theme Sniffer plugins locally, configure developer runtime logs, and import the official Theme Unit Test data for comprehensive visual QA.

4. Developer Quality of Life & Polish

We’ve also packed this release with features to make your daily coding workflow faster and more enjoyable:

  • Locked Mobile Menus: Hold Alt (or Option on macOS) while toggling the mobile menu in block-based dev to lock it open. It will stay pinned to the screen even when browser Developer Tools steal focus.
  • Single Source of Truth Breakpoints (Issue #925): Define --mobile-breakpoint as a CSS Custom Property. It is dynamically parsed and shared by both CSS and TypeScript, completely removing magic numbers.
  • Variable Font Support: Refactored font handling natively supports variable fonts and optimizes Google Fonts query generation to ensure faster rendering.
  • Modern Workspace Alignment: Unified Prettier, ESLint, and EditorConfig rules; block schema validation; PHP-only block scaffolding for WordPress 7.0; and the addition of ergebnis/agent-detector to help AI agents adapt to your local container environments.

Try WP Rig v3.4.2 Today!

Experience the ultimate blend of modern developer tooling, server-side speed, and bulletproof compliance. Getting started takes less than a minute:

# Clone the repository
git clone https://github.com/wprig/wprig.git my-theme
cd my-theme

# Install dependencies and start the modern dev server
bun run rig-init:bun
bun start

Try WP Rig v3.4.2 today, and watch your build times, server-side rendering speeds, and theme audit errors vanish! 🚀


Love WP Rig? Support the project by starring us on GitHub and sharing this release with your dev networks!

WP Rig v3.4: The Composable Era of WordPress Theme Development

⚡ Executive Summary: The Evolution of WP Rig

Following our major shift to a modern stack powered by Bun, TypeScript, and Lightning CSS (completely removing Gulp for 10x faster build cycles) , and the introduction of our v3.3 Agentic foundation , WP Rig v3.4 officially moves us from a static starter theme to a composable development platform.

WP Rig v3.4 is one of our most foundational releases yet. If you build custom WordPress themes professionally, this release is engineered to make your day-to-day workflow faster, safer, and remarkably easy to maintain.

This version zeros in on three pillars that matter to modern engineering teams:

  • Performance as a Built-In System: Out-of-the-box optimization, not an afterthought.
  • The “A La Carte” Component Lifecycle: Reusable, shareable features powered by the new Open Component Registry (OCR).
  • Automation-Hardened Tooling: Enterprise-grade security and reliability for CI/CD and AI-assisted workflows.

The Strategic Objectives Behind v3.4

1. Performance as Core Architecture

WP Rig has always been a developer’s secret weapon for speed. With v3.4, performance moves directly into the core runtime via manifest-driven loading, smarter caching behavior, and cutting-edge font delivery techniques.

2. The Open Component Registry (OCR) Foundation

The headline feature of v3.4 is the Open Component Registry. Instead of regenerating common theme features or wrestling with monolithic starter themes, developers can now download or contribute “bolt-on” features a la carte.

Crucially, this supercharges AI-assisted development. Because OCR components contain predictable structural data, AI agents can effortlessly discover, pull in, and compose complex themes using proven building blocks.

3. Secure Tooling for Teams and AI Agents

As engineering workflows increasingly rely on automation, our CLI tools require stronger defaults. Building on the AI groundwork laid out in v3.3 (including MCP-oriented docs and agent setup scripting), v3.4 hardens command execution, sanitizes external data, and provides non-interactive flags designed specifically for AI-driven pipelines.

Detailed Breakdown: What’s New in v3.4

🚀 Performance & Asset Delivery Improvements

  • Cookie-Based Critical Asset Strategy: Delivers the absolute best of both worlds. The first page view inlines critical CSS above the fold, while subsequent views automatically serve cached external files.
  • Transient-Based Caching: Added deep caching for configuration retrieval and asset loading logic within inc/Theme.php.
  • FOUT Elimination: Reduced font flashing by defaulting localized fonts to font-display: block alongside automated preloading.
  • Manifest-Driven Navigation: Extended the Asset_Provider system to handle custom loading strategies, automatically delaying non-critical interaction JavaScript.

🧩 Open Component Registry (OCR) Built for Humans & Agents

  • Automated Discovery: Refactored core theme files to instantly scan, discover, and register independent components sitting in the inc/ directory.
  • Registry Scaffolding: New component generation automatically creates the necessary manifest.json, SPEC.md, and SKILL.md files.
  • Zero-PAT Workflows: Integrated public GitHub repository registry workflows so common fetches no longer require a Personal Access Token.
  • AI-Readable Knowledge Layer: The inclusion of SPEC.md and SKILL.md ensures that AI coding partners (like Claude, Copilot, or ChatGPT) understand exactly how to implement and wire up the component without “hallucinations”.

The new component registry is completely open-source. If you are interested in contributed a new component, you can find the repo here.

🛠 CLI Developer Experience (DX) Upgrades

Manage your entire workspace using the brand new npm run rig:* command suite:

CommandPurpose
npm run rig:listLists all currently active and available components.
npm run rig:search <keyword>Searches the Open Component Registry for reusable features.
npm run rig:test-component <slug>Runs the built-in diagnostic suite to validate namespaces and integrity.
npm run rig:prepare <slug>Replaces brittle automated submissions with a clear, manual contribution prep path.
  • The Automation Flag: Added a global --yes flag across all commands to unlock seamless, non-interactive CI/CD runs and flawless execution by AI marketing and development agents.

🔒 Security & Integrity Hardening

  • Shell-Injection Mitigation: Refactored CLI install execution to utilize spawnSync argument arrays.
  • Path Traversal Protection: The CLI now strictly sanitizes incoming manifest data including slugs, filenames, and asset paths.
  • Built-in Security Scanning: Integrated security validation directly into rig:test-component and provided OWASP-oriented GitHub Action templates.

How v3.4 Impacts Your Workflow

If you build client sites professionally…

You get perfect baseline performance out of the box—no heavy optimization plugins required. Your builds remain instantaneous thanks to our Bun and Lightning CSS core , and your initial loading states are highly optimized via native critical CSS generation.

If you are scaling with AI and Automation…

The combination of v3.3 agentic readability and v3.4 component structure means your AI pairing sessions will be highly efficient. You can prompt an agent to build a custom feature, and it will output an engineered, registry-ready component that integrates perfectly without breaking your site architecture.

Getting Started with v3.4

Ready to experience the composable era? Upgrade your repository and run through this quick checklist to benchmark your new workflow:

  1. Audit your components: npm run rig:list
  2. Test for registry compliance: npm run rig:test-component <your-component-slug>
  3. Check your performance scores: npm run test:perf

Want to dive deeper into the technical architecture? Check out our updated, AI-optimized documentation platform over at wprig.io (now featuring an llms.txt file mapping for your custom AI workflows!).

WP Rig 3.3

The Paradigm Shift Just Got Real.

WordPress theme development is at a crossroads. For years, we’ve iterated, optimized, and pushed the boundaries of what a theme framework can do. We built WP Rig to be the definitive rig—the strongest, most modern, and most performant skeleton for theme builders.

But a new force has entered the chat.

Artificial Intelligence. Coding agents. Builders that work alongside us, suggesting, writing, and debugging code at inhuman speeds.

The community has been asking: “How does my stack adapt to this new reality?”

We’ve been listening. Today, we’re doing more than just answering. We’re leading.

We are excited to announce the release of WP Rig v3.3.

This isn’t just an incremental update. This is a complete, frictionless merger between the industry’s most advanced WordPress framework and the most powerful tool in the modern developer’s toolkit: AI.

The Milestone: Total Agent Empowerment, Right Out of the Box

The headline of v3.3 is simple: You are now completely empowered right out of the box to use your coding agent of choice to build out themes with WP Rig.

We’ve removed the friction. Whether you’re partnering with GitHub Copilot, Claude, OpenAI’s GPT-4, or any specialized coding assistant, v3.3 of WP Rig has been optimized to “understand” and interface with these agents.

Your favorite agent can now navigate WP Rig’s modern build process, structure, and PHP/JS architecture with unprecedented clarity. This sets a new precedence in the WordPress community, making WP Rig the first framework of its kind to explicitly prioritize this new development workflow.

Beyond AI: A Look Inside the Most Modern Framework

WP Rig v3.3 isn’t just a partner for your AI; it remains, by design, the most modern and advanced WordPress theme framework available. We have refined every internal gear:

  • Optimized Modern Build Process: The legendary Gulp-based build process is leaner and more robust. We’ve shaved crucial seconds off compilation and optimization times.
  • Performance First: v3.3 features updated strategies for asset loading, image compression, and critical CSS generation, ensuring your themes score higher than ever on performance metrics.
  • A “Developer-First” Standard: The structure of WP Rig is a testament to best practices. We prioritize modularity, clear file structure, and adherence to the strictest WP coding standards. Your code (and your AI’s code) is built on a foundation that doesn’t just work—it shines.

How to Get Started with v3.3

We know you want to see this in action. The update is live and waiting for you.

  1. Read the Full Release Notes: Dive into the technical details and see the change log on GitHub.
  2. Download WP Rig v3.3: Use it as the starter for your next project.
  3. Fire Up Your Coding Agent: Point your agent at the new framework and experience the synergy.

Check out the Release Notes & Download v3.3 Now!

The Vision Ahead

This release is a commitment. We believe that the future of theme development will be defined by synergy—the combination of human intuition, powerful frameworks like WP Rig, and intelligent AI assistance. WP Rig v3.3 is our first major step into that future.

Many thanks to everyone who has embraced WP Rig. Your feedback, contributions, and belief in this project are what make these milestones possible.

Let’s build the next generation of the web, together.

WP Rig 3.2

WP Rig v3.2.0 Is Here — Build, Verify, and Ship With Confidence

WP Rig v3.2.0 has officially landed, and this release marks more than just another version bump. It represents a clear shift in focus: making WordPress themes easier to confidently ship.

Not just for agencies.
Not just for private client work.

This release begins a broader 2026 commitment to ensuring that themes built with WP Rig are better prepared for submission to the official WordPress theme repository, and better aligned with the expectations of the WordPress Theme Review Team.

WP Rig v3.2.0 is about helping theme authors catch issues earlier, reduce friction during review, and ship themes with clarity and confidence.


From Development to Delivery — With Fewer Surprises

Shipping a WordPress theme is about more than writing clean code. It is about answering difficult questions before a reviewer, client, or user ever sees your work:

  • Does this theme behave correctly across real user flows?
  • Are performance, accessibility, and SEO measurable and verifiable?
  • Are there structural or PHP issues that could trigger review feedback?
  • Can problems be identified proactively, rather than reactively?

WP Rig v3.2.0 is designed to help you answer those questions while you build, not after rejection or review feedback.


Confidence Through Verification

End-to-End Testing with Playwright

Manual testing is unreliable, inconsistent, and easy to skip under deadline pressure. WP Rig now includes Playwright-based End-to-End (E2E) testing to help theme authors validate behavior in real-world scenarios.

These tests can cover:

  • Navigation and page interactions
  • Accessibility and interaction flows
  • Smoke tests that ensure critical paths work as expected

For theme authors preparing for submission, this provides a tangible way to confirm that key behaviors function consistently — before a reviewer ever touches the theme.


Lighthouse CI — Measure What Reviewers Care About

Performance, accessibility, SEO, and best practices increasingly matter in theme review — and they matter even more to end users.

WP Rig v3.2.0 introduces Lighthouse CI configurations that allow you to:

  • Assess performance and accessibility during development
  • Identify regressions early
  • Make measurable improvements with confidence

Rather than guessing how a theme might perform under scrutiny, you can now evaluate those metrics directly in your workflow.


PHPStan — Fewer Issues, Cleaner Submissions

Static analysis is one of the most effective ways to reduce subtle bugs and review feedback.

By integrating PHPStan, WP Rig helps theme authors:

  • Identify PHP issues before submission
  • Improve code correctness and maintainability
  • Reduce avoidable back-and-forth during theme review

This benefits both authors and reviewers by catching issues at the source.


Modern Features, Without Compromising Review Compatibility

Theme-Level Blocks — Now Explicitly Opt-In

Theme-level blocks remain an important part of modern WordPress development, but compatibility with the WordPress.org theme checker is non-negotiable.

In v3.2.0, theme-level blocks are now explicitly opt-in via a dedicated script, giving authors full control over when and how they are used.

This ensures:

  • Maximum compatibility for repository submissions
  • Clear intent and configuration
  • No accidental review blockers

Modern tooling should empower authors — not surprise them.


A More Reliable Mobile Experience

Mobile usability is critical for both reviewers and users. The default mobile navigation has been refined to eliminate transition issues and ensure smoother, more predictable behavior across devices.


Refinements That Add Up

Beyond new tooling, WP Rig v3.2.0 includes a broad set of stability and quality improvements:

  • Streamlined and optimized dependencies
  • More resilient CLI behavior
  • Bundled test data for immediate E2E test execution

These refinements reduce friction, remove guesswork, and make the framework feel more dependable from day one.


A Commitment to the Entire WordPress Ecosystem

WP Rig is built for:

  • Agencies delivering high-quality client work
  • Independent theme authors
  • Open-source contributors
  • Anyone serious about modern WordPress theme development

This release begins a deliberate, long-term effort to lower the probability of theme rejection, while also making the Theme Review Team’s job easier by empowering authors to self-assess before submission.

The goal is simple:
Better-prepared themes.
Fewer surprises.
A healthier WordPress theme ecosystem.


Looking Ahead

WP Rig v3.2.0 lays the foundation for what comes next. As we move toward 2026, expect continued focus on:

  • Review readiness
  • Developer confidence
  • Measurable quality
  • Modern tooling aligned with WordPress core expectations

WP Rig is not just a starter framework. It is becoming a professional-grade, review-aware theme development toolkit designed to support the full lifecycle of a WordPress theme — from first commit to final approval.

WP Rig 3.1

WP Rig 3.1 is here and it is jam packed with improvements and new features for theme developers. Lets go through what’s new. Buckle up, because there is a lot here.

Performance

In v3.0, we dramatically overhauled the JS and CSS compile system in WP Rig to improve performance and move away from older less performant processes. While this brought huge performance gains to WP Rig, this was really just phase 1 of 2 phases. In 3.1, we have finished phase 2 of this process, removing our dependency on Gulp altogether. While Gulp was great to us in the past, the package has become bloated over the years, support has been questionable, and efforts to modernize it have been less than ideal by today’s standards. So, instead of attempting to find a new task manager, we decided to write our own bespoke internal node scripts for performing many of the main WP Rig task processes. As a result, WP Rig 3.1 is even faster than 3.0, boosting build speeds by approx 2x of 3.0.

We didn’t stop there either. While BrowserSync is still a pretty cool technology, it is a bit slow and dated by modern standards. In an effort to keep up with the times, we decided that we needed something closer to HMR (hot module reloading). While true HMR is not technically possible in the scope of PHP, there are some interesting concepts that have been brought forward over the last decade that get PHP/WordPress sytems much closer to this kind of developer experience. So, with that said, we now have a more modern watch process built into WP Rig that makes realtime updates to your theme faster than ever!

Believe it or not, this puts WP Rig’s build, watch, and bundle processes up to par with modern systems like Vite. What a time to be alive!

Modernizations

The goal of WP Rig is to remain a progressive and cutting edge toolkit for WordPress theme developers. As the web continues to evolve, so must WP Rig.

Image processing

Previously, all image processing in WP Rig was done by imagemin. Well, there’s a new kid on the block and it’s pretty good. Now, WP Rig leverages Sharp for all image processing. This means better and faster image processing. How images are processed remains similar to before, just faster, better, and lighter. Just a reminder, WP Rig does now convert to webp for you and the image processing task was moved out of the dev/watch server to speed up Rig, so images are now processed using the dedicated command, or by the build or bundle processes.

Bun Support

WP Rig now supports (and encourages) the usage of Bun. While we kept npm support (for now) for those who have not jumped on the Bun train yet, we do highly recommend installing Bun and leveraging this new and extremely fast and powerful all-in-one JavaScript, TypeScript & JSX toolkit. You will be amazed by the blazing fast performance. Also, as we move forward, it is highly likely that some future WP Rig features will require Bun to leverage them in an a continued effort to keep our dependency tree as small as possible.

Command Prompts

In an effort to improve the DX of WP Rig, we have begun leveraging command prompts to make WP Rig more intuitive. This means less having to remember specific steps and less manual adjustments to config files and such. The rig-init command now prompts for basic config details after installing all Node and Composer packages to help new users set up their BrowserSync/HMR config and better guide users. These are also used in our new component generator and childify conversion.

New scripts, commands, and generators

While building the latest version of this website’s theme, some obvious room for improvement was discovered. We even made a blog post highlighting some of our learnings and we were committed to improving. This means less common manual file manipulation, and more automation.

Learn more about how our cli scripts

Component generation

Creating new PHP components seemed way too necessary/common in more theme builds and the process was just unnecessarily manual. With that in mind, we have added a new cli command to automatically scaffold new components for you. This process not only creates the necessary folder and file for your new component in the /inc folder, but it also adds this component to the Theme.php class for you. This means you just run the command and dive right into your new Component.php file already set up with a standard structure and method declarations. Now creating new components is faster and easier than ever.

Child Themes

Historically, WP Rig was only able to be used as a parent theme. If you wanted to build a child theme for another theme and wanted a build process to compile your child theme’s custom JavaScript or CSS, you had to manually set up/configure some other build/bundling system from scratch in your child theme (Webpack, Vite, etc.). So we thought, “Why can’t WP Rig be used for child themes anyway?”. After much thought, we realized there was really no good answer to this question. So, just like you can convert WP rig to a universal or block based theme, you can now also convert it to a child theme. Just run a single cli command and Rig will guide ask for some input before modifying the WP Rig codebase to be used as a child theme. This basically means it will remove a fair number of features from WP Rig that only make sense for parent themes and also add a dependency on your parent theme of choice. Presto! Now you have a child theme with multiple build processes, allowing WordPress developers relying on any theme (premium or not) to modify that theme’s functionality progressively for any client project.

Fonts

Relying on Google fonts like most web developers do? We get it. It’s easy, there a lot of good ones to choose from, and best of all – no licensing worries. The only problem with Google fonts is having to rely on their CDN. This is not the best practice. It is much better for reliability and performance to host your font files on your website’s server. So why not bundle these fonts into your theme? WP Rig now has a new command that will use the built-in Fonts component to scan for any registered Google fonts in the theme and download the font files directly into the /assets/fonts directory while also writing some boilerplate css to register the fonts for usage with relative pathing to these font files. That’s it. Now you can start using these fonts in your theme without having to make requests to the Google CDN. Better performance. Better reliability. Better security. Better theme.

Theme-level Block development

Trigger warning – we believe that in very specific scenarios, it makes sense to build custom Gutenberg blocks into your theme instead of a plugin. Now, before you raise any pitch forks or just stop reading to flame WP Rig, please hear us out.

We get it, blocks should be a plugin-level concern – we completely agree. In most cases, we recommend building your custom blocks using the @wordpress/create-block package which is designed to build your blocks as a plugin. It’s great and we would never recommend always building any block into your theme as it limits your block’s modularity, portability, and the ability to deactivate it separately from your theme.

With that said, now that blocks can be used across your entire site, not just the page/post content, the lines are blurring. Navigation, search functionality, accessibility, and other concerns often make sense to build into your theme, especially when you consider that custom menu walkers are also often part of the theme as well. Also, many bespoke site projects can be rather involved and your custom theme can easily become the main driving force of the site experience.

Adding functionality to your theme, while technically not proper because functionality should always be the responsibility of plugins, in some cases does make sense. Furthermore, we believe the plugin manager in WordPress fails to address the issues and separation of concerns that prevent admins from effectively managing large numbers of plugins. This problem becomes exacerbated by the entire concept of block plugins. If a site is always going to be reliant on it’s bespoke theme, and this theme is often going to manage the styles of custom blocks, then what really is the problem (as long as you are not planning on distributing your blocks or using them across multiple projects)?

So, with all of this mind, we thought it would be ideal to provide theme developers with the option to build some of their custom blocks into their theme using the existing WP Rig build system. Our new block development system will create/register blocks, list blocks, remove blocks, build blocks, and even move blocks out to a plugin if you realize later you want to use one of these blocks in other projects or share them. This new system is based on the create-block package, so you would develop blocks in WP Rig the same way you would for create-block.

Learn more about how our new block system works

Block Based Themes

While previously we added a command to add Site Editor support to your theme by converting it to a universal theme, it still required some manual effort to convert it to a truly block-based theme. Now we have added a command to convert your universal theme to truly block-based theme with a single command. So, to make a truly block-based theme, WP Rig theme devs will now add editor support, then convert to block based. This essentially removes support for the Customizer, menu manager, and any other features that become obsolete with the concept of full site editing. Added editor support to your theme (universal or block-based) now also generates a starter theme.json file for you.

Other enhancements

  • New wp cli commands for mocking menus and importing/exporting menus between sites/environments
  • A number of long lasting bugs have been addressed
  • All new default header, primary nav and mobile navigation styling and walker for a better starting point
  • More organized css
  • Better nav accessibility
  • Improvements to eslint system, TS compiling, styles and js minification
  • Less dependencies
  • and more

See the CHANGELOG.md file for more details.

Conclusion

I (Rob Ruiz) hope everyone finds these new features and enhancements valuable. I remain committed to this open source project. I will continue to build enhancements to this extremely powerful and beneficial theme development tool as I continue to grow my skills building custom Node/Bun tooling and focusing on the DX of WP theme developers. I have many more ideas for enhancements to this tool. I will always welcome open-source contributions from the community as they align with the needs of the WP Rig user base.

Many thanks to those that continue to use WP Rig. Please share this exciting news with other WP dev you know. Please lets us know what you think in the discussion boards on Github.

WP Rig 3.0.2 – minor release

We wanted to get WP Rig V3 released by Jan 1, and we did. However, as usual with software, there was still some unfinished business and some optimizations we noticed after release. Below is a summary.

Support for Dark Mode

The base starter theme now supports dark mode for users using the prefers-color-scheme: dark browser feature. So depending on how you have your OS (or browser) configured, you will see the starter theme either dark or light. You can find the majority of these concerns handled in the _custom-properties.css file towards the bottom of the file. If you do not wish to support these @media browser feature (not recommended), you can simply remove that whole section.

PHPUnit

PHPUnit has been updated and upgraded to work with PHP8+. Some of the base unit tests have also been updated accordingly to ensure all tests pass on a fresh WP Rig install.

PHP Code Quality

Rector PHP and PHP CS Fixer have both been added to the stack. Rector helps you modernize old/outdated/unnecessary code and PHP CS Fixer helps you bulk address certain issues the PHPCBF (PHP Code Beautifier and Fixer) does not (like Yoda conditionals) which may be pointed out by PHPCS (PHP Code Sniffer) using WPCS (WordPress Coding Standards). Because this new stack is a bit more complex, we added a new composer script for convenience:

composer run fix

This new composer script runs rector, then runs PHP CS Fixer, then runs PHPCBF all in that sequence.

Rector PHP -> PHP CS Fixer -> PHPCBF

We recommend always running phpcs (composer run run-phpcs) after this to ensure everything has been addressed as these tools do not automatically fix every single possible issue. It’s also a obviously a good idea to thoroughly test after running such automated code changes.

The combination of all of these tools should help developers to learn to write more modern, maintainable and cleaner PHP. A lot can be learned from reviewing the code that was changed from these, so be sure to dive into your git changes after running these before committing them.

Nav Accessibility

The nav was already very accessible by modern standards. However, we noticed issues in a scenario where you want to create a parent nav item that has a sub-menu where the parent nav item does not link anywhere (its only for the user to however over and control the open/close of the sub menu). In this scenario usually devs will make the parent nav item link either blank (an empty string / “”) or “#”. In this scenario, it is bad for accessibility to have the menu item contain an anchor tag (<a>).

We have actually secretly enhanced the default accessibility for this scenario over the past few versions (even before v3). We will make a new video outlining the specific nuances around this in the future, but just know that we have made it much more convenient to control the main navigation for users TABbing through the nav or using other assisted tech to navigate.

This was discovered using the Accessibility Checker plugin, which is one of our curated plugins that get installed when you run the new WP CLI command we added: wp rig dev_setup.

So, we added a filter that changes this anchor tag to a button element (<button>) as this is the recommended approach. We also added very specific styling to ensure that these buttons match the anchor tags in the main nav so there is no visible difference between these elements in the main nav to the user. This is important to note as this could have consequences in scenarios where devs do use CTA (or other) buttons in their main nav for whatever reason. In this scenario, you would want to override those CSS rules with more specific CSS selectors.

Other

A variety of other minor bug tweaks were made, all of which can be found in the commit history in the Github repo. We won’t list them all here, but one worth mentioning is that the command line output when running some npm scripts:

  • npm run rig-init has been cleaned up and slimmed down a bit to be less busy (this can be undone by editing the script in composer.json if you prefer a more verbose output).
  • npm run dev, build, and bundle have also been cleaned up a bit.

WP Rig 3.0 Beta

TL;DR

  • WP Rig now builds 10X faster on average
    • esbuild, Lightning CSS, and Gulp 5
  • Linting and PHPCS checks moved to more specific scripts
  • Now supports Typescript and JSX natively
  • Comes with a React-based Settings page configurable with simple JSON file
  • Min. PHP version bumped to 8. PHP Type checking added.

Backstory

For the last year, I have been getting deeper and deeper into all things JavaScript. Typescript, React, Node – you name it. As someone who already understands plugin and theme development for WordPress quite well, I wanted to look and go beyond. I’ve been maintaining WP Rig for a few years now and I had still yet to fully understand exactly how the build process worked and how to truly control it. My understanding of Node was relatively novice, and as someone who had already learned Angular, React, and Stencil.js, I still felt like there was a lot going on in the JS universe that I was still not well versed on.

On my quest to change this and improve, I found myself wondering if WP Rig was still “modern” and “progressive” by today’s standards. Issues had been annoying me. Why does it build so slow? Why are dependency issues so common? Do we have to constantly be annoyed by Stylelint, ESLint, and PHPCS errors even if we are using it to build a theme that we will never distribute? Can’t we just selectively run these checks outside of the early phases of iteration? Should we really be relying on Gulp and Gulp plugins to do literally everything in the build? Why can’t I write in Typescript? Shouldn’t we be able to build React functionality within the theme? My mind began to open to the possibility of something greater than what I had inherited.

Version 2.0 was released in 2019. That was a 5+ years ago! Disruptions in JavaScript seem to occur almost monthly these days. While I give enormous credit and gratitude to the previous developers that worked on WP Rig, there have been enormous strides in JS-based build tools since then. I realized, it is my responsibility to keep this thing fresh. So here we are, at the end of 2024, and WordPress themes of 2025 demand more. I realized, it was time to tear this thing apart a bit and start rebuilding from the ground up.

Architecture

Gulp: While I had my issues with Gulp, it has proven effective. Updates seemed slow. However, as fate has it, Gulp decided to release a new major version (Gulp 5) earlier this year. So, for now, I decided rewriting the entire framework without Gulp was a monumental task that might prove too much for a single ambitious developer. So, I started by simple upgrading Gulp to the latest version. That’s a start. I decided to continue to rely on it for orchestrating tasks (which is what it is good at) and managing the image optimization.

JavaScript

I wanted to see if I could find a better, faster and more modern foundation for managing the transpiling of our theme assets. After some broad research into various modern JS frameworks, I found myself inspired by tools like Vite, Astro, and Next.js just to name some. This led me to esbuild. I thought to myself, why not give esbuild a shot at transpiling our JS? I wanted Typescript and JSX and esbuild handles both natively. After some promising proof-of-concept attempts, I realized I was onto something.

CSS

While PostCSS was good, I thought to myself, what else is out there? Can we keep all the best things about our current CSS workflow in Rig and improve it? Turns out, we could. I then found Lightning CSS. With a bit of tinkering and filling some gaps with some custom Node scripting, once again – success! With an all new gulpfile.js, simplifying the build altogether, and stripping out now unnecessary packages, WP Rig was now building 10X faster!

Features

I started to have so many ideas about what I wanted out of WP Rig. How could we dramatically improve the theme authoring experience? We need to streamline workflows, maintain simplicity, and allow theme devs to focus on what themes do best – style.

Theme settings

Previous versions of WP Rig supported settings. However, I became obsessed with the idea of a React-based settings framework a few years back when I got into block development. Unfortunately, the Site Editor has yet to introduce a proper API to allow theme devs to build their theme settings into that UX. So, I decided to do the next best thing. WP Rig now has a React component based theme settings page that can be added/removed using our existing component system. There is now an Options component that facilitates this new system. An important consideration here was that I did not want to force theme authors to learn JSX, React, components…it’s too much for many as has been made obvious by the continued hesitation by many (mainly web agencies) to adopt Gutenberg and full site editing. So, I decided to take inspiration from the EZ_Customizer component and allow theme authors to build out their settings fields by managing a simple JSON file. The app reads the JSON file and uses it to build out the settings fields. This initial implementation is fairly simple currently, but it is effective and it is a good foundation to iterate on in future versions with more field types. Furthermore, the settings auto-save via the REST API. It feels good.

Utility Classes

Default styles now come with utility classes for things like CSS Grid and Flexbox. These utility classes will likely grow in the future, but it’s a decent start.

Fonts

All font considerations have been moved to a fonts controller. Although WordPress now has it’s own build-in font manager, we thought theme authors would like a more straight forward way of adding custom fonts to their themes, so, there is now a home for these considerations. We recommend packaging your fonts with your theme for better performance and less reliance on CDNs. This could also be a decent home for icon libraries you might want to package with your theme.

Recent improvements added in 2.3 worth mentioning

  • Add Site Editor compatibility (Full Site Editing) to your theme using a single NPM command.
  • Improved PHPCS, Stylelint, and ESLint handling and supports latest version of WP Coding Standards.
  • Support for later versions of PHP 8.

Try it now!

If you are interested in helping us test V3 before we push this major release please pull the V3 branch from Github and submit issues as you find them. Thanks in advance for your help in this effort. If you have ideas for features you think should be added to WP Rig, please submit your feature requests here and feel free to tag me.

Possible future features

  • Possibly replacing Gulp altogether in the distant future for something like Task.
  • A WebP conversion process for image processing system.
  • A more obvious cache busting system for scripts/styles

WP Rig V2.3.1 release

Changes

Thanks to the WordPress Coding Standards folks updating WPCS to V3, we have upgraded that dependency in WP Rig so now PHPCS gives you more updated coding standards straight from the WordPress team.

We noticed some significant room for improvement in the default mobile menu experience, so we decided to upgrade that. The default mobile menu now properly supports accordion style expand/collapse functionality for sub menus.

Furthermore, we have taken some significant time and consideration into make WP Rig as easy as possible to convert to a Universal theme (unlocking block-based features like full site editing). The revamped mobile menu now also works with the Gutenberg Navigation block. So menus built with the navigation block offer a very similar experience to the standard main navigation, but be sure to double check all settings at the block level for expected layout and functionality. Depending on how you layout your header, you will need to tweak the CSS for the navigation to ensure a good UX.

We have had a video on our YouTube channel showing you how to convert WP Rig to a universal theme, however, we wanted to take it one step further. We have now included a node script that can be run via the command line to execute all of the steps outlined in the video with one command:

        npm run editor-support

Please note that once you have run this script, you will need to create/edit your index page template in the Site Editor to see your website. Currently, the script inserts a completely blank index file, so be aware of that. The index page template overrides the default index.php. All other page templates should work accordingly. We recommend building your header and footer as template parts (synced block patterns), then just using the Content block in between.

Changelog – 2.3.1

  • Updated WPCS to V3. Props @robruiz
  • Improvements to mobile navigation, primarily collapsible sub-menus, including consideration for Gutenberg navigation block. Props @robruiz
  • Improvements to header layout. Props @robruiz
  • Added FSE Conversion NPM script. Props @robruiz
  • Updated all dependencies. Props @robruiz
  • Added onload attribute to preload styles. Props @robruiz
  • Updated navigation CSS to prevent blocking of content when mobile menu is toggled off and to have smooth transition from toggle-on toggled-off states. Props @Spleeding1

Monthly Contributor meetings are no longer being help, however, our Slack workspace is still up and running and you are welcome to jump in there and ping anyone.

WP Rig V2.2.1 release

Changes

We have update a couple of the NPM dependencies for WP Rig as well as made some effort into slightly improving accessibility. Also put in a fix that caused php to throw an error that it was looking for a custom.js file that wasn’t there, if you have been working from the 2.2.0 release I suggest you either update or remove the code from Inc/Scripts/Component.php

        'wp-rig-custom' => array(
            'file'    => 'custom.min.js',
            'loading' => 'defer',
            'global'  => false,
        ),

Changelog – 2.2.1

  • Extended config file to add the ability to modify author name, author url, theme description and version for production. Props @dthenley
  • Bumps ajv from 6.10.2 to 6.12.3.
  • Bumps handlebars from 4.7.6 to 4.7.7.
  • Change Sidebar screen reader text. see #761
  • Update blocks css to use grid css
  • Added ‘deps’ to css files array Props @Spleeding1
  • Removed call for custom.min.js from the Scripts/Component.php file. Was throwing an error before.

We are looking to hold meetings every month on the first Sunday of the month. Our current time is at 11 am central, but dates and time can change if more people want to attend but it doesn’t fit with their schedule. On that note we are looking for more maintainers so if you are looking to help us grow this project please reach out to us on Github or join our slack. We are planning on putting out the agenda before the next meeting so that those that would like to participate can.