The GutenBricks is a plugin designed to enhance the block layout capabilities within WordPresss Gutenberg editor. By integrating advanced functionalities, this tool allows users to construct complex page structures with ease, significantly optimizing the design and workflow processes for developers and designers alike.

Plugin Version: 1.1.31
 
WordPress plugin GutenBricks

Plugin Features

GutenBricks is engineered to transform the way blocks are handled, offering an intuitive solution for crafting dynamic and engaging layouts. Through its comprehensive set of features, it empowers users to efficiently manage and customize blocks, providing a robust foundation for building web pages that are both visually stunning and functionally superior. With this tool, developers can explore a range of possibilities in design, facilitating a seamless integration of creativity and functionality.

Offering a user-friendly interface, it simplifies the process of adding sophisticated block elements without sacrificing usability or flexibility. Users can delight in its streamlined operations that enable quick customization, whether adding intricate designs or modifying existing layouts. This ensures that even those with minimal coding experience can execute professional-grade adjustments, aligning their websites more closely with their branding and design standards.

Developers will appreciate the modular approach GutenBricks takes, allowing for the harmonious scaling of layouts to meet various demands. It is designed to seamlessly fit into existing workflows, enhancing Gutenberg’s core capabilities without overwhelming less technical users. By focusing on modularity and adaptability, the tool facilitates the creation of responsive designs that maintain their integrity across different devices and screen sizes.

The versatility of this plugin also extends to compatibility with a vast array of themes and other plugins, ensuring that integration issues are kept to a minimum. This adaptability helps facilitate a broader range of design execution, tailoring the user experience in accordance with differing project requirements. Its compatibility aspects make it a versatile choice for a wide audience, from casual WordPress enthusiasts to professional web developers seeking more sophisticated design controls.

Ultimately, GutenBricks delivers enhanced control over block layouts, pushing the limits of what Gutenbergs editor can achieve. By allowing greater creative freedom and bolstering the design process, it stands as a vital asset in the toolkit of anyone looking to elevate their WordPress sites with expertly crafted and compelling layouts.

Specifications:

Release date: 20-01-2017
Last updated: 25-09-2026
Type: Paid
License: GPL 
Subject: Style & Design
Compatibility: W5.x W6.x
Includes: Plugin
Language packs: English
Developer: GutenBricks

Rating:
4.421875 1 1 1 1 1 (64 Votes)

Download by subscription!

You need to log in on the site and purchase a club subscription!

Share with your friends!

 

GutenBricks Guide: How to Turn Bricks Templates into Manageable Gutenberg Blocks

GutenBricks is not meant to replace Bricks Builder or the WordPress block editor. Its practical purpose is more specific: a designer or developer builds a polished component in Bricks, and the site editor receives that component as a Gutenberg block where they can change only the parts they are allowed to edit. This guide walks through that workflow without unnecessary magic, from checking the environment and creating your first template to working with variants, InnerBlock, ACF/Meta Box, validating the output, and diagnosing common issues.

This article is aimed at site owners, freelancers, and agencies that already use Bricks and want to hand pages over to clients without the risk of clients accidentally breaking the grid, spacing, classes, or more complex dynamic behavior. So this is not a standard promotional overview. Instead, it focuses on a practical workflow: what decisions to make before installation, where to enable a template as a block, how to restrict editing, how to check the live front end, and what to do if the block does not appear or renders incorrectly.

There is also an important current context to keep in mind: the official site states that GutenBricks has become part of UEEE, while existing licenses and active access remain valid. For day-to-day setup, that does not change the core principle: WordPress, Bricks Builder, and Gutenberg still work together, and the plugin itself is responsible for creating a safe client editing experience.

GutenBricks working together with Bricks Builder and the WordPress block editor
The core GutenBricks workflow: the template is built in Bricks, and the editor works with it as a controlled Gutenberg block.

What the Plugin Does and Where It Is Actually Useful

GutenBricks solves a common conflict between polished visual builder layouts and safe day-to-day content editing. Bricks is convenient for designing structure, grids, classes, responsiveness, and dynamic data. Gutenberg is better for writing, rearranging blocks, working with posts, and giving access to editors who do not need to see the entire site builder. The plugin bridges those two modes: a Bricks template becomes a WordPress block, while the template owner decides in advance which fields are available to a regular editor.

The clearest example is a service card, testimonial block, promo section, CTA, team card, feature block, FAQ item, or a section with repeatable cards. A developer builds the component once, defines the styles and behavior in Bricks, then enables the necessary fields: text, image, link, toggle, option selector, an ACF/Meta Box value, or an inner area for standard blocks. After that, the editor inserts the block into a post or page and changes the content from Gutenberg's familiar right-hand sidebar without touching the original layout.

The point is not that GutenBricks creates yet another library of ready-made blocks. Its real strength is bringing an already designed Bricks system into a controlled editorial layer. If your site is built in Bricks and includes repeatable sections, the plugin helps turn those sections into a block set your team can use. If you are not using Bricks yet, want to build blocks only with PHP, or need fully native blocks without builder dependencies, it makes more sense to compare GutenBricks with ACF Blocks, Meta Box MB Blocks, Blockstudio, or Bricks' built-in capabilities from the start.

One important limitation: GutenBricks depends on a working Bricks Builder setup. It is not a standalone block builder for any WordPress site. If Bricks is disabled, missing, or the team is not ready to maintain Bricks templates, you end up with a dependency that makes the site harder to support. That is why, before adopting it, you should answer two questions: who will maintain the source templates, and who will be editing content day to day through Gutenberg.

Who It Fits

  • Agencies building sites in Bricks that want to give clients a simple editing panel instead of full access to the builder.
  • Freelancers who need repeatable branded blocks for landing pages, blogs, service pages, and case studies.
  • Content teams where the designer owns the system and the editor updates text, images, links, and display variants.
  • Projects using ACF or Meta Box where values should live inside a specific block or feed into a Bricks template as dynamic data.

Who It May Not Fit

If the site does not use Bricks, this plugin should not be your first choice. If the team wants fully native block development based on block.json, PHP, and JS, GutenBricks may feel like an unnecessary middle layer. If editors need to freely change any part of the layout rather than only approved fields, then standard Gutenberg patterns, Bricks components as blocks, or full visual-builder access with training and role control may be a better fit.

What to Check Before Installation and Your First Test

Do not start on a live client site. The best first run is a project copy, a staging environment, or a local setup with the same theme, Bricks settings, global classes, and required ACF/Meta Box fields. GutenBricks sits at the intersection of several systems, so the issue is often not the block itself but the combination around it: the template is the wrong type, the bundle is not active, the post type is disabled, the ACF location rule points to the wrong target, or the public page is rendered through the wrong template.

The minimum setup to verify looks like this: an active WordPress site with the block editor, Bricks Builder installed and working, access to Bricks templates, GutenBricks installed, and a test post or page where you can insert blocks. If you plan to use custom fields, decide in advance where the data will come from. For a simple block, native GutenBricks fields or editable Bricks elements are enough. For structured data, ACF or Meta Box is more convenient. For dynamic data coming from posts, CPTs, or taxonomies, you need to verify how Bricks pulls that data and where it should be stored.

Check user roles as well. Do not give an editor access to Bricks Builder just because the block was created in Bricks. The whole point of GutenBricks is separation: the developer controls the structure, the editor controls the content. On the test site, create a role or user similar to the real client and go through the entire workflow from inserting the block to publishing. That will reveal not only technical problems but also unnecessary fields, unclear names, risky toggles, and settings that are too flexible.

Safe validation approach: first create one simple block with no ACF, no InnerBlock, and no variants. If it appears in the editor, saves correctly, and looks the same in the editor and on the site, only then add dynamic fields and more complex structure.

Theme, Class, and Cache Compatibility

Bricks styles, global classes, Automatic CSS, BricksExtra, and similar libraries can affect how the block appears inside Gutenberg differently from how it appears on the live page. The official GutenBricks changelog includes many fixes around CSS, dynamic classes, rendering, editor styles, and third-party integrations. The practical takeaway is simple: do not assume visual accuracy in Bricks automatically guarantees visual accuracy in the block editor. After each new block type, check three states: the Bricks template, the Gutenberg editor, and the live page.

Cache can also get in the way of troubleshooting. If you are testing a block, changing fields, and not seeing the updates, temporarily disable CSS/JS optimization, clear the site and browser cache, and test again. Do not jump straight to code changes or plugin reinstallation. In most cases, you first need to confirm that the template is published, the bundle is active, the post type is allowed, and the page is rendered through the correct template.

Your First Block: From a Bricks Template to Gutenberg

The basic workflow starts in Bricks templates. Create a new template and set its type to GutenBricks - Block. This is a critical step: if you leave it as a regular template type, the block will not appear in Gutenberg. Name the template so the editor understands what it is for, for example Service CTA, Feature Card, Author Bio, or Case Study Teaser. Inside Bricks, build the structure the same way you would build a normal section: a root container, heading, text, image, button, classes, and responsive settings.

After saving the template, open the block editor and try to find the new block by name. If it does not appear, do not rebuild the template from scratch. Check three things: the template type, whether the template is published, and its bundle assignment. According to the documentation, if a template is not assigned to a separate bundle, it falls into default. But if you assigned it to a custom bundle, that bundle must be enabled in GutenBricks settings. That is also where you control which post types the blocks are available for. This matters on projects with different editorial areas: for example, blocks for service pages do not necessarily need to appear in blog posts.

Setting up the first GutenBricks block through a Bricks template and bundle
The first working path: template type, bundle, allowed post type, and block validation in the WordPress editor.

Why It Is Better to Start with a Simple Block

A simple block helps you separate a system issue from a problem in more complex behavior. Use a section with one heading, one paragraph, and one button. First confirm that it appears in Gutenberg, saves properly, renders on the site, and does not break the width. Then enable editable fields. Only after that should you add variants, InnerBlock, ACF, Meta Box, conditional elements, and dynamic classes. This order may seem slow, but it saves time: if a complex block fails, you already know the core Bricks template -> GutenBricks block -> Gutenberg editor pipeline is working.

How to Name Blocks for the Client

Name blocks for editors, not for developers. CTA with image and split layout may make sense to a developer, but a client will usually find Call-to-Action Block with Image easier to understand. If the interface remains in English, keep names short and avoid internal abbreviations. The name should answer the question "where do I insert this?" rather than "how was it built?" On an agency site, you can group blocks by purpose: Hero, Service Card, Proof Strip, FAQ Item, Case Teaser. Inside client-facing documentation you can explain these names, but inside the WordPress interface it is better to keep the exact UI labels your setup already uses.

What to Check After Inserting the Block

  1. Open a test page in the block editor and insert the new block from the inserter.
  2. Change one allowed field, such as the heading or button URL.
  3. Save the page and refresh the editor to confirm the value did not reset.
  4. Open the public page without admin privileges and compare the width, spacing, image, button, and link.
  5. Go back to the Bricks template, change the visual design, save it, and confirm that the existing block picked up the updated design without losing its content.

If all five checks pass, the setup is ready for more complexity. If not, move to the troubleshooting section at the end of this guide, but do not stack new features on top of an unstable foundation.

Bundles and Post Types: How to Keep the Editor from Filling Up with Extra Blocks

Template bundles are one of those GutenBricks features that are easy to underestimate at first and very hard to clean up later. A bundle controls the visibility of a group of templates as blocks or patterns. According to the official documentation, the default bundle is enabled automatically, while other bundles must be activated in settings. On a small site, that can feel like a formality. On an agency project with dozens of components, it becomes a navigation system.

Split blocks according to who will use them and where. For example, a Marketing Sections bundle can be available on pages, Blog Enhancements on posts, Case Studies on case-study CPTs, while experimental blocks stay disabled until review. This reduces the risk of an editor inserting a complex block in a place where it was never tested. It also makes design maintenance easier: you can update a group of blocks and know exactly which content types use them.

Block or Pattern

The GutenBricks documentation specifically points out that patterns, in the plugin's earlier sense, are not "true" Gutenberg patterns where the client can freely edit the entire layout. They are closer to a wrapper around the original block. In practical terms, that means: if you want to give the editor a ready-made section with controlled fields, use the GutenBricks block model. If you need to give them a starter composition they can freely break apart and change, native WordPress patterns are usually the better option.

Do not mix those two goals. Synchronized design and a free-form starter layout require different expectations. GutenBricks is strongest where component stability matters: a card, CTA, feature section, repeatable service block. A native pattern is better where freedom matters: a rough landing page structure, a set of content sections, or a draft page template.

Post Types as an Editorial Filter

Availability by post type is not just about keeping the block list tidy. It also protects against the wrong context. A "Case Study Card" block may depend on case-study fields that do not exist in a normal blog post. A "Service Promo" block may be designed for a wide page and disrupt the rhythm of a narrow post template. So after creating a new bundle, check where it is genuinely needed and enable only those post types.

Practical rule: if an editor has to ask whether a block can be inserted on a certain page type, the bundle and post type settings are too broad.

Controlled Editing: Which Fields to Expose to the Editor

The real value of GutenBricks is not revealed when the block first shows up in the list. It appears when you limit editing to clear and safe fields. In Bricks, you can build a rich section and still expose only the heading, subheading, image, link, variant selector, and one toggle to the editor. That turns the block into a small form: the user enters content while the design stays stable.

Start by dividing elements into three groups. The first is editorial content: text, images, links, captions, rating values, and quotes. The second is safe options: card type, icon on or off, light or dark version, media/text order. The third is system design: containers, grid, global classes, padding, query behavior, breakpoints. The first group is usually safe to expose. The second should be exposed only through limited controls. The third is best left in the Bricks template and hidden from regular users.

Fine-Tuning Instead of Full Freedom

If an element offers an option such as Enable Editor Field, use it deliberately. Do not switch on everything. The more fields you expose, the more the block turns into a mini builder instead of a safe component. For a service card block, five fields are often enough: heading, description, image, button URL, and an icon visibility toggle. Colors, sizes, spacing, and column counts are usually better handled through predefined variants or classes.

This approach matters especially on client sites. Clients often ask for "a little more flexibility," but in practice they usually need a fast way to change content without fear of breaking anything. Give them freedom where it matches the task, and hide anything that could damage the system. A good GutenBricks block feels like a publishing form, not a copy of the Bricks panel.

Fields Worth Testing First

  • Text fields: do they preserve line breaks, links, and formatting where needed.
  • Images: does the alt text update, does the selected size stay intact, and does mobile focus remain correct.
  • Links: can the button URL be edited safely, and does clicking stay disabled inside the editor.
  • Toggles: do they hide only the intended element, and do they avoid leaving empty spacing behind.
  • Select fields: are the available values clear to the editor without developer documentation.

Built-In Documentation Through Field Names

If a field is called Variant, editors often do not know what exactly they are changing. It is better to use names that describe the outcome: Layout, Card style, Show icon, Button URL, Badge text. In client documentation, you can say "Choose the card layout," but inside the interface keep the exact labels used in your setup. That makes support easier: when the client sends a screenshot, you see the same label that appears in the instructions.

Variants: One Block, Multiple Layouts Without Duplicating Templates

Variants in GutenBricks help you avoid creating separate blocks for sections that are mostly similar. The documentation describes them as a way to let the user choose a layout or style inside one template. A typical example is a card with a version that has the image on top, a version with an icon, a version with a background image, and a compact version for a grid. Without variants, you would have to create multiple blocks and the editor would have to remember which block fits which case. With variants, the editor chooses the layout inside a single block.

The behavior is similar to a visibility toggle, but it acts more like radio selection: only one variant stays active at a time. In Bricks, you select the element that will become a variant, usually a section or container, create sibling elements for the other variants, configure each one, and enable it as a variant in the GutenBricks section. Each variant gets its own name, label, and, if needed, preview thumbnail. In the template settings, you can change the field type, for example to radio or dropdown, if that is easier for the client.

Variants in GutenBricks for choosing a card layout
Variants are useful when the section structure changes, for example a card with an image, an icon, or a compact text-only view.

When to Use Variants and When to Use Classes

Do not use variants for every small difference. The official documentation explicitly recommends them for layout changes that are difficult to express with simple CSS values. If you only need to change a color, padding, background, or state, dynamic classes, dynamic data, or the Style Editor are often a better fit. Variants are justified when the actual structure changes: media on the left or right, multiple card types, an alternative hero composition, or different internal blocks.

The main risk with variants is content drift. If each variant has independent fields, the editor switches the layout and sees empty values. So before duplicating variants, assign Value Binding for shared content fields. That way the heading, text, and image stay in place when the layout changes instead of living separately inside each sibling element. This is one of those things that is much easier to set up before you multiply the variants. Linking fields by hand later is far more tedious.

A Practical Setup for a Service Card

  1. Create the base card container in Bricks and add fields for the heading, description, image, and button URL.
  2. Assign the same value binding to shared fields so content does not disappear between variants.
  3. Duplicate the container next to it and change only the layout, for example media-top, icon-only, or compact.
  4. Enable each container as a variant and give it a clear label.
  5. Insert the block into Gutenberg, enter the text once, and switch between variants.
  6. Confirm that the text and images remain while only the appearance changes.

Expected outcome: the editor sees one block and one set of content, but can choose among approved layouts. If values disappear when switching, go back to Bricks and check Value Binding before handing the block off to the client.

InnerBlock: When the Block Needs Regular Gutenberg Blocks Inside It

InnerBlock is useful when a rigid predefined structure becomes too limiting. For example, you may have a "Features" section with branded framing, width, spacing, and style, but inside it the editor needs to add several regular paragraphs, headings, lists, or child cards. In that case, GutenBricks lets you insert the special GutenBricks InnerBlock element into the required area of the Bricks template. In the editor, that area becomes a place where approved Gutenberg blocks can be added.

InnerBlock has one important limitation: Gutenberg allows only one InnerBlock per block, and GutenBricks ignores additional InnerBlocks. You cannot work around that by duplicating the element. If you need two independent editable areas, rethink the structure: you may need a parent block with one InnerBlock and child blocks inside it, or separate blocks that the editor inserts one after another. Trying to force multiple InnerBlocks usually makes maintenance harder and behavior less predictable.

Restricting Allowed Blocks

In the GutenBricks InnerBlock settings, you can specify which core or non-GutenBricks blocks are allowed. You can leave the field empty to allow everything, but that is rarely a good idea on client sites. If the area is meant for text, allow Paragraph, Heading, and List. If it is a card grid, allow only the required GutenBricks child block, such as Feature Item. The documentation shows a setup where the parent container allows only one type of child block, and that child block can be inserted only inside a specific parent.

This kind of control turns the block into a small editorial system. The editor can add elements, but only within boundaries the design can handle. That is especially useful for repeatable sections: feature lists, accordions, spec cards, step blocks, team sections, and FAQs. In each case, the parent controls the frame and layout, while the child block controls the repeatable unit.

Default Blocks and the Initial State

If you leave InnerBlock empty, the editor sees an empty area and may not understand what belongs there. The documentation includes a Default Blocks setting where you can paste a string representation of a block copied from Gutenberg. This is useful as a starter example: one empty child item, one heading and paragraph, or one prepared card. Do not make the initial state too large. Its job is to show the format, not to build the entire section for the editor.

Set Parent for Child Blocks

If a child block should be used only inside its parent, specify that parent in GutenBricks settings. Otherwise, the editor will be able to insert the child card anywhere, even where it has no proper container, CSS context, or grid. The test is simple: try inserting the child block by itself on an empty page. If it looks wrong or makes no sense, it should be restricted to its parent block.

ACF, Meta Box, and GB:Meta: How to Connect Data to a Block

Dynamic data in GutenBricks is especially useful when a block needs to store structured values such as a rating, repeatable items, a color, a date, an image, a link, a selected post, an email, a URL, or a true/false toggle. The official ACF documentation describes the workflow like this: values can be edited inside the block, shown in the Gutenberg sidebar, and instantly update the block. At the same time, it is important to understand the difference between block data and post data. GutenBricks looks for values inside the specific block first, and then can query related sources such as the page, post, or template.

The most common ACF issue is an incorrect location rule. The ACF setup documentation highlights one important step: the field must be attached to the Bricks Template or to the specific template post so it appears where you expect it to. If you assign the field group too broadly, the fields will appear everywhere. If you assign it too narrowly or to the wrong place, it will not appear in Gutenberg at all. So for each block, document where the field group lives, which template it controls, and which fields should show up in the editor.

ACF and Meta Box fields inside a GutenBricks block
It is best to design block data like a short form: field group, location rule, editorial sidebar, and a verifiable outcome.

Which Fields to Use Carefully

The ACF/Meta Box integration documentation lists supported fields and separately notes that the password field is not supported for security reasons. That is the right guideline: do not store secrets, keys, passwords, tokens, or credentials in block fields. For regular blocks, text, text area, range, image, select, checkbox, true/false, radio, date/time, color, email, and URL are usually enough. If a field affects HTML or CSS output, constrain the values through select, radio, or range instead of free text.

GB:Meta and Built-In Dynamic Data

GutenBricks also includes its own dynamic data tokens such as {gb_block_id}, {gb_element_id}, {gb_query_index}, and block-load events in the editor. In a typical article, you do not need to use all of these tokens. But {gb_block_id} is useful when you want to isolate styles for a specific block instance, and {gb_query_index} can help in repeatable query-based setups where the item index matters. If the data source is not obvious, do not add a token just for the sake of elegant architecture. First make sure it solves a real block problem.

A Small Safe CSS Pattern for Instance Isolation

The documentation for Code Block with Dynamic Data shows the idea: add a dynamic class such as block-{gb_block_id} to the parent element and use it in CSS. This prevents the style from affecting every similar block on the page. The example below should be used only after the parent element has actually been assigned the dynamic class block-{gb_block_id} and the color comes from a validated field.

.block-{gb_block_id} .brxe-rating .full-color {
  color: {gbmeta_star_rating_color};
}

The test is simple: place two instances of the block on the same page, give them different color values, and confirm that each instance changes separately. If the color applies to all blocks, the class is not attached to the correct parent or the selector is too broad. The rollback is safe: remove the CSS and dynamic class, clear the cache, and save the template again.

When You Need gb_get_field()

If the code editor or part of the Bricks setup cannot read block meta directly, the official documentation suggests the gb_get_field() function. It can retrieve ACF and Meta Box values by trying the block first and then related sources. In editor-facing documentation, this function is usually not shown. It is intended for developers building more advanced output. Use it selectively and check that the function exists before calling it, so you do not trigger an error if the plugin is disabled.

Page Templates and Public Rendering: Why the Block Looks Fine in the Editor but Wrong on the Site

After the block is created, many issues show up not in Gutenberg but on the public page. The block is inserted and its fields are saved, but the page is not full width, the section is compressed, an empty area is visible, or the content does not render at all. The official GutenBricks documentation describes several ways to control page rendering: the built-in GutenBricks template, a separate GutenBricks - Page Template, a regular Single template with a Post Content element and a WordPress data source, or an approach using a child theme and Render with WordPress.

Do not choose a method at random. If the site is mostly built in Bricks, it often makes sense to create a Single template or GutenBricks Page Template that explicitly includes Post Content and outputs WordPress content. If the client needs to choose different page templates in Gutenberg, a separate GutenBricks - Page Template may be more convenient. If you want to stay closer to the standard WordPress flow, the Render with WordPress option can help, but it depends on the child theme and the theme's templates.

Checking Width and Container Behavior

The most common visual question is: "Why does the section look wide in the editor but narrow on the live site?" The reason may be that the public page is being rendered through a standard Bricks or theme template where Post Content sits inside a container. In that case, the block itself is fine, but its outer container is constraining the width. Check the selected page template, the presence of Post Content, the data source, and the width settings of the block's root element. Do not try to fix this with random CSS such as width: 100vw unless you understand the parent container, because that can create horizontal scrolling and break nested blocks.

The Posts Page and Other Special Cases

The troubleshooting documentation specifically mentions the case where a page is assigned as the posts page. WordPress may force that page to use a predefined posts template, and your blocks can behave differently from how they do on a regular page. So if the rendering does not match, check not only GutenBricks settings but also WordPress reading settings, the assigned blog page, Bricks template conditions, and any theme-level overrides.

Critical expected state: the same block should preserve its content in Gutenberg and render through a clearly understood page template on the public page. If you do not know which template is rendering the page, start troubleshooting with the render chain, not with the block itself.

Practical Example: Building a Services Section with Cards and Safe Editing

Let us take a realistic agency-site example: you need a "Services" section where the client can add cards, change headings, descriptions, and links, choose from several approved card variants, but cannot break the grid, spacing, or classes. This is a strong GutenBricks use case because it includes a parent block, a child block, InnerBlock, variants, dynamic fields, and public-output validation.

Goal

Build a section the editor inserts onto the page as a single block. Inside that section, they add service cards, and each card has manageable content and limited styling choices. The design of the section remains controlled by the Bricks template. On the public page, the grid should stay responsive, buttons should link to the correct pages, and changes to the source template in Bricks should update the structure without wiping out the content of individual cards.

Preparation

  1. Create a staging or local copy of the site with WordPress, Bricks Builder, and GutenBricks active.
  2. Prepare classes in Bricks for the section, grid, and card so styles do not have to be defined manually in every block.
  3. Decide whether the card fields will be native, ACF/Meta Box, or mixed. For the first test, a heading, description, image, and link are enough.
  4. Create a parent template of type GutenBricks - Block for the services section.
  5. Create a child template of type GutenBricks - Block for the service card and restrict it to its parent if it should not be used on its own.

Setup Steps

In the parent template, build the outer section, the section heading, a short intro, and the grid container. Inside the grid, insert GutenBricks InnerBlock. For that InnerBlock, allow only the service-card child block. If the editor needs a starting example, add one Default Block. Do not allow all core blocks if the grid is intended only for cards. Otherwise, the editor may insert an image, columns, or an unrelated block, and the layout will become unpredictable.

In the child template, build the card. Make the heading and description editable, expose the button link through a field, and control the image or icon through a limited setting. Add variants for different card types: Image Card, Icon Card, Compact Card. Configure Value Binding for shared content fields before duplicating the variants. If you need to hide the button, use a toggle, but confirm that no empty bottom spacing remains when the button is hidden.

Practical GutenBricks workflow for a services section with cards
A working example: the parent section defines the grid, child cards are edited in Gutenberg, and variants change only the approved layout.

Checking the Output

Insert the parent block on a test page. Add three child cards through InnerBlock. Fill them with different text, images, and links. Switch the variant on one card and confirm that the other cards do not change. Save the page, open it in a new tab, and check the public output: the grid is intact, the cards are evenly aligned, the links open the correct pages, the headings follow the right hierarchy, and the mobile view does not create horizontal scrolling.

Now go back to Bricks and change the visual style of the child template, for example the border radius, spacing, or typography. After saving, refresh the public page. The card content should stay the same while the design updates centrally. This is the core test that justifies using GutenBricks: content is edited locally, while design is maintained centrally.

A Commonly Missed Pitfall

If the card inside InnerBlock depends on the parent grid, do not allow it to be used independently. Otherwise, the client may insert the child card into normal post content where it appears cut off or too wide. For those child blocks, configure parent restriction and give them a clear name such as Service Card Item so their role is obvious.

Quality Checks Before Handing the Block to a Client

Before giving the client a new block, do not stop at technical validation. Check the editorial experience as well. A block may work technically and still be awkward to use: too many fields, unclear labels, variants without previews, no starter state, overly flexible color values, or unclear behavior when an image is missing. GutenBricks helps you build a safe editorial layer, but the quality of that layer depends on your decisions.

Content Validation

  • Remove optional text and save the page. The block should still look clean or show a sensible fallback.
  • Upload an image with a different size. Confirm that it does not stretch or break the card height.
  • Leave the URL field empty. The button should either hide or remain harmless, depending on your logic.
  • Enter a long heading. On mobile, it should not overflow the container or overlap nearby elements.
  • Switch the variant several times and confirm that values do not reset.

Performance Checks

The GutenBricks changelog includes fixes for rendering and block-loading performance, so on a real site you should test not just one block but a page with multiple instances. Insert five or ten identical cards, open the editor, change several fields, and see whether editing becomes noticeably slow. On the public page, check how much CSS and JS is actually being added. If the block contains a heavy gallery, video, slider, or dynamic query, measure it separately from a simple text block.

Accessibility and SEO Checks

GutenBricks by itself does not guarantee correct semantics. That depends on your Bricks template. Check heading levels, image alt text, button and link aria labels, reading order, keyboard focus, and the absence of clickable containers without meaningful link text. The changelog includes fixes for aria labels and links, but that does not replace manual checking of the actual block. For SEO, the important part is not "block magic" but whether the final HTML avoids extra h1 tags, does not duplicate headings, does not hide important text in a non-indexable state, and renders correctly on the public page.

Short takeaway: before handing a block to the client, it should pass through three perspectives: the developer validates the structure, the editor validates usability, and the visitor sees a stable result on the live page.

How to Build a Block Library Instead of a Pile of Random Templates

After the first successful block, it is tempting to quickly convert everything you already have in Bricks into GutenBricks. That is not always the right move. A client-facing block library should be smaller than your library of design sections. In Bricks, you may have technical templates, temporary drafts, experiments, internal-page sections, and variants that only the designer needs. In Gutenberg, you should expose only the blocks the editor will actually reuse and edit safely.

Start with a site inventory. List your repeatable sections: hero sections for landing pages, service cards, feature grids, testimonial blocks, CTAs, FAQs, author cards, notices, promo blocks inside posts, case-study sections. Then note for each one who uses it, where it is inserted, which parts should be editable, and which parts must stay locked. If a section is used once and changed only by a designer, it does not have to become a block. If it appears on dozens of pages and the editor regularly updates the text, it is a strong candidate.

A Decision Matrix for Each Candidate

For every potential block, run through a simple matrix. First question: "Is there a repeatable use case?" If not, leave the section in Bricks. Second question: "Can the editable fields be described as a short form?" If the editor needs full freedom, GutenBricks may not be the best interface. Third question: "Is there a verifiable public outcome?" If the outcome depends on complicated external behavior, build a technical prototype first. Fourth question: "Can risky changes be constrained?" If not, the block is not ready to hand off to the client.

How to Choose the Right Format for a Repeatable Section
SituationBest FormatWhy
The section repeats and the editor changes only the text, link, and image. GutenBricks block. The design stays centralized while the content is edited safely.
The section has 2-3 major layout variants. GutenBricks block with variants. The editor chooses an approved layout without duplicating blocks.
The section needs a list of child items inside it. Parent block with InnerBlock and restricted child blocks. The editor adds items without breaking the container and grid.
A completely free-form starter layout is needed. Native WordPress pattern. A pattern is better suited to free restructuring and rebuilding.
A code-based block.json/PHP workflow is needed without Bricks. ACF Blocks, MB Blocks, or Blockstudio. Those solutions are closer to native block development.

Consistent Names, Categories, and Change Rules

A block library quickly becomes difficult to use if each template is named according to the developer's personal habits. Introduce a short naming system. For example, use a purpose-based prefix: Marketing - Hero, Marketing - CTA, Content - Author Bio, Content - Notice, Case - Result Card. If the editorial interface should not show the technical prefix, use clear labels in GutenBricks settings and keep the technical names for the team.

For each block, write one sentence of documentation: where to insert it, which fields to edit, and what to check after publishing. You do not need a separate 20-page PDF. In many cases, a short note in your internal knowledge base and a couple of screenshots are enough. GutenBricks does include features related to documentation and client experience, but even without a complex system, the core discipline stays the same: every block should have a purpose, an owner, and a way to verify the output.

How to Keep Variants from Growing Out of Control

Variants should solve a real editorial branching point. If a card has two genuinely different forms, such as a media card and a compact card, a variant makes sense. If you are adding variants called "red," "blue," and "green," you should probably consider a dynamic class, a color field, or a predefined brand token instead. If a section has six variants, the editor will start guessing and support will become harder. Two blocks with clear purposes are often better than one block with ten similar states.

Test variants not only when empty, but with real content. A long heading, a missing image, a short button, two sentences instead of one, and English text that is longer or shorter than expected can all change the rhythm of the layout. If one variant handles long text well and another breaks, the editor needs a clear cue about when to use which option. Otherwise, the variant becomes a trap.

Handing It Off to the Client: How to Set Up the Workflow Without Giving Access to Bricks

The value of GutenBricks becomes real only when the client or editor can actually work without constantly asking the developer for help. Creating the block is not enough. You also need to prepare the editorial process: who creates pages, which blocks are available, which fields can be changed, what the pre-publish review looks like, and where to go if a block behaves strangely.

Start with a separate test user whose role is as close to the client's role as possible. Log in as that user and confirm that they do not see unnecessary admin sections, cannot edit Bricks templates, but can insert the required GutenBricks blocks into the allowed post types. If the user cannot access the required post type, the issue is not GutenBricks. If they see too many technical blocks, the issue is in bundles and post type filters.

A One-Page Editorial Workflow

For a client, a short workflow is more useful than a general feature list. For example: "Create a service page." It should include a sequence such as choosing the page template, inserting the hero block, adding the service cards section, filling in the cards, inserting the FAQ, checking the preview, and publishing. In that kind of workflow, GutenBricks blocks become part of a clear process rather than isolated mysterious items in the inserter.

  1. Create a test page and assign the page template that correctly renders WordPress content.
  2. Insert the blocks in the order the client will use them on the real site.
  3. Fill all allowed fields with demo content, including edge cases such as a long heading, empty optional text, and a different image.
  4. Preview the page and check the public-facing site without the admin bar.
  5. Save the page as an example or internal process template if that fits the project structure.

This workflow is very good at exposing unnecessary freedom. If, during testing, you catch yourself saying "it is better not to touch that field," then the field should be hidden, restricted, or renamed. If the client has to remember five exceptions, the block is too technical.

Responsibility Boundaries

Set one simple rule: the editor changes content inside Gutenberg, and the developer changes structure in Bricks. That protects both sides. The client does not break the system, and the developer does not end up with dozens of tiny requests to replace text. If the client needs a new version of a block, that is not always an "urgent edit." It may actually be a new variant, a new child block, or a new template. That decision belongs to the person responsible for the design system.

For agencies, it is useful to keep a block list with an owner and a status: draft, testing, client-ready, deprecated. Do not include draft blocks in client bundles. Keep testing blocks only on staging. Do not delete deprecated blocks immediately if they are already used on pages, but do stop editors from inserting them into new content. This structure becomes especially important after GutenBricks updates or after part of the product moves into the UEEE ecosystem.

Training Check

Ask the client to create one test page on their own using the instructions. Do not help immediately. Note where they stop: they cannot find the block, do not understand a field label, confuse the variant, forget to choose a page template, cannot find the preview, or insert a child block outside its parent. Those are signs that the setup needs improvement, not that the person is the problem. A good block should not require knowledge of Bricks' internal architecture.

Updates, Maintenance, and a Careful Strategy for the Live Site

GutenBricks lives at the intersection of WordPress, Bricks, Gutenberg, ACF, Meta Box, WPML/Polylang, CSS frameworks, and third-party add-ons. That means updates should not be treated as a formality but as a change to the full stack. The GutenBricks changelog shows that fixes often target specific symptoms: block not showing in editor, slow rendering, dynamic data in editor, aria labels, duplicated Bricks queries, WPML images, InnerBlock restrictions, global theme styles, and editor CSS. That is useful information when planning your tests.

Before updating production, create a short regression checklist based on the blocks that are actually in use. You do not need to test the whole site manually if there are many blocks. Pick one example of each type: a simple text block, a variant block, a parent/child setup with InnerBlock, an ACF/Meta Box block, a block with dynamic CSS, a translated block, and a block on a page with a nonstandard page template. If those pass, the risk is lower. If one type fails, you immediately know which part of the stack is most suspect.

What to Check After an Update

  • Blocks still appear in the inserter for the correct post types.
  • Bundles did not reset their mode from blocks to patterns or vice versa.
  • Variants keep shared content and do not lose Value Binding.
  • InnerBlock accepts only the approved child blocks.
  • ACF/Meta Box fields appear in the correct block and do not show up in unrelated places.
  • The public page is rendered through the correct page template.
  • Editor preview styles and live front-end styles have not drifted in a major way.
  • Buttons and links do not become dangerously clickable inside the editor and still work correctly on the site.

When It Is Better to Roll Back a Setup

A rollback is not only for fatal errors. If, after an update, one block becomes slow to open, a query duplicates items, an ACF field saves unreliably, or the editor preview gets in the editor's way, it is better to temporarily restore the working version on staging and wait for a clear fix. Do not try to patch a systemic issue with ten local CSS and PHP tweaks. The more temporary fixes you build around the block, the harder future updates will become.

Pay particular attention to blocks that use dynamic data and custom CSS. If the CSS depends on {gb_block_id}, test multiple instances on the same page. If block meta is read through gb_get_field(), confirm that the function exists and returns the value in the required context. If a field depends on an ACF location rule, check not only the editor but also the public render. A block is not considered stable because it looked good once. It is stable when it survives saving, updating, and repeated editing.

What to Do About GutenBricks Moving Into UEEE

The current official page says that GutenBricks has become part of UEEE, while active licenses remain valid and the plugin continues to be supported. That matters as product lifecycle context, but it is not something to build unverified promises around. For a site owner, the practical takeaway is simple: keep access to your account, monitor the changelog, do not base production workflows on experimental features without staging tests, and document which blocks are already in use.

If you are still choosing a tool, ask yourself whether you specifically need a Bricks -> Gutenberg workflow or whether you are looking for a general way to create custom blocks. In the first case, GutenBricks remains a logical candidate. In the second, it is better to compare alternatives based on your development stack. That is a normal engineering choice, not a question of "which plugin is better overall." The best option depends on where your design already lives and who will still be maintaining the blocks six months from now.

Common GutenBricks Problems and How to Diagnose Them

GutenBricks troubleshooting should follow a chain, not happen randomly. First check whether the block is registered, then whether it is available for the required post type, then whether the fields save correctly, then the public render template, and only after that CSS and third-party integrations. If you start by changing CSS, disabling plugins, and recreating templates, you may hide the real cause and create a second issue on top of the first.

Diagnosing GutenBricks issues in WordPress and Bricks Builder
GutenBricks troubleshooting map: block registration, bundle, post type, fields, page template, and CSS context.

The Block Does Not Appear in the Gutenberg Editor

Symptom: the template exists in Bricks, but you cannot find it through the WordPress inserter. Possible causes: the wrong template type was selected, the template is not published, a custom bundle is disabled, the post type is not allowed for that bundle, or you are searching under a different name.

Check the template type GutenBricks - Block, publication status, bundle settings, and availability for the required post type. If the template is assigned to a custom bundle, enable that bundle as blocks. After changing the settings, refresh the editor and clear the cache. Rolling back the plugin or recreating the template makes sense only after these checks.

The Block Appears in the Editor but Does Not Render on the Site

Symptom: the block is visible in Gutenberg, but the public page is empty, compressed, or shows the wrong layout. Possible causes: the page template is not outputting WordPress content, the page is assigned as the posts page, a Bricks template is overriding the page, or the wrong render mode is enabled.

Check the page template, the presence of Post Content, and the WordPress data source. If you see an empty page, the documentation recommends trying Render With WordPress from the admin bar. Also check whether another Bricks template or WordPress reading settings are overriding the page. If the issue disappears on a normal test page, the cause is almost certainly the page template, not the block itself.

ACF or Meta Box Fields Do Not Appear in the Right Sidebar

Symptom: the field exists, but the editor does not see it inside the block, or it appears in far too many places. The likely cause is the location rule. For ACF, the documentation highlights this as the most important step: the field group must be attached to the Bricks Template or the specific template post.

Open the field group and check the location rule. If the field should belong to one block, do not assign it to all posts or all templates. If you use Meta Box, check the prefixes and data source. After correcting the setup, save the field group, the Bricks template, and the test page. If the field is still missing, temporarily test the block without variants and InnerBlock to rule out a structural conflict.

Styles in Gutenberg Differ from the Public Page

Symptom: spacing, width, grid, or typography look different in the editor than they do on the live site. Possible causes: Gutenberg adds a wrapper around the block, external styles are defined outside Bricks, third-party CSS does not load in the editor context, or a dynamic class is attached to the wrong element.

For wrapper-related issues, use Block Wrapper Dynamic Class if you need to apply a class to the editor's outer wrapper. If the CSS is defined in an external snippet, remember that GutenBricks cannot always detect and apply those styles inside the editor preview. Validate the final appearance on the public page, and if necessary add editor-specific CSS only where it is genuinely needed. If the change is risky, it is better to roll it back and keep the editor preview slightly less precise than to break the live front end.

Switching Variants Resets Content

Symptom: the editor fills in text and an image, switches to another variant, and some values disappear. This usually means equivalent fields in different variant elements are not linked through Value Binding. Go back to the Bricks template, assign the same binding to shared content fields, and only then duplicate the variants. If the variants are already built, you will need to link the fields carefully by hand and retest the switching behavior.

InnerBlock Accepts the Wrong Blocks or the Child Block Can Be Inserted Separately

Symptom: the editor can insert unsuitable core blocks into the section, or the child card can be inserted outside its parent and looks broken. Check the allowed blocks setting on GutenBricks InnerBlock and Set Parent on the child block. If the section is designed only for cards, do not leave allowed blocks empty. If the child block has no standalone purpose, restrict it to its parent block.

Blocks Behave Differently After an Update or Environment Change

Symptom: everything worked on staging, but on production some blocks fail to load, styles change, or dynamic fields disappear. Check the versions of WordPress, Bricks, GutenBricks, ACF/Meta Box, and third-party add-ons, then resave the templates and clear the cache. The GutenBricks changelog includes fixes for staging URLs, licensing cache, rendering, WordPress compatibility, WPML/Polylang, ACF/Meta Box, and BricksExtra, so if the symptom repeats, compare it with the change log. If the issue is tied to a new release, it is safer to roll back to the working staging copy and wait for a confirmed fix than to patch production with random changes.

Multilingual Setups, Fallback Content, and Working with Translations

For multilingual sites, GutenBricks requires more careful planning. The official WPML and Polylang documentation describes two approaches: using a string translator or creating separate pages for each language with their own block sets. If you need string translation, you should enable Save block content in post in the block tab. If templates are stored only in one language, WPML may also require Load blocks for all languages in the Integrations section; for Polylang, the documentation states that templates load by default.

Do not choose the translation mode out of habit. If the block contains simple strings, a button, and an image, string translation may be convenient. If blocks in different languages need different structure, different images, different links, or localized legal text, separate pages are usually more predictable. Be especially careful with variants: if one language uses three options but another needs a different layout, check that values are preserved correctly when switching and translating.

Fallback When the Plugin Is Disabled

The GutenBricks changelog mentions an improvement related to fallback content when saving block content in the post is enabled. This is an important resilience concept: if Bricks or GutenBricks is temporarily disabled, the page should not become completely empty where readable content can be preserved. But fallback is not a replacement for full rendering. Treat it as an emergency layer, not as the main publishing method.

What to Check in Translations

  • Whether the block appears in the editor for the correct language.
  • Whether translated values stay saved after refreshing the page.
  • Whether images disappear when they are wrapped in links.
  • Whether ACF/Meta Box values stay separated between languages.
  • Whether the public page renders correctly through the selected page template.

If you do not need multilingual support right now, do not enable extra settings "just in case." Add them only when a real translation workflow appears, and test that workflow separately.

Video: A Walkthrough of Cards and Client Editing

For a clearer visual understanding, Brendan O'Connell's practical video on building flexible cards in Bricks with GutenBricks, Automatic CSS, and Frames is worth watching. It does not replace the official documentation, but it does a good job of demonstrating the intended use of GutenBricks for client-facing card setups: creating variants, working with InnerBlock, editing content in Gutenberg, and keeping the design under developer control.

Watch the video as a companion to the practical example section. Focus not on the exact colors or ready-made sections, but on the architecture: first a reusable card, then limited variants, then editorial validation. That is exactly the kind of workflow where GutenBricks is more useful than a completely free-form section.

FAQ on Setting Up and Using GutenBricks

Can GutenBricks be used without Bricks Builder?

In practical terms, the plugin depends on Bricks templates. The official page for the original product explicitly stated that a working Bricks Builder setup is required. If you are not using Bricks, look at ACF Blocks, Meta Box MB Blocks, Blockstudio, Genesis Custom Blocks, or native WordPress block development instead.

Why does the block not appear after creating the template?

Most often, the template was not created as GutenBricks - Block, it was not published, it was assigned to a disabled bundle, or it is unavailable for the current post type. Check those points before clearing cache, reinstalling anything, or moving into deeper troubleshooting.

Do I need ACF PRO for every block?

No, not for every block. ACF is useful when you need structured fields and the familiar field-group workflow. For simple blocks, you can start with editable elements and GutenBricks' built-in capabilities. If the project already uses Meta Box, that can also serve as the data source. Do not add ACF just for a single text field.

Can I let the client change the layout?

Yes, but it is better to do that through limited variants rather than full access to the structure. Prepare 2-3 tested layouts, configure Value Binding for shared fields, and make sure switching variants does not reset content. Full layout freedom usually conflicts with the goal of safe client editing.

Why does the public page look different from the editor?

The reason is often the page template, the outer container, the Gutenberg wrapper, or CSS that exists on the live site but is not applied in the editor. Check Post Content with the WordPress data source, width settings, Bricks template conditions, and any third-party CSS frameworks. Do not try to fix the issue with random global CSS unless you understand which parent element is creating the constraint.

How can InnerBlock be used safely?

Keep it to one InnerBlock per block, restrict allowed blocks, and assign a parent for child blocks that should not be used independently. If you need multiple independent areas, it is better to rethink the architecture than to try to force several InnerBlocks into one block.

What should I keep in mind with WPML or Polylang?

Decide in advance whether you want to translate strings through a string translator or create separate pages with separate blocks. For string translation, GutenBricks documentation points to Save block content in post, and for templates stored in one language, WPML may require Load blocks for all languages. After setup, be sure to test field saving and public rendering in every language.

When GutenBricks Is the Right Choice

GutenBricks is worth using if you already have a Bricks-based site, repeatable components, and a real need to give editors a safe Gutenberg interface. Its strength is not "another set of blocks," but a practical separation of roles: the designer and developer control the template, the editor changes the content, and the client gets a predictable result. The plugin works especially well for cards, CTAs, service sections, feature blocks, FAQs, case studies, blocks with dynamic fields, and any workflow where preserving the design system matters.

Before adopting it, run through a short checklist: do you have Bricks Builder, is the support team clearly defined, do you need Gutenberg as an editorial layer, are controlled fields and variants enough, and is the page template for public output clearly understood? If the answers are yes, you can get the GutenBricks file and test it on a copy of the site. If you need fully native blocks without a dependency on Bricks, choose an alternative from the section above and keep the stack simpler.

The best first outcome is one small but reliable block. It appears in the editor, keeps its values, does not break the design, passes a mobile check, renders correctly on the public page, and makes sense to someone without access to Bricks. Once that test succeeds, you can build out a component library. Without it, even a large set of blocks remains a fragile demo that will be hard to support on a real site.

By OceanTheme.org Editorial Team

 

You are not logged in to post comments.