Donutwork Docs
Dynamic Content Modeling

Dynamic Content Modeling

Build custom data structures and manage dynamic content with Donutwork's native Headless CMS engine.

Dynamic Content Modeling (Content Box)

The Content Box system is designed to eliminate the rigidity of traditional databases. It allows you to create "Models" (Types) that define the schema of your data, and then manage that content through automatically generated, user-friendly interfaces.

The Core Concept: Types vs. Contents

To master content modeling in Donutwork, it is important to distinguish between these two levels:

  1. Types (The Schema): You define the structure. Example: "A Team Member type has a name, a photo, a bio, and a role."
  2. Contents (The Data): You create the actual entries based on that schema. Example: "John Doe, CEO, photo.jpg..."

Supported Field Types

The Fields Manager offers a wide variety of inputs to cover any data-entry requirement, from simple strings to complex logic:

CategoryInput TypeTypical Use Case
TextualStandard TextTitles, short names, labels.
Long Text (Textarea)Descriptions, bios, rich content.
Password / SecureAPI Keys, secrets, or sensitive data (masked).
URL AddressExternal links, social media profiles.
Logic & ListsDropdown SelectSingle choice from a predefined list (e.g., Category).
Multiple SelectionTags, skills, or multi-category assignments.
Toggle / CheckboxBoolean states (Yes/No, Active/Inactive).

Structure Examples (Use Cases)

Here are common ways to configure your Types for different business scenarios:

1. FAQ Section

  • Question: Standard Text (Required)
  • Answer: Long Text
  • Category: Dropdown Select (Options: Billing, Technical, Account)
  • Featured: Toggle

2. Product Datasheet (SaaS)

  • Product Name: Standard Text
  • Stripe Price ID: Masked Input (to protect sensitive billing IDs)
  • Feature List: Multiple Selection
  • Documentation: URL Address
  • Maturity: Dropdown Select (Beta, Stable, Deprecated)

3. Customer Testimonials

  • Client Name: Standard Text
  • Company: Standard Text
  • Quote: Long Text
  • Rating: Dropdown Select (1, 2, 3, 4, 5 stars)

Visibility States

Every Content Box entry can be set to one of the following states:

  • 🟡 Draft: The content is saved but not accessible via public APIs or the frontend.
  • 🟢 Public: The content is live and ready to be displayed.
  • 🔴 Private: Only visible within the Donutwork Admin area—perfect for internal configuration data.

Advanced Features

Auto-Generated UI

No need to build forms manually. As soon as you update a Type's schema, the entry form updates instantly.

Drag & Drop Ordering

Reorder fields within your schema to prioritize the most important information for your team.

Headless-Ready

All saved data is delivered as clean JSON via REST API, perfect for React, Vue, or Mobile Apps.

Developer Tip

Every field has an Internal Key (DB). Use clear, snake_case names (e.g., hero_image_url) because this key will be used as the property name in the JSON returned by the Donutwork API.

On this page