Organizing Content Fields with Blueprints and Fieldsets
Imagine migrating a project from WordPress to Statamic and facing chaos from ACF fields. You need to define 50+ fields for different post types, many of which repeat—SEO titles, OG images, custom blocks. In Statamic, this is handled through Blueprints and Fieldsets. Without a clear schema, you'll spend days manually copying, and changing one rule requires edits in a dozen places. We'll show you how to set up a blueprint scheme without pain, with reuse and built-in validation.
Problems We Solve
Manual Field Duplication
Without Fieldsets, each field must be written in every Blueprint anew. This leads to errors: one place forgets required, another has the wrong character_limit. A Fieldset centralizes logic: change a rule and it applies everywhere. On a project with 6 collections, this cuts content editing time by 40%.
Complex Content Blocks
The standard text editor doesn't work for landing pages with modules: hero, benefits, pricing. Bard with custom sets allows a flexible structure without resorting to ACF-like solutions. We configure typical sets: slider, benefits grid, pricing table—each with its own field schema.
Incorrect Validation and SEO
Without a clear schema, it's easy to miss a required image or Canonical URL. We bake validation (required, image, character_limit) at the Fieldset stage—errors are prevented. This reduces content publishing bugs by 60%.
How to Import a Fieldset Without Conflicts?
Take a real case: an e-commerce site on Statamic. Needed collections: products, categories, reviews, pages. All share a common SEO set. Create a seo Fieldset:
# resources/fieldsets/seo.yaml
title: SEO
fields:
-
handle: title
field:
type: text
display: SEO Title
instructions: If empty, uses the main title
character_limit: 70
-
handle: description
field:
type: textarea
display: Meta Description
character_limit: 160
-
handle: og_image
field:
type: assets
container: assets
max_files: 1
display: OG Image
instructions: 1200×630px
validate:
- image
-
handle: canonical_url
field:
type: text
display: Canonical URL
-
handle: noindex
field:
type: toggle
display: Hide from search engines
default: false
Import it into the product Blueprint with the prefix seo_ to avoid conflicts with the product's title and description:
---
# resources/blueprints/collections/products/product.yaml sections:
main:
fields:
- handle: title
field:
type: text
required: true
- handle: price
field:
type: text
validate: numeric
sidebar:
fields:
- import: seo
prefix: seo_
---For reviews, the same SEO set but without prefix because there are only two fields: title and body. Import without prefix:
- import: seo Changing one Fieldset automatically updates all Blueprints importing it. Add a field og_type and it appears in both products and reviews. In WordPress, you'd need to edit 5 ACF templates. Statamic does it in seconds.
Why Use Custom Fieldsets Instead of Copying?
Besides saving time, Fieldsets provide a single point of control. You can extend a set, change a field type, or add validation and it immediately reflects in all entries. On projects with 20+ content types, this is the only way to maintain order.
Our Process for Setting Up Blueprints
- Content analysis—collect all entry types, their fields, nested blocks, required attributes.
- Fieldset design—identify repeating groups (SEO, metadata, contacts, sliders).
- Implementation—create YAML schemas, configure Bard sets, validation, imports.
- Testing—verify CP behavior, correct saving, validation.
- Deploy and document—hand over access and instructions for adding fields.
Timeline and What's Included
Setting up 5–8 collections with reusable Fieldsets takes 1 to 2 days. Includes:
- Creating Blueprint for each content type.
- Developing Fieldsets for SEO, common blocks (gallery, files, tabs).
- Configuring custom Bard sets (slider, benefits, pricing).
- Field validation: required, format, limits.
- Testing in CP and frontend.
- Documentation for editing fields.
Comparison: Statamic Fieldsets vs WordPress ACF
| Aspect | Statamic Fieldsets | WordPress ACF |
|---|---|---|
| Setup speed for 5 types | 1–2 days | 2–3 days (UI group creation) |
| Reusability | One-line YAML import | Local field groups (more complex) |
| Flexible content blocks | Bard with custom sets | Flexible Content + Repeater |
| Versioning | YAML in Git | Export PHP/JSON |
| Performance | Static generation at start | Dynamic DB queries |
Typical Mistakes and Their Consequences
| Mistake | Consequence | Solution |
|---|---|---|
Missing required for critical field |
Entry saved without title | Always set required: true for critical fields |
| Import without prefix when names collide | Overwrites existing fields | Use prefix or unique names |
Missing container for assets |
Files not attached, "container not found" error | Explicitly set container: assets |
type: text for long texts |
Loss of formatting | Use textarea or bard |
Our experience: over 20 projects on Statamic, including e-commerce sites, news portals, and corporate websites. We guarantee that the blueprint scheme will be flexible and scalable.
Example complex Bard set (pricing)
---
sets:
pricing:
display: Pricing
fields:
- handle: title
field:
type: text
display: Plan name
- handle: price
field:
type: text
display: Price
- handle: features
field:
type: list
display: Features
- handle: highlighted
field:
type: toggle
display: Highlight
---Contact us to assess your project and propose the optimal field structure within one day. Get a consultation on migrating from other CMS to Statamic. Statamic Documentation







