NetcaneTechnologies

Strapi

Content Modeling in Strapi: Pages, Sections, and Reusable Blocks

How to model flexible pages in Strapi with sections and blocks without ending up with an unmaintainable schema.

Yasir Haleem2 min read

Strapi lets you model pages as a list of sections or blocks. Doing it in a structured way keeps the admin usable and the front end predictable.

Single type vs collection

Use a single type when there’s exactly one instance (e.g. Homepage, Global Settings). Use a collection type when you have many items (e.g. Blog Post, Author). For marketing or landing pages, a collection type “Page” with a slug and a flexible body is common; for a fixed homepage, a single type “Homepage” is simpler.

Pages with sections

Model a page as a title/slug plus a repeatable “sections” component or relation. Each section has a type (hero, features, CTA, etc.) and the fields needed for that type. In Strapi v4, you can use dynamic zones (a list of component choices) so editors pick “Hero,” “Feature grid,” “CTA” in order. The front end then maps each section type to a React component and renders the page as a sequence of sections.

// Concept: Page has dynamic zone "sections"
// Section types: hero (title, subtitle, image), features (title, list), cta (title, buttonLabel, buttonUrl)

Keep section types to a small set (e.g. 5–10) so the UI doesn’t explode. Add new section types when you have a clear, reusable pattern.

Reusable blocks

For content that appears in multiple places (e.g. a testimonial, a pricing card), create a component (or a small collection type) and reference it from pages or sections. That avoids duplicating the same structure in many content types. Use components for small, reusable units; use sections for the main page building blocks.

Naming and consistency

Name content types and components clearly (e.g. page.section.hero, block.testimonial). Use consistent field names across section types (e.g. title, subtitle, image) so the front end can share logic. Document which section types exist and what they’re for so editors and developers stay aligned. With a clear page → sections → blocks model, Strapi stays maintainable as content grows.

Summary

Use single types for one-off pages and collection types for many pages. Model pages as a sequence of sections (dynamic zone or repeatable component) and keep section types to a small, documented set. Reuse blocks via components. That gives you flexible content modeling without schema chaos.

About the author

Yasir Haleem is founder and lead engineer at Netcane Technologies. He builds production Next.js sites with headless CMS platforms — Strapi, Contentful, Sanity, and WordPress — with a focus on performance, SEO, and maintainable architecture.

Let's work together

Tell us about your project. We respond within one business day with a clear scope, timeline, and estimate.