Admin UI Guide
The Forme Admin UI is a browser-based interface for managing your content. This guide covers all M1 screens and workflows.
Access the Admin UI:
- Cloud Alpha:
https://app.forme.build
Navigation
The Admin UI has four main sections in the left sidebar:
| Section | Icon | Purpose |
|---|---|---|
| Content | File icon | Browse and edit entries by content model |
| Modeling | Blocks icon | Create and manage content model schemas |
| Media | Image icon | Upload and manage assets (images, files) |
| Settings | Gear icon | Workspace configuration |
The sidebar collapses to icon-only mode for more workspace.
Context bar
The top bar shows your current context and provides quick actions:
- Workspace name — your current workspace
- Environment — active environment (e.g.,
production) - Locale selector — switch between configured locales
- Search — press
Cmd+Kor/to search entries and models - + New — quick actions: New Entry, New Model, Upload Asset
Welcome page
When you first open the Admin UI, you see a welcome page with:
- Getting started checklist — 5 steps to set up your workspace:
- Create a content model
- Create your first entry
- Upload a media asset
- Add another language
- Set up a second environment
- Quick action cards — shortcuts to common tasks
- Workspace stats — counts of models, entries, and assets
Each checklist item checks off automatically as you complete it.
Content modeling
Navigate to Modeling in the sidebar to manage your content model schemas.
Creating a content model
- Click + New Model (or use the + New button in the context bar)
- Enter a name (e.g., "Blog Post") and API ID (e.g.,
BlogPost) - Select the type: Page, Component, or Data
- Click Create
You are taken to the model editor where you can add fields.
Adding fields
In the model editor:
- Click Add Field
- Choose a field type from the picker:
| Field type | What it stores | Example use |
|---|---|---|
| Short Text | Single-line string | Title, slug, author name |
| Long Text | Multi-line plain text | Summary, excerpt |
| Rich Text | Markdown content | Article body, description |
| Number | Integer or decimal | Price, sort order |
| Boolean | True/false toggle | Featured flag, published |
| Date & Time | ISO date string | Publish date, event date |
| JSON | Arbitrary JSON | Custom metadata, config |
| Asset | Reference to a file | Hero image, PDF download |
| Reference | Link to another entry | Author, related posts |
- Configure the field:
- Name — human-readable label
- API ID — identifier used in API calls
- Required — toggle on if the field must have a value
- Localized — toggle on to store different values per locale
- Validations — type-specific options (min/max length, unique, allowed values, etc.)
- Click Save to add the field
Editing and deleting models
- Click a model in the list to open the editor
- Modify fields, reorder them, or remove fields
- Delete a model from the model list — deletion is blocked if the model has existing entries (delete the entries first)
Content management
Navigate to Content in the sidebar to browse and edit entries.
Browsing entries
- The content section shows a grid of your content models
- Click a model card to see its entries
- The entry list shows:
- Entry title or identifier
- Status badge: Draft (gray), Published (green), Changed (yellow)
- Created and updated timestamps
- Filter entries by status using the filter controls
- Use pagination to navigate large lists
Creating an entry
- Click + New Entry in the entry list (or use the + New button)
- The entry editor shows field editors for each field in the model:
| Field type | Editor |
|---|---|
| Short Text | Single-line text input |
| Long Text | Multi-line textarea |
| Rich Text | Markdown editor |
| Number | Numeric input |
| Boolean | Toggle switch |
| Date & Time | Date picker |
| JSON | Code editor |
| Asset | File selector (pick from existing media library assets) |
| Reference | Entry selector (search and pick from existing entries) |
- Fill in field values
- For localized fields, use the locale selector in the context bar to switch between languages and enter content for each locale
- Click Save to save as a draft
Publishing and unpublishing
- Publish: Click the Publish button to make the entry available via the Delivery API
- Unpublish: Click Unpublish to pull the entry back to draft (removes it from the Delivery API)
After publishing, editing the entry changes its status to Changed — the Delivery API continues serving the last published version until you publish again.
Entry status indicators
| Status | Badge color | Meaning |
|---|---|---|
| Draft | Gray | Not yet published; not visible in Delivery API |
| Published | Green | Live; current version matches published version |
| Changed | Yellow | Has edits since last publish; Delivery API serves the previous published version |
Intelligent Rewrite
Short-text and long-text field editors include an Intelligent action that rewrites the stored value in one of four tones. The action is review-first — nothing changes on disk until you approve.
- Scroll to a
shortTextorlongTextfield on an open entry. A small Improve with Intelligence button (✨ sparkle icon + chevron) sits at the top-right of each eligible field. On narrow viewports the label collapses to Improve. - Click the button. A dropdown menu opens with Rewrite with Intelligence and four tone options:
- Formal — professional, authoritative, no contractions.
- Casual — conversational, approachable, punchy.
- Friendly — warm, encouraging, everyday vocabulary.
- Technical — precise, data-driven, specialist audience.
- Pick a tone. A loading shimmer appears after ~300 ms (no jitter on fast responses).
- When the response arrives, an inline block mounts directly below the field showing a word-level diff:
shortTextfields render a single-line diff (green = added, red = removed).longTextfields show a side-by-side Original / Proposed pane (stacks on narrow viewports).- A metadata line shows the credit cost and latency so you can judge the trade-off.
- Click Approve to replace the field's value with the proposal (or Discard to dismiss). Approve leaves the entry dirty — click Save to persist, then publish as normal.
Intelligent Credits
Every workspace has a monthly credit budget. Each Intelligent action consumes credits based on the field type:
| Action | Credits |
|---|---|
| Rewrite (shortText) | 1 |
| Rewrite (longText) | 3 |
Alpha workspaces (Starter tier) receive 1,000 credits per month, resetting on the 1st of each month (UTC). A small counter below the Intelligent button shows current usage (e.g., "34 / 1,000 credits used this month"). The counter turns amber at 80% and red when exhausted.
When credits are exhausted, the Intelligent button is disabled with a "Monthly Intelligent credits used up" tooltip. The server returns 403 CREDITS_EXHAUSTED if a request is attempted. Credits reset automatically at the start of each calendar month.
Check GET /management/workspace/ai-usage (or client.workspace.aiUsage() via the SDK) for a programmatic view of credit usage.
Other requirements and limits
- Save first if you have unsaved edits. The button disables with a "Save your changes first, then rewrite" tooltip when the field is dirty, because the server reads the stored value — not your in-flight text. Save the draft, then try again.
- Burst rate limit. An internal 60-req/min per-workspace rate limit protects against abuse. You should not hit this under normal editing.
- Localized fields require an active locale — the context-bar locale selector determines which locale the rewrite targets.
- Fields other than short/long text (numbers, dates, booleans, JSON, references, assets, rich text) do not expose the action in v0.
Every invocation writes a row to the audit table (retained 90 days) with the before/after values, tone, model, credit cost, and approve/discard decision. A future Audit UI (tracked as CON-74) will surface this history inside the admin; for now it's queryable via the Management API only.
Media management
Navigate to Media in the sidebar to manage assets.
Uploading files
- Click Upload or drag and drop files into the media library
- Supported file types: images, videos, PDFs, documents, text files
- Maximum file size: 50 MB per file
- Each uploaded file appears in the asset grid with a preview thumbnail
Asset metadata
Click an asset to view and edit its metadata:
- Title — display name for the asset
- Description — longer description
- Alt text — alternative text for images (accessibility)
- File details: filename, MIME type, size
Publishing assets
Assets follow the same draft/publish lifecycle as entries:
- Upload creates a draft asset
- Publish the asset to make it available via the Delivery API
- Update metadata and publish again to push changes
Referencing assets in entries
When editing an entry with an asset field, use the asset picker to:
- Search the media library by filename
- Select an existing asset to attach it
Note: Uploading files directly from the entry editor is not yet available — upload assets via the Media library first, then reference them in entries.
Settings
Navigate to Settings in the sidebar to configure your workspace.
General settings
- Workspace name — update your workspace display name
- Workspace slug — URL-safe identifier
Locales
Manage the languages available in your workspace:
- Add a locale — specify the locale code (e.g.,
de-DE), name (e.g., "German"), and optional fallback locale - Default locale — one locale is marked as default; used as the final fallback in the resolution chain
- Delete a locale — remove a locale (localized field values for that locale are deleted)
See Core Concepts — Locales for how locale resolution works.
Environments
Manage content environments:
- View environments — see all environments (
productionis created automatically) - Create an environment — add a new isolated content scope (e.g.,
staging) - Delete an environment — remove an environment and all its content
See Core Concepts — Environments for how environments work.
API Keys
View and manage API keys for your workspace:
- Key list — shows all keys with their type (Secret/Read), key hint (last characters), and creation date
- Revoke a key — permanently disable a key (revoked keys are shown with a strikethrough)
Note: API keys are provisioned when your workspace is created. UI-based key creation will be added in a future release.
See Core Concepts — API Keys for the difference between Secret and Read keys.
AI Usage
View aggregated Intelligent Rewrite usage for your workspace:
- Monthly summary — total rewrites, approved/discarded counts with percentages, and token usage broken down by input and output.
- Rolling rate window — current request count and the server-provided per-minute limit, plus when the window resets.
- Empty state — when no Intelligent actions have been used this month, a prompt explains how to get started.
A rate-limit badge also appears next to the Intelligent Rewrite button on text fields when fewer than 10 requests remain in the current rolling window, showing the remaining count (e.g., "3 / 60 this min"). The badge reads the limit from the server and disappears once the window resets.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
Cmd+K or / | Open search |
Enter (inside Intelligent diff) | Approve the proposed rewrite |
Escape (inside Intelligent diff) | Discard the proposed rewrite |
Tab / Shift+Tab (Intelligent diff) | Cycle focus between Discard and Approve buttons |
Next steps
- Quickstart — end-to-end tutorial using both API and Admin UI
- Core Concepts — understand the data model behind the UI
- SDK Getting Started — programmatic access to everything the UI does
- API Reference — raw HTTP API details