GutenFields vs Advanced Custom Fields

An ACF alternative
for people who build with blocks.

Advanced Custom Fields is a good plugin, and most of this page is about the one decision that separates it from GutenFields: what a field group attaches to. ACF attaches one to an edit screen. GutenFields attaches one to a block. Nearly every other difference follows from that.

One payment, not a subscription Free edition, no time limit GPL-2.0, like WordPress
The short answer

Whether to switch depends on one question.

Do the fields you are building belong to a piece of content on the page, or to the post itself? Both are legitimate; they are just different jobs, and each plugin is built for one of them.

GutenFields is the better fit when…

  • You are building page sections — heroes, testimonials, feature grids, callouts — that an editor drops into a post and reorders.
  • You want field definitions to live in version control, in the theme, reviewed like any other code.
  • You want the front end to be a PHP template you own, not a shortcode or a filter chain.
  • You would rather not write a block.json and a React edit component for every block you add.
  • A recurring subscription for a developer tool is a thing you would like to stop paying.

Stay with ACF when…

  • Your fields belong to the post, not the page — a product's SKU, an event's date, an author's biography.
  • You need to query by field value. ACF writes to post meta, so WP_Query can sort and filter on it. GutenFields cannot; see the honest limits below.
  • You rely on location rules — field groups appearing on particular post types, taxonomies, user profiles or template files.
  • You have an existing ACF site. There is no importer, and re-pointing templates is real work.
  • You need a field type GutenFields does not have. The field list is the honest answer to that.
Common ground

Most of what you like about ACF is here too.

This is not a plugin built in opposition to ACF. It is built on the same premise — that a developer should describe fields once and get a usable editing interface for free — and it keeps the parts of that premise worth keeping.

Fields defined in PHP

One array per block, in your theme, in git. gutenfields_register_block() takes the same shape of definition you already write for ACF, and the same review and deployment path applies to it.

A generated editor UI

You describe a text, a select, a rich; the plugin renders the control. Nobody writes an editing interface by hand, in either plugin.

A template you own

Front-end markup is an ordinary PHP file in your theme — gutenfields/{slug}.php. Overriding it is copying a file, not filtering a string.

No React, either way

ACF Blocks spared you writing block JavaScript and so does this. If that is the feature you came to ACF for, you are not giving it up.

An admin builder as well

Not everything deserves a commit. Blocks built in the admin UI live in the database, and Export PHP turns one into code the moment it has earned a place in the theme.

GPL-2.0-or-later

The same licence as WordPress and as ACF. The code is yours to read, change and keep running on every site you have built.

Side by side

Where the two actually differ.

Architecture, not scorekeeping. Every row below is a consequence of the first one. For what ACF currently ships and charges, read their site — we are not going to keep a competitor's feature list up to date on our own pages.

 GutenFieldsAdvanced Custom Fields
A field group attaches to A block, or an options page An edit screen, chosen by location rules — post types, taxonomies, users, options pages
Where values are stored Block attributes, in post content Post meta, one row per field
Queryable with WP_Query No — values travel with the block, not the post Yes — meta_query and meta_key ordering work
Content moves with the block Yes — copy the block to another post and its data goes with it No — meta belongs to the post it was entered on
Per-block block.json None. The field definition is the registration One per block
Front-end template theme/gutenfields/{slug}.php, resolved child-theme first A render template named in the block's registration
Definitions in version control Written as PHP; the admin builder exports to PHP Written as PHP, or synced as local JSON
Conditional logic Nested rule groups, comparing sibling fields Nested rule groups, across the field group
Repeaters, flexible content, options pages Paid tier Paid tier
Paid licence shape One payment. Perpetual use, first year of updates Annual subscription
Licence GPL-2.0-or-later GPL-2.0-or-later

The row that matters most is the second one. ACF putting values in post meta is what makes them queryable and what ties them to a post; GutenFields putting them in block attributes is what lets an editor duplicate a testimonial into another page and have it arrive intact. Neither is a bug. Pick the one that matches what you are storing.

Before you switch

What GutenFields deliberately does not do.

A comparison page that lists only the wins is an advert. These are the things people ask for and do not get, and they are the reasons not to buy.

No location rules

Fields attach to blocks and to options pages. There is no way to say "show this group on the Product post type" or "on pages using this template". If that is the shape of your data, this is the wrong plugin and no amount of the rest makes up for it.

No post meta, so no meta queries

Values live in the block's attributes inside post content. That is what makes them portable, and it is also why you cannot sort a query by one or filter posts on it. Archives driven by field values need ACF, or a custom post type with real meta.

No ACF importer

Nothing reads acf-json or an ACF export. The import format is the plugin's own JSON schema. Moving a site across means redefining the groups as blocks and rewriting the templates that read them.

Conditional rules see siblings only

A rule compares against other fields in the same block, or other subfields in the same repeater row. It cannot reach out of a row or across to another block.

The canvas previews fields, not your template

The editor shows the generated inputs rather than running your PHP. The front end is the preview. ACF Blocks will render your template in place; this does not.

Not a page builder

There is no drag-and-drop layout canvas and no styling UI. You get fields, a block, and a template file. Everything about how it looks is your CSS.

The money

One payment, and then it is yours.

This is the difference people write in asking about, so it is worth being exact about what a GutenFields licence is and is not.

What you pay for

A single payment — £79 for one production site, £129 for five, £299 for as many as you like. It buys perpetual use of the Pro edition and the first year of updates and priority support. Prices include VAT.

Staging and local copies never count. A five-seat Agency licence is five live sites plus fifty development copies alongside them, because charging twice for the same site once it has a .test domain is not a business we want to be in.

What happens after a year

Nothing stops. The licence is perpetual: the version you have keeps working on every site it is activated on, for as long as you keep the site. What lapses is access to newer versions and to priority support.

Renewing is optional and is a decision you make once a year with a changelog in front of you, rather than a card that is charged whether or not anything shipped. The pricing FAQ spells out the edge cases.

And the free edition is not a trial. Nineteen field types, conditional logic, the admin builder, templates and the WP-CLI commands, with no expiry and no nag. Pro adds repeaters, flexible content, galleries and options pages. If none of those four is something you need, the free plugin is the whole product for you — see what is in each edition.

In practice

Moving one block across, to see how it feels.

Nobody should migrate a site on the strength of a comparison table. The realistic first step is to leave ACF exactly where it is and rebuild one section — a testimonial, a callout, whatever you last got tired of writing a block.json for.

  1. Install the free edition alongside ACF. They do not conflict: different post types, different registration, different storage. Nothing you have already built changes.
  2. Describe the fields once, in inc/blocks.php or in the admin builder. The array shape will look familiar — name, type, label, and the config each type takes.
  3. Write the template at theme/gutenfields/{slug}.php. Until you do, the block auto-renders one BEM-classed element per field, so it is usable while you work rather than blank.
  4. Compare the two in an editor. Add both blocks to a draft page and let whoever actually edits the site try each. Their answer is worth more than this page.

The whole path is in the manual, and the guide to building a Gutenberg block with fields walks through a complete one end to end.

Questions

What people ask when they arrive from ACF.

Q. Is there a free ACF alternative?
The GutenFields free edition is one, within the limits above: nineteen field types, conditional logic, the admin field builder, config-as-code definitions, templates and WP-CLI, with no expiry, no seat count and no upgrade nag. What it does not include is repeaters, flexible content, galleries and options pages — those are the paid tier. It is also not a like-for-like replacement, because fields attach to blocks rather than to edit screens.
Q. Can I import my existing ACF field groups?
No. Nothing reads acf-json or an ACF export, and we would rather say so plainly than ship a converter that silently drops the location rules and post-meta assumptions it cannot translate. Field groups have to be redefined as blocks, and the templates reading them rewritten. That is the real cost of switching an existing site, and it is why the sensible move is one new block rather than a migration.
Q. How does this compare to Meta Box, Pods or JetEngine?
All three are closer to ACF than to GutenFields: they attach fields to post types and store values in post meta, and they do more than fields — Pods and JetEngine both build content types and query listings. If you want a plugin that models your data, one of those is the category to shop in. GutenFields models a block on a page, which is a smaller job, and the whole plugin is sized for it.
Q. Do I have to give up ACF Blocks?
You are not giving up the idea — a field group that renders through a PHP template is exactly what both do. You are giving up the block.json file and the registration that goes with it, and the ability to preview your template on the editor canvas. Whether that trade is worth it depends on how many blocks you maintain: at two, the file is nothing; at thirty, it is a directory you are keeping in sync by hand.
Q. Will my content survive if I deactivate GutenFields?
Yes. Values live in the block's attributes in post content, so deactivating the plugin stops the blocks rendering but deletes nothing — the markup stays in the post and returns the moment you reactivate. There is no database table to strip out and no meta to orphan.
Q. Is a one-time licence really perpetual?
Yes, and the plugin is GPL-2.0, which means we could not meaningfully take it away even if we wanted to. A key activates production sites up to the tier's seat count and never expires; a year after purchase the entitlement to new versions and priority support lapses, and the sites carry on running the version they have. The refund policy is fourteen days if it does not do what this page says.
Try it on one block

The free edition answers this faster than we can.

Install it next to ACF, rebuild one section, and see which one you would rather maintain thirty of. Nothing to uninstall if the answer is ACF.