I build native WordPress: block themes, custom blocks and small plugins that use what WordPress already provides. I do not use page builders, and I put nothing proprietary between you and your content.
WordPress’s own tools first
I use what WordPress ships before I reach for add-ons. Layout, colours and type are set in one file, theme.json. You edit templates and reusable sections in the Site Editor. When a page needs to respond to clicks, I use WordPress’s own Interactivity API before any outside framework. The page still works with JavaScript turned off.
Block themes
- Templates and ready-made sections your editors can use without breaking the design.
- Colour and style options built into the theme, with no hard-coded CSS.
- Locked sections and a limited set of blocks where things must stay consistent.
- Fonts served from your own site, with no trackers and nothing loaded from other companies by default.
- Often no build step at all, so there is less to break later.
Custom blocks and plugins
Your content types and business rules belong in plugins, so they survive a change of theme. I prefer blocks that save real HTML into the page. They are fast, easy to cache, and still there if the plugin is removed one day.
I keep plugins small. They explain their own settings and clean up after themselves when you uninstall them. Light code is also the surest way to a fast site.
My quality bar
- WordPress coding standards and automated code checks on every change.
- Automated tests, including tests in a real browser, run on every change.
- Careful handling of everything that goes in and out, with a permission check on every action. See WordPress security.
- Accessibility built in: page landmarks, skip links, visible keyboard focus, and a manual check before each release.
- Written documentation, including a changelog that says plainly what was wrong.
- GPL-licensed code that you own.
AI helps. It does not decide.
I use AI tools in development and I say so. The AI suggests, I decide, and automated tests check the result. Nothing goes live because an AI said it was fine.
My open source work
My public work includes a block theme and several plugins on WordPress.org: Dirtbag, Borges Bibliography Builder, Admin Menu Maestro and Keel. See what I am working on.
Common questions
Why not use a page builder?
Page builders give you a quick start. In return you get heavier pages, a second editing tool to maintain, and a site that is hard to move away from. The block editor now covers most of that ground with WordPress’s own code.
Should a custom feature go in the theme or a plugin?
A plugin, if it is about your content or how the site behaves. The theme is for how things look. That way a redesign does not take your content types with it.
Who owns the code?
You do. Everything is GPL-licensed, like WordPress itself.
Get clarity.
More on how I work
- Managed WordPress hosting: What managed should mean, and where to host.
- Canadian WordPress hosting: Data residency, sovereignty and what they are worth.
- WordPress security: What actually gets sites compromised, and what stops it.
- WordPress performance: Fast by construction, measured on real visits.
- WordPress maintenance and support: Updates, upgrades and someone who knows your site.
- Custom WordPress development: Native block themes and plugins, built to be changed.
- Static, headless and non-WordPress: When WordPress is the wrong tool, or only half of it.
- AI, automation and process consulting: For people fed up with their technology.