Skip to content
Content modellingCMMF 1.2.0

Model kinds

Model kinds for CMMF 1.2.0. Imported from the canonical CMMF repository.

A model kind describes the role a model plays in the content system.

Kinds are not just labels for organisation. They express architectural intent that can guide validation, translation, and platform-specific modelling decisions.

Without kinds, every model looks like just another structure with fields. That hides an important distinction between things like:

  • a publishable standalone entry
  • a reusable component
  • an embedded object
  • a taxonomy or classification structure
  • a singleton settings model

By making those roles explicit, CMMF allows tools and translators to treat models differently while preserving a shared source definition.

An entry is standalone content.

Typical characteristics:

  • can often exist independently
  • usually has its own editorial lifecycle
  • is commonly translated into a top-level content type in a CMS

Examples:

  • article
  • page
  • person

A component is a reusable composable block.

Typical characteristics:

  • designed to be assembled into larger content structures
  • may be reused across entries
  • may translate into a component/block type, or sometimes into a full type depending on CMS capabilities

This kind is valuable because many CMSs distinguish between content entries and composable blocks, but they do so differently.

An object represents an embedded structure.

Typical characteristics:

  • carries structure but is not inherently standalone
  • often travels as part of another model
  • may translate to an inline object, embedded type, or separate reusable schema depending on the target platform

This is one of the most important examples of why kind exists. The source intent may say “this is an object-shaped structure,” while a translator may still choose between:

  • an inline embedded object
  • a reusable embedded schema
  • a dedicated content type if the target platform requires it

The source kind preserves the conceptual role even when implementation choices differ.

A taxonomy is a classification model.

Typical characteristics:

  • used to categorise or organise content
  • often behaves differently from editorial entries
  • may translate into tags, categories, or dedicated classification types

A settings model represents singleton or global configuration.

Typical characteristics:

  • intended to exist once per environment, locale, or project scope
  • often maps to global settings in a CMS
  • may need special translator behaviour to enforce singleton semantics

Kinds create space for intelligent tooling. For example, a translator can use kind information to:

  • decide whether a model should become a top-level content type
  • decide whether a model is more naturally embedded than linked
  • apply platform-specific conventions to taxonomies and settings
  • generate clearer diagrams and editor documentation
  • run better model-quality checks

Kinds do not fully determine translation output. They guide it.

For example, an object kind might become:

  • an inline object in Sanity
  • a nested object schema in another system
  • a separate content type in a platform that does not support rich embedded structures

Likewise, a component might become:

  • a block schema
  • a modular content type
  • a union of reusable element definitions

The value of CMMF is that the source role stays consistent even when the translation shape changes.

Kinds also create future opportunities for validation rules such as:

  • warning when a settings model is not marked singleton in translation
  • flagging references from object models that make embedding semantics unclear
  • detecting taxonomy models that are being treated as generic entries without classification intent