Contents
- Domma CMS User Manual
- 1. Using the CMS
- 2. Tutorials
- 3. Components
- 4. API Reference
- 5. Tools
Collections & Forms
Updated by Darryl Waterhouse on 29 September 2026 · 4 min read
A collection is a set of entries that share the same fields - products, bookings, team members, enquiries. Collections are at Data > Collections. Their entries are edited in the admin, shown on pages with [collection], filled in by visitors through forms, and can be read by other systems through the API if you allow it.
Creating a collection
Choose New collection. The editor has four tabs:
- Settings - title, slug (its id, fixed once created), project and the layout of the entry form (stacked, or a grid where each field can span columns).
- Fields - what every entry holds. The editor offers text, email, phone, number, textarea, dropdown, radio buttons, single checkbox, checkbox group, date, time, URL and hidden fields. Reference (a link to an entry in another collection), file and multi-select fields exist too, but are added by editing the collection's
schema.json. Click a field to edit it; under Joined to the input a text, number, dropdown, date, time, URL or textarea field can have an icon or a short text (such as£orkg) joined to the start or end of its input in the entry form. The same panel can add a clear button, - / + buttons on a number, or a character counter. - API & Export - what the public API may do (read, create, update, delete) and who may do it, which fields a read returns, and whether visitors may export what a
[collection]display shows. - Storage - files on this server (the default) or MongoDB (Pro, when the site has a connection).
Every collection made in the admin gets a matching form, so visitors can add entries with [form name="the-slug" /].
Working with entries
Click a collection to see its entries. Add entry, Import and Export are in the banner. Click an entry to edit it; right-click it to see all of it, duplicate it, copy its id, run one of the collection's Actions or delete it, and right-click a value to filter by it. Dates show as dd/mm/yyyy.
- Export downloads the entries as JSON or CSV.
- Import takes a JSON array of entries and adds them (nothing is removed). Each entry is checked like any other save: one that fails the field rules or points a reference at an entry that does not exist is skipped and reported. Fields the collection does not have are stored as given. For backups, restores and clones of whole collections, see the Data Transfer plugin in the Marketplace.
Moving between files and MongoDB
Changing a collection's storage on the Storage tab asks whether to move its entries when you save. A move copies each entry exactly as it is - same id, data, created and updated dates and owner - so references, links and "my entries" pages keep working. It refuses, changing nothing, if the target already holds an entry with one of the same ids, or if MongoDB is not reachable. The old copy is set aside, never deleted (data.json becomes data.json.bak; a MongoDB collection is renamed). System collections (roles, user profiles, projects, notifications, API tokens and endpoints) always stay on files.
Showing entries on a page
[collection slug="team" display="cards" columns="3" title-field="name" /]
[collection slug="jobs" display="cards" searchable filterable="location,type" sortable where_status="open" /]
[collection slug="applications" scope="mine" display="cards" paginate transitions /]
- Eight displays: table, cards, list, accordion, timeline, carousel, listgroup and block (your own block template per entry).
searchable,sortable,filterableorpaginateturn a display into the interactive Collection Browser: search, sort, a filter rail and pages.scope="mine"shows signed-in visitors only the entries they created - a "my applications" or "my bookings" page. It needs no public API access.transitionson an interactive block gives each row the workflow buttons that apply to it now, and works withscope="mine". See Actions.
Visitors can right-click any collection display to filter, sort, group, copy, print or export it. The full attribute list is in Shortcodes; for joins, totals and per-user results, build a View.
Who can see entries
- In the admin, the
collectionspermission decides who can view, add, edit and delete entries. - On pages, a
[collection]shows its entries to anyone who can open the page - gate the page, or usescope="mine"or a View with a row-level rule. - Through the API, the API & Export tab decides: Public, Token (an API token), or signed-in users with a role and above. A role the site does not have admits only the level-0 role.
Forms
Forms are at Data > Forms. A form stores what visitors send in a collection, and can then email someone, call a webhook, run an Action and show a message or redirect. Fields can show, hide or require other fields, and triggers can react to answers (a banner, blocking the submit, jumping a step). Submissions are listed under the form. Visitors' submissions are kept out of the site's Git repository. See Form Follow-Up and the Forms API.
See also
- Collections API, External API & tokens and API Builder
- Building a CRUD App - collections, forms, actions and pages together