Making Any WordPress Theme Client-Editable
Why I built Bindery — a plugin that lets developers declare exactly what a client can edit, so custom themes stay custom and clients still get to change their own text.
AI and clean hand-coding both let you build a fully custom WordPress theme fast. The problem shows up the moment you hand it to a client: they can't change a single word without opening code, so everyone falls back to a page builder and throws the custom design away.
The gap nobody fills
Page builders make sites editable but bloated and generic. Hand-coded themes are clean but frozen. I wanted a third option: keep your exact markup, and let the client edit only the parts you allow.
Built on native Block Bindings
Bindery uses WordPress's own Block Bindings API instead of owning your HTML. You declare an editable region with one line in your template — or flip on auto-mode for whole pages — and the client edits that text in place on the live page. Everything else stays locked.
<h1 <?php bindery_attrs('hero_title', ['type' => 'h1']); ?>><?php
echo esc_html(bindery_value('hero_title'));
?></h1>Safe by default
Values are stored per locale in their own table, sanitized on save and escaped on output, with full revision history and one-click restore. The editing markers only render for logged-in users who have the capability — visitors get clean markup.
The result is the workflow I always wanted: build the theme however you like, decide what's editable, and hand over a site the client can update without breaking it.