WordPress plugin · open source

Make any theme
client‑editable.

Bindery lets you decide exactly what a client may change — then they edit it in place on the live page. Clean, hand‑written markup. No page builder, no lock‑in. Multilingual out of the box.

GPLv2 · works with any classic or block theme · your content stays yours
Pre‑release — pending review on WordPress.org; auto‑updates kick in once it’s listed.

meridian.coffee

Meridian

Coffee worth slowing down for.

Single‑origin beans, roasted the morning we ship them.

Shop the roast → ★ 4.9 / 5
Editing — click any highlighted text EN
Verified end‑to‑end across
AstraOceanWPNeveKadenceTwenty Twenty‑FiveGeneratePress
Clean code, client‑editable

Editing that respects your markup.

The two have always been mutually exclusive: clean code or a client who can edit. Bindery is the middle — you give the editing surface, and only that.

Declare it in code

Mark a region editable with one line in your template, or tick which tags are editable on the settings page. You keep 100% of your markup.

Edit on the live page

Clients click “Edit page”, type right where the text lives, and it saves. No block editor to learn, no dashboard detour.

Locked by design

Only the regions you declared can change. Layout, structure and everything else stays untouchable — clients can’t break the design.

Why developers pick Bindery

Built on native WordPress.

No HTML parsing, no builder runtime. Just the Block Bindings API, a tiny value table, and your own clean output.

10+
themes verified end‑to‑end
0
markup ownership
8
editable blocks included
How it works

From hard‑coded to editable in three steps.

You mark what’s editable once. Your client never sees a line of code.

01
Step 1

Declare the region

Add bindery_attrs() to your tag, drop a block, or flip on auto‑mode for whole pages — in clean code you control.

02
Step 2

Client edits in place

They open the live page, click into the highlighted text and type. Everything else stays locked and untouchable.

03
Step 3

Saved, per language

Each edit is stored per locale, escaped on output, with full revision history and one‑click restore.

Flexible by design

Six ways to make content editable.

Settings page

Tick which tags are editable — zero code.

Attribute helper

bindery_attrs() marks one element editable.

Blocks

Eight ready‑made blocks for the editor.

Template tags

bindery_field() renders a field anywhere.

Auto mode

Make all existing page text editable.

Multilingual

A value per language, with fallbacks.

Free & open source

One line. The client takes it from there.

You write the markup. Bindery prints the editable hooks and resolves the value — a saved override per locale, or your code default. Nothing is ever orphaned in your page.

  • GPLv2 — no premium tier, no upsell
  • No external calls, no tracking
  • Your content lives in your database
header.php
<h1 <?php bindery_attrs( 'hero_title' ); ?>>
  <?php echo esc_html( bindery_value( 'hero_title' ) ); ?>
</h1>
Try it now

Ready to make your theme editable?

Install Bindery, tick what’s editable, and hand your client a site they can update — without touching your code.

Pre‑release v0.1.0 · GPLv2 · pending review on WordPress.org