Docs/Admin UI Guide

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:

SectionIconPurpose
ContentFile iconBrowse and edit entries by content model
ModelingBlocks iconCreate and manage content model schemas
MediaImage iconUpload and manage assets (images, files)
SettingsGear iconWorkspace 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+K or / 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:
    1. Create a content model
    2. Create your first entry
    3. Upload a media asset
    4. Add another language
    5. 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

  1. Click + New Model (or use the + New button in the context bar)
  2. Enter a name (e.g., "Blog Post") and API ID (e.g., BlogPost)
  3. Select the type: Page, Component, or Data
  4. Click Create

You are taken to the model editor where you can add fields.

Adding fields

In the model editor:

  1. Click Add Field
  2. Choose a field type from the picker:
Field typeWhat it storesExample use
Short TextSingle-line stringTitle, slug, author name
Long TextMulti-line plain textSummary, excerpt
Rich TextMarkdown contentArticle body, description
NumberInteger or decimalPrice, sort order
BooleanTrue/false toggleFeatured flag, published
Date & TimeISO date stringPublish date, event date
JSONArbitrary JSONCustom metadata, config
AssetReference to a fileHero image, PDF download
ReferenceLink to another entryAuthor, related posts
  1. 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.)
  2. 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

  1. The content section shows a grid of your content models
  2. Click a model card to see its entries
  3. The entry list shows:
    • Entry title or identifier
    • Status badge: Draft (gray), Published (green), Changed (yellow)
    • Created and updated timestamps
  4. Filter entries by status using the filter controls
  5. Use pagination to navigate large lists

Creating an entry

  1. Click + New Entry in the entry list (or use the + New button)
  2. The entry editor shows field editors for each field in the model:
Field typeEditor
Short TextSingle-line text input
Long TextMulti-line textarea
Rich TextMarkdown editor
NumberNumeric input
BooleanToggle switch
Date & TimeDate picker
JSONCode editor
AssetFile selector (pick from existing media library assets)
ReferenceEntry selector (search and pick from existing entries)
  1. Fill in field values
  2. For localized fields, use the locale selector in the context bar to switch between languages and enter content for each locale
  3. 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

StatusBadge colorMeaning
DraftGrayNot yet published; not visible in Delivery API
PublishedGreenLive; current version matches published version
ChangedYellowHas 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.

  1. Scroll to a shortText or longText field 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.
  2. 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.
  3. Pick a tone. A loading shimmer appears after ~300 ms (no jitter on fast responses).
  4. When the response arrives, an inline block mounts directly below the field showing a word-level diff:
    • shortText fields render a single-line diff (green = added, red = removed).
    • longText fields 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.
  5. 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:

ActionCredits
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

  1. Click Upload or drag and drop files into the media library
  2. Supported file types: images, videos, PDFs, documents, text files
  3. Maximum file size: 50 MB per file
  4. 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:

  1. Upload creates a draft asset
  2. Publish the asset to make it available via the Delivery API
  3. 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 (production is 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

ShortcutAction
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