Strapi
01 / 02

Content-Types, Components & Relations

Content-Types, Components & Relations

Headless: Content vs. Presentation

Strapi manages and serves content via an API without dictating the frontend — build with React, Vue, a mobile app, whatever fits, all consuming the same content backend. Contrast with a traditional monolithic CMS (classic WordPress) that couples content management to its own rendering.

Content-Types: Collection vs. Single

Defining a Content-Type through the admin UI auto-generates a database table AND full CRUD REST/GraphQL endpoints — no manual API boilerplate. A Collection Type (Blog Post) holds many entries with a paginated list endpoint; a Single Type (Homepage, Site Settings) holds exactly one entry with a direct-entry endpoint.

Components & Dynamic Zones

// Component: reusable field group, embeddable in multiple content types
{ "street": "...", "city": "...", "zip": "..." }  // e.g. an "Address" component

// Dynamic Zone: a flexible, ordered mix of DIFFERENT components in one field
// e.g. a page built from [HeroSection, TextBlock, ImageGallery, TextBlock, CTA]

Dynamic Zones are the go-to for page-builder-style flexible layouts where editors compose a page from a variable sequence of block types.

Relations

One-to-one, one-to-many, many-to-many fields link entries across content types — a Blog Post many-to-one to an Author, many-to-many to Tags — conceptually equivalent to foreign-key relationships in a relational database.

Keep your own version of these notes — editable, searchable, and organised by your stack.

Start free