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







