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