CMS Manager
The CMS Manager is the visual admin interface for creating, editing, and organizing all platform content. It is accessible from the Admin section of the site.
Content Guides
Site Config
Platform-wide settings: name, emails, colors, and more.
E-Commerce
Products, orders, coupons, checkout, inventory, and shipping.
Articles
Blog posts and articles with rich-text editing and categories.
Pages
Dynamic pages with custom slugs and rich-text content.
Slides
Homepage hero slides with images, text, and ordering.
Categories
Shared category system for organizing products, articles, and pages.
Assets
File uploads, supported formats, and size limits.
Users & Roles
User management, role assignments, and permissions.
Clients (CRM)
Track the clients you manage - contacts, notes, and billing info.
Agency
Projects, deals, ops snapshots, and the extended client pipeline.
Compliance & Audit
Automated backups, PII deletion, and audit trail.
Robots (SEO & GEO)
Search engine controls, AI bot blocking, and llms.txt.
How the CMS Works
The Manager uses a component called DataManager that provides a consistent interface for every data type: a searchable list view with pagination, and a slide-out form panel for creating or editing records. Forms are generated automatically from the platform's field definitions, including validation, file uploads, and rich-text editing.
Role-Based Access
Access to the Manager is controlled by user roles and custom role permissions:
- Admin - Baseline admin label with visitor + user-level access. All table access requires explicit custom role permissions assigned by a Super admin (e.g. "Editor" for content, "Prospect Manager" for user management).
- Super - Full access to all tables and actions, including user management, site configuration, API keys, and webhooks.
Regular users and visitors cannot access the Manager at all.
Common Actions
- Create - Click the green Create new button below the table to open a blank form.
- Edit - Click the pencil icon in a row to open its edit form in the slide panel.
- Search - Use the search bar to filter records by searchable fields.
- Sort - Click a column header to sort by that field. Click it again to flip the direction.
- Filter - Use category tabs or filter controls when available.
Table Layouts
Every table starts with a default set of columns. A layout lets you choose which columns show, in what order, and how the table is sorted, and save that under a name, such as a "Shipping" layout for orders showing ship-to details and tracking.
Layouts appear as chips above the table:
- Switch layouts - Click a chip. Default always shows the table's standard columns.
- New layout - Click +. A new layout starts from the default columns.
- Edit a layout - Click Columns on the right (or the chip you're already on) to open the editor. Click it again to close it.
The editor opens above the table and has two areas:
- In the table - The columns that show, left to right in table order. Drag a chip left or right to move its column, or click its × to hide it.
- Not in the table - Every other field you can see. Click a field to add it at the end, or drag it into the table area (drop it between two chips to place it there). Drag a chip from the table area down here to hide it. Use the search icon to find a field in a long list.
Your changes show in the table right away, and the chip is marked (edited) until you save. On the right, name the layout, pick how it's sorted, and click the save icon. The copy icon saves your changes as a new layout, the trash icon deletes the layout, and Discard changes puts it back the way it was saved.
- Keyboard - Tab to a column chip, then use the left and right arrow keys to move it, or Delete to hide it.
- Fields inside a record - Some fields hold details, such as an order's contact or tracking information. Their parts can be shown as their own columns (for example "Contact › Email"), but the table can't be sorted by them.
- Limits - Up to 10 saved layouts per table, and up to 40 columns in a layout.
Layouts are saved to your own account, so they follow you to any device, and other admins don't see them. The table opens on the layout you used last. A layout only ever offers fields your role can see. If your access changes later, any field you can no longer see drops out of your layouts.
Exporting
Click Export all below the table to download every record that matches your current search and filters, as CSV or JSON. Very large exports are split into several files. Choose what the file contains:
- Your layout (named after the layout you're on, or Current layout with unsaved changes) - Only the columns showing in the table, in the same order. Picked by default when you're on a saved layout or have unsaved column changes. This file is for reading and sharing, not for importing back.
- Import ready - The fields you can edit, plus each record's ID, so the file can be changed and imported back to update records.
- Full backup - Every field, including system fields, for a complete archive.
Record Status
Most records follow a status workflow:
- Draft - Not visible to the public. Use this while preparing content.
- Live - Published and visible to visitors.
- Archived - Hidden from public view but preserved in the system.
Active Editor Tracking
When multiple admins are working in the CMS, the platform tracks who is actively editing each record to prevent accidental overwrites.
- Table indicators - In the table view, a small avatar appears next to the edit icon for any record another admin is currently editing.
- Form lock - If you open a record that someone else is editing, the form fields are disabled and a yellow banner shows who has the record, when they started, and a warning about overwrite risks.
- Take over - You can click "Take over editing" to reclaim the record. This disables the form for the other admin (within ~30 seconds) and gives you full control.
- Automatic release - When an admin closes the editor or navigates away, the record is released immediately. If a browser crashes or loses connection, the lock automatically expires after 90 seconds.
Active editor tracking requires Redis (Upstash) to be configured. If Redis is unavailable, the feature silently degrades and editing works normally without lock indicators.