Live theme-styled preview
Sections render in an auto-sizing frame that loads your theme’s real stylesheet, not a gray placeholder.
v2.6.0Free forever · GPL-2.0Works with any theme
GT Page Blocks Builder puts a CodePen-style workbench inside the block editor. Real code editors, a live theme-styled preview, a reusable section library, theme regions, and a REST API. Your markup stays yours.
Try it right here
Three editors, one live preview. Click the tabs, switch devices, flip dark mode, then edit the code. This is what building a section feels like in the plugin, minus the wp-admin login.
In the plugin you also get CodeMirror with line folding, bracket matching and theme-class autocomplete via Ctrl+Space. A marketing page gets you a textarea. The preview pipeline is the same one.
Everything in the box
There’s no Pro tier hiding the good parts. Every feature below ships in the same free, GPL-2.0 download.
Sections render in an auto-sizing frame that loads your theme’s real stylesheet, not a gray placeholder.
Line numbers, code folding, bracket matching, and undo history that doesn’t fight Gutenberg’s.
Type class=" and press Ctrl+Space. Suggestions are scanned from your theme’s CSS, so sections speak its design language.
Edit every section of a post on the actual page, with Emmet expansion and template switching. One click from the admin bar.
OpenAI, Anthropic, or Gemini. Describe a section and the HTML, CSS, and JS land in their own editors. Plain code you own.
Save a section once, reuse it everywhere. A card grid with live thumbnails, search, status filters, and bulk actions.
Header, hero, before and after content, sidebar, footer, 404. Assign blocks and render each region with one function call.
Pin blocks to wp_head, wp_footer, loop_start and friends with priority ordering, or drop [page_block id="42"] anywhere.
Full CRUD under pbb/v1 with duplicate and server-render endpoints, plus a WP-CLI migration command. Automation is first-class.
Reusable library
This is the library picker, exactly as it looks when you browse saved blocks from the editor. And it works: search it, filter it, pick a block, click a shortcode to copy it.
home-section-kinetic
social-proof-strip
featured-guides-blog
tools-section-on-homepage
faq-accordion
404-page
No blocks match. In the real library that’s your cue to write one.
These are real blocks from this site’s library, 161 and counting. Change picks a block like it does in the editor. The gray [page_block] chip copies the shortcode, same one the admin list shows for every block.
Theme regions · new in 2.6.0
Assign any library block to a region and render it with one line of PHP. Pair the plugin with a near-empty theme and the entire site becomes editable, versioned, previewable sections.
Nav bars, announcement strips, mega menus. One library block, rendered site-wide, versioned like everything else.
<?php gt_pb_region( 'header' ); ?> Don’t want to touch theme files at all? Blocks can also hook straight into core actions like wp_body_open and wp_footer with priority ordering. Upgrading from the old block name? wp gt-pb migrate-blocks rewrites stored content in one pass, dry-run included.
For developers
Sections are stored as standard blocks in post_content, so nothing here is proprietary. Reach them from templates, shortcodes, HTTP, or the command line.
# Anywhere shortcodes run: widgets, templates, other plugins
[page_block id="42"]
# Or reference by slug, so IDs can change between environments
[page_block slug="cta-footer"] # Everything in your library
curl https://example.com/wp-json/pbb/v1/page-blocks
# Create a section from a script or CI job
curl -X POST https://example.com/wp-json/pbb/v1/page-blocks \
-u admin:app-password \
-d title="CTA band" \
-d content="<section>...</section>" \
-d status=publish
# Server-rendered HTML for block 42
curl https://example.com/wp-json/pbb/v1/page-blocks/42/render # See what a block-name migration would touch, safely
wp gt-pb migrate-blocks --dry-run
# Then rewrite stored content in one pass
wp gt-pb migrate-blocks <?php /* header.php, the whole thing */ ?>
<?php gt_pb_region( 'header' ); ?>
<main>
<?php the_content(); ?>
</main>
<?php /* or render one block anywhere in PHP */ ?>
<?php echo do_shortcode( '[page_block id="42"]' ); ?>
<?php gt_pb_region( 'footer' ); ?> No front-end framework, no builder runtime. Per block you choose inline or file output and JS in footer or inline. Everything is minified at render and section CSS lands in one style tag in <head>.
Per-block opt-in plus a site-level gt_pb_can_execute_php filter. When execution isn’t allowed, tags are stripped, never printed. REST writes require manage_options.
Deactivate everything and your sections are still ordinary markup in post_content. No shortcode soup, no orphaned wrappers, no ransom note.
Pricing
The usual builder math
GT Page Blocks Builder
$0 forever
Getting started
Upload the zip, activate, pick which post types get the builder in Page Blocks → Settings. That’s the whole setup.
Add a Page Block, write HTML, CSS and JS against the live preview. Or describe the section and let your own AI key draft it.
Push it to the library, insert it on any page, drop the shortcode in a widget, or assign it to a theme region site-wide.
Questions
Everything else lives in the readme on GitHub, next to the code that answers it.
Read the source →Yes, any theme. Previews load your theme’s stylesheet automatically, and theme regions are optional one-line function calls. It started life inside Marketers Delight and now runs standalone.
Your sections are stored as standard blocks in post_content. Deactivate everything and the HTML is still your HTML. Nothing collapses into shortcode soup.
There is no front-end runtime. Section CSS is collected into a single style tag in the head, or written to cacheable static files if you prefer. HTML, CSS, and JS are minified at render.
Yes, and it’s double-gated on purpose: a per-block opt-in plus a site-level gt_pb_can_execute_php filter. When execution isn’t allowed, PHP tags are stripped, never printed. Only grant block-editing access to users you’d trust with code execution.
No. They’re off until you add your own OpenAI, Anthropic, or Gemini API key. Requests go straight from your server to your provider. Nothing is proxied through mine.
GPL-2.0-or-later, with the source on GitHub. Download it, read every line, fork it, use it on client sites. There is no Pro version waiting behind a curtain.
The editor, the visual builder, the library, theme regions, the REST API, the AI assist. One free, GPL plugin, and every line of it is yours to keep.