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:
- Types (The Schema): You define the structure. Example: "A Team Member type has a name, a photo, a bio, and a role."
- 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:
| Category | Input Type | Typical Use Case |
|---|---|---|
| Textual | Standard Text | Titles, short names, labels. |
| Long Text (Textarea) | Descriptions, bios, rich content. | |
| Password / Secure | API Keys, secrets, or sensitive data (masked). | |
| URL Address | External links, social media profiles. | |
| Logic & Lists | Dropdown Select | Single choice from a predefined list (e.g., Category). |
| Multiple Selection | Tags, skills, or multi-category assignments. | |
| Toggle / Checkbox | Boolean 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.