Content types

Content types represent the structure for individual pieces of content stored within Uniform. For example, a blog post could have a single-line text input for title, a multi-line text input for summary, a date picker for publish date, and a rich text editor for body. Each of those elements is referred to as a field.

  1. In Uniform, open your project.

  2. Navigate to Experience > Content Types.

    Create a Content Type.
    Create a Content Type.
  3. Click Create a Content Type.

  4. Enter the following values:

    FieldDescriptionIs required?
    Content Type NameName that describes the content type or its purpose.Required
    Public IDName that uniquely identifies the content type. This value is available to developers. This can not be changed after the content type is created.Required
    IconThe icon displayed next to the content type and any entries created from it. This helps users immediately identify elements.
    Checkbox: Autogenerate data typesIf selected, data types (for single entry and query) for the content type will be automatically generated.
    DescriptionA brief description of what the content type is for to help authors understand how entries created from it will be used.
    Assign workflowEnable a workflow to manage the content creation and publishing process for entries of this content type. This option is only available if you have defined workflows in your project.
    add-content-type
    Example: Add a 'Movie' content type.

Fields are the individual pieces that make up a content type. To add a field:

Your content type needs to have at least one field. Check our fields guide for more information on how to add fields to your content type.

Entry settings#

Content types include several configuration options that control how entries behave and are managed within your project.

Slugs provide human-readable URL identifiers for your entries.

Enable and require slugs: You can choose to enable slug generation for entries of this content type. When enabled, you can also make slugs required, ensuring every entry has a URL-friendly identifier.

Slug uniqueness: Control how unique slugs must be across your content:

  • None: No uniqueness requirement - multiple entries can have the same slug
  • Within the type: Slugs must be unique among entries of the same content type
  • Global: Slugs must be unique across all entries in your project

Slug validations: Use regular expressions to define custom validation rules for the slug format.

warning

Permission overrides at the content type level are deprecated and will be replaced in a future release with centralized role-based policies.

You can override team permissions for each role at the content type level to set read, write, create and delete permissions.

You can configure how content authors can preview entries of this content type before publishing.

Each content type can have multiple entry previews defined.

An entry preview links to a dynamic composition that is used as the detail page for the entry. The dynamic inputs are set to the entry fields. Most commonly this is the slug of the entry.

content-type-previews-list
Entry previews of a content type

Add or edit an entry preview#

Follow these steps to configure a preview for your content type:

  1. Open the preview configuration:

    • To add a new preview: Click Add preview to open the preview configuration drawer
    • To edit an existing preview: Click the name of the preview you want to modify
  2. Name your preview: Enter a descriptive name for the preview. This name appears in the preview dropdown menu when authors are editing entries, so choose something that clearly identifies the preview context (e.g., "Product detail page" or "Blog post preview").

  3. Select the target project map node: Choose the project map node that will display the entry. This should be a dynamic node configured to accept entry data as dynamic path segments. Typically, this is your content detail page template.

  4. Configure dynamic path mapping: Set up how entry data maps to the composition's dynamic segments:

    • JSON pointer syntax: Use JSON pointer notation to reference entry data. The syntax follows the pattern ${#jptr:/entry/path/to/field}
    • Common examples:
      • Entry slug: ${#jptr:/entry/_slug}
      • Field values: ${#jptr:/entry/fields/fieldName/value}
      • Slug on a reference field: ${#jptr:/entry/fields/referenceFieldName/value/entry/_slug}

    tip

    Quick setup: Enable "Use entry slug" to automatically use the entry's slug when no custom mapping is specified. This works well for most content detail pages.

    To find the correct JSON path for your entry data, navigate to any entry of this content type and select View Source → Edgehanced to see the available data structure.

  5. Save the preview: Click Accept to save your preview configuration. The preview will be available to content authors when editing entries of this type.

content-type-previews-edit
Edit an entry preview