Editor
The block editor handles text, images, and video in a single contenteditable surface. Content is serialized to and from Markdown.
Custom fields: the Details card
Fields you define in the schema sit in one collapsible “Details” card in the main column, between the title and the body — grouped as in your schema, two per row, with long inputs (text areas, tables, lists, media, relations) using the full width. The header shows how many fields there are and how many are filled in. Collapse the card and the body gets the whole page; the choice is remembered per collection. If saving fails because a field is invalid, the card opens by itself.
The sidebar keeps what describes the entry itself: status, slug, history, activity, comments. A collection without a body field shows no block-editing tools at all; its groups start open, because the fields are the content.
Text blocks
Plain paragraphs, headings (##, ###), bold, italic, inline code, and links. Standard keyboard shortcuts apply: ⌘B bold, ⌘I italic, ⌘K link.
Image blocks
Images are first-class blocks. Insert via the / picker (/img) or drag-and-drop a file. Once inserted, an alignment toolbar appears:
| Option | CSS | Markdown |
|---|---|---|
| Float left | float: left | {.left} |
| Center | margin: auto | {.center} |
| Float right | float: right | {.right} |
| Full width | width: 100% | {.full} |
Text in surrounding paragraphs wraps naturally around floated images.
Video blocks
Paste a YouTube, Vimeo, Wistia, or direct .mp4/.webm URL. The editor auto-detects video URLs on paste and creates a block. Or use /vid in the block picker.
Video blocks render as responsive 16:9 embeds. Serialized as ::video[url] in Markdown.
Media picker
Click the image icon or use /img to open the picker. Three tabs:
| Tab | What it does |
|---|---|
| Library | Browse all files in the media library |
| From URL | Paste a Dropbox, Google Drive, or OneDrive share link — Orbiter fetches and stores the file server-side |
| External link | Paste any public URL — stored as a reference, nothing is downloaded |
Block picker
Type / at the start of a line to open the block picker:
/img— insert an image block/vid— insert a video block/h2,/h3— insert a heading/note— insert a callout block/tbl— insert a table block
Callout blocks
Type /note in the block picker to insert a callout — a tinted info box with a left accent border. Good for tips, warnings, and notes inline with prose.
/note → Callout block
Table blocks
Type /tbl to insert an editable table. A 2×2 grid with a header row is created. Use the toolbar to add or remove rows and columns.
/tbl → Table block (2×2, expandable)
- Tab — move to the next cell; Tab past the last cell adds a new row
- + Row / + Col — toolbar buttons to expand the table
- − Row / − Col — remove the last row or column
Autosave
The editor autosaves every 30 seconds and on blur. A "Saved" indicator appears in the toolbar. The save does not change the entry status — a draft stays draft until you explicitly click Publish.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
| ⌘ S | Save |
| ⌘ B | Bold |
| ⌘ I | Italic |
| ⌘ K | Insert link |
| ⌘ Z | Undo |
| ⌘ Shift Z | Redo |
Version history and diff
Each save keeps the previous content as a version (the last 20). In the sidebar's History, Diff shows, field by field, what would change if you restored that version (red = saved now, green = that version); Restore brings it back. Restoring keeps the content it replaces as a new version, so you can always undo a restore.
Preview URL
Set a preview URL template per collection in Schema → (collection) → Preview URL. Use {slug} as a placeholder:
https://mysite.com/posts/{slug}An ↗ Preview button appears in the editor topbar and opens the rendered page in a new tab. The URL updates live as the slug changes.