Building a WordPress Parent Theme That Survived 10 Years of Production
Boilerplate started the way a lot of useful developer tools start: as a reaction to doing the same work too many times.
After years of building client websites in an agency context, the pattern became impossible to ignore. Every project needed its own design, its own content model, its own plugins, and its own business logic; but underneath all of that, the same foundational theme problems kept showing up again and again. Responsive layouts. Navigation. Search. Archives. Comments. Typography. Accessibility. Plugin compatibility. Build tooling. Parent/child overrides. Admin polish. Front-end polish.
Boilerplate became the answer to that problem: a sane Bootstrap WordPress parent theme that carries the lessons, bug fixes, and practical defaults from more than a decade of real production work.
The problem with starting from scratch
Building custom WordPress themes for clients sounds straightforward until you have to do it repeatedly, on deadlines, across very different kinds of websites.
A marketing site may need beautiful landing pages, crisp typography, and clean editor support. An ecommerce site may need WooCommerce compatibility, custom templates, conversion-focused layout decisions, and careful plugin styling. A subscription-based site may need gated content, user account flows, payment-related plugins, and predictable behavior across logged-in and logged-out states. A content-heavy site may need strong archives, search, excerpts, comments, media handling, and print styles.
The surface area changed from project to project, but the theme foundation did not. Every serious WordPress build needs a stable baseline.
Without that baseline, you end up rebuilding the same systems over and over: menu walkers, sidebar behavior, typography defaults, Gutenberg/editor styles, responsive image handling, plugin compatibility fixes, accessibility improvements, build scripts, asset paths, and configuration flag – Boilerplate was built to stop that cycle.
A parent theme, not a finished design
The most important idea behind Boilerplate is that it is a parent theme, not a locked-down visual product.
The goal is not to make every website look the same. The goal is to give every website the same dependable foundation. A child theme can extend it, override it, restyle it, and customize it for the client, while the parent theme continues to provide the boring-but-essential systems that every project needs.
That distinction matters. A good parent theme should not be flashy by default. It should be predictable. It should be readable. It should be easy to override. It should solve common problems quietly and consistently. It should provide enough structure that developers are not reinventing the wheel, but not so much structure that every project feels trapped inside someone else’s design system.
That is why Boilerplate keeps the core architecture centered around familiar WordPress files like style.css, functions.php, config.php, and template partials such as partials/layout/top.php and partials/layout/bottom.php. The theme stays close to classic WordPress conventions while adding the practical helpers, layout systems, and build tooling needed for modern development.
Configuration belongs in one place
Different sites need different defaults. Some need comments. Some do not. Some need left and right asides. Some need a minimal single-column layout. Some need social sharing. Some need custom search behavior. Some need strong archive support. Some need everything turned on, and some need almost nothing.
Boilerplate handles that by making config.php a central part of the theme architecture. Instead of scattering feature decisions across templates, helpers, and random conditionals, the theme uses configuration constants to define the project’s baseline behavior. That makes the theme easier to audit, easier to teach, and easier to customize safely.
This also makes the parent/child relationship more practical. A child theme can customize the project without rewriting the parent theme’s foundation. The parent keeps owning the systems. The child theme owns the brand, project-specific overrides, and client-specific decisions.
Built for the plugins real client sites actually use
Real WordPress work rarely happens in a vacuum. Client sites are not just themes. They are themes plus plugins, editor workflows, integrations, forms, commerce, custom fields, tracking scripts, user roles, and business requirements.
Boilerplate was shaped by that reality. It has been used around the kinds of plugins and workflows that show up constantly in professional WordPress development: Advanced Custom Fields, Gravity Forms, WooCommerce, custom post types, custom templates, marketing pages, content-heavy blogs, subscription models, and business sites that need to keep working years after initial launch.
The theme’s job is not to fight those plugins or replace them. Its job is to give them a sane environment to live in. That means predictable typography, consistent form styling, stable layout behavior, careful template output, useful action hooks, and front-end decisions that do not stomp all over plugin markup.
A design system that stays out of the way
Boilerplate uses Bootstrap because Bootstrap is practical. It gives the theme a shared vocabulary for layout, navigation, forms, buttons, utilities, responsive behavior, and common components. More importantly, it gives teams something stable to build on.
But Bootstrap is not treated as a visual straightjacket. Boilerplate layers its own SASS variables, CSS custom properties, rhythm units, typography decisions, light/dark color tokens, and WordPress-specific styling on top of Bootstrap so the theme can feel custom while still benefiting from a proven framework.
Some of the most important design-system work in Boilerplate is intentionally subtle. The vertical rhythm system is a good example. Most visitors will never notice that spacing is being handled consistently across headings, paragraphs, blocks, cards, widgets, and layout regions. They will only notice that the site feels easier to read and less chaotic.
That is the point. Good design language and theme infrastructure should disappear into a positive experience.
The build system grew with the web
Boilerplate has been around long enough to outlive several generations of front-end tooling.
The build system started in the era of Grunt, moved through Gulp, evolved through Webpack, and now uses Vite. That history matters because each migration solved real problems at the time: better automation, better asset handling, better JavaScript bundling, better SASS compilation, better development feedback, better sourcemaps, better production builds, and faster iteration.
The current Vite setup keeps the theme modern without pretending WordPress is a single-page application. WordPress still renders the pages. PHP still owns the templates. The theme still uses classic WordPress architecture. Vite simply handles the asset pipeline: JavaScript, SASS, PostCSS, Autoprefixer, sourcemaps, minification, fonts, and output paths.
That balance is important. Boilerplate is not trying to replace WordPress with a front-end framework. It is trying to make traditional WordPress theme development faster, cleaner, and more reliable.
Battle-tested means bug-tested
The best thing about a long-lived parent theme is that it accumulates fixes from real use.
Boilerplate has run across dozens of production websites over more than 10 years. That means the theme has not only been tested by developers in ideal conditions. It has been tested by clients, customers, editors, store owners, mobile users, logged-in users, logged-out users, plugin updates, browser quirks, WordPress updates, content migrations, and all the strange edge cases that only show up after a site is live.
That kind of testing is impossible to fake. A fresh theme may look cleaner in a repository, but it has not yet earned the boring fixes. It has not yet learned which dropdowns break on mobile, which plugin forms need better defaults, which gallery captions need color handling, which admin-bar offsets break anchor links, which archive templates need better fallbacks, or which typography decisions make long-form content easier to read.
Boilerplate carries lessons forward – bug fixes becomes part of the baseline and every hard-won edge case makes the next project easier.
Boring is a feature
One of the biggest lessons from maintaining WordPress sites over time is that boring code wins.
That does not mean careless code. It means the opposite. Boring code is predictable. It follows conventions. It avoids cleverness where clarity is better. It gives developers obvious places to look. It handles common cases consistently. It is easy to override, easy to debug, and easy to explain.
Boilerplate is intentionally built around that kind of boring stability. The theme does not try to reinvent WordPress. It does not try to turn every site into an app. It does not try to hide the template hierarchy or make child themes impossible. It respects the platform, improves the rough edges, and gives developers a stronger starting point.
That is why a parent theme like this is valuable. Not because it does one flashy thing. Because it quietly solves hundreds of small problems that every serious WordPress project eventually runs into.
The point of Boilerplate
Boilerplate exists because building WordPress themes from scratch over and over is wasteful.
After enough client projects, the reusable parts become obvious. Every site needs a reliable foundation. Every developer needs a clear structure. Every client benefits from bug fixes discovered on previous projects. Every future build gets better when the baseline improves.
That is what Boilerplate is: 10 years of WordPress theme lessons turned into one practical parent theme. It is not a shortcut around custom development. It is the stable foundation that makes custom development faster, cleaner, more consistent, and easier to maintain.
Start with the boring parts already solved.
4/9/2026 - jmparks