The content platform for the digital-first era. It’s the modern way to manage content: Control all content from a single hub. Publish to any channel. Integrate hundreds of tools with our industry-leading app framework.

i've started using contentful on a project i'm consulting on. these are notes derived from my reading of contentful documentation and work to integrate it into the client's project. we are using contentful together with nacelle to build a neat jamstack-like system with a super friendly workflow for non-technical teams.




data mapping

digging into contentful

the linked docs will be most useful, notes here are just a quick reference.

domain model

Something to note is that as long as no additional environments have been set up, environments are not visible and the entities and settings listed above appear to be direct children of the space.

  user : anyone with a Contentful account
  organization : a way to group users into an RBAC model
  space : a child of the organization—it acts as a container for your content and any settings related to that content
  roles and permissions : user access levels withing the space
  api keys : authentication tokens
  webhooks : send requests triggered by changes to your content model, content, or media
  content preview : a link within the entry editor to your staging environment
  environment : entities within a space that allow you to create and maintain multiple versions of the space-specific data and configuration, and make changes to them in isolation.
  content model : a collection of content types, which define the structure of your content
  content : a collection of entries
  media : a collection of assets
  locales : manage and deliver your content in multiple languages
  ui extensions : build customized editing experiences for the Contentful web app
  app installations : extend and expand the capabilities of the Contentful web app

content data model

  Sys sys : common system properties
  String name : name of the content type
  String description : description of the content type
  Field[] fields : list of fields
  String displayField : id of main field used for display

Each content type consists of a set of up to 50 fields that you define using the following types:

  Symbol<String> : Text (short <256)
  Text<String> : Text (long <50000) - filterable via full-text search, see also [1. Text]
  Integer<Number> : Number (integer from -2^53 to 2^53) - a whole number
  Number<Number> : Number (decimal from -2^53 to 2^53) - a decimal number
  Date<String> : Date and time - a date and time in ISO 8601 format, see also [2. Date]
  Location<{Number lat, Number lon}> : Location - coord values for storing the lat/lon of a location
  Boolean<Boolean> : Boolean - a boolean value ;)
  Link<Object> : Media - a link to the asset, see also [3. links guide]
  Link<Object> : Reference - a link to another entry, see also [3. links]
  Array<Array> : Array - list of values, see also [4. array fields]
  Object<Object> : JSON Object - for storing any other types of objects

1. Text: Fields do not support ordering or strict equality.

2. Date: Fields must be ISO8601 formatted, but do not require a time portion.

3. Links: Look down

4. array fields

automated link resolution performed by the API is only available with the Content Delivery API and Preview API.

The maximum number of inclusions is 10.