Block Theme vs Classic Theme in 2026: I Built Both — Here’s What I’d Choose

I’ve now shipped both in production: a classic PHP theme with a Vite/SCSS pipeline, and the full-site-editing block theme this site runs on. Most “block vs classic” articles are written by people who’ve only built one of the two. Having built both within the same year, for the same site, here’s how the trade-offs actually land in 2026.

Where the block theme won

  • theme.json is a genuinely better token system. One file defines palette, fluid type, spacing and shadows, and WordPress generates the CSS custom properties, the editor UI, and the style engine output. My classic theme needed SCSS maps plus a Customizer bridge to do less.
  • Zero build step is a superpower for solo maintenance. The block theme is plain CSS and native ES modules. Nothing to compile, no dependency rot, no “works after npm install” README rituals. My classic theme’s Vite pipeline was pleasant to develop in and is now one more thing to keep alive.
  • Patterns beat template parts for page assembly. Pages are just pattern references — my seed script creates the whole site structure with <!-- wp:pattern {"slug":"minhazi/hero"} /--> lines. Content and presentation stay separated, and editing in the Site Editor previews accurately.
  • The Interactivity API filled the “but I need real JS” gap. My portfolio grid filters client-side with animated re-layout — the one thing core blocks couldn’t express — and it’s a single dynamic block, no build required.

Where classic still wins

  • Bespoke interactive UI. If the design is essentially an application — heavy JS state, unusual layouts driven by logic — a classic theme with a real build pipeline fights you less. Block markup is a serialization format, and you feel it when you push past what it models.
  • Fine-grained PHP control. Classic templates let you branch on anything at render time. In block themes, dynamic behaviour funnels through block render callbacks and filters like render_block — powerful, but less direct. Hiding a single button when post meta is empty took me a filter in the block theme; in PHP it’s an if.
  • Team familiarity. Every WordPress dev alive can read a classic template. FSE fluency is still unevenly distributed, and that’s a real staffing consideration.

The myth that needed killing

“Block themes all look generic.” The site you’re reading — rotated sticker badges, cursor spotlight, magnetic buttons, a filterable portfolio — is a block theme with one custom block and a single vanilla-JS module. The ceiling on personality is not the theme architecture; it’s how much intent you put into theme.json and your patterns.

My decision rule for 2026

Content-driven site (portfolio, publication, marketing, most client work): block theme, build-free. Application-like frontend or a design system already living in a JS framework: classic theme with a build pipeline. And if you’re choosing classic purely out of habit, build one small block theme first — the habit might be the only reason.

I wrote about how this particular block theme was built — with AI tooling in the loop — in the blog, and the portfolio has both themes as case studies.

Leave a Reply

Your email address will not be published. Required fields are marked *