orbiter.sh
Where we're going

One content source.

The web is splitting into two layers: one for humans, one for AI agents. Orbiter is building for both — from a single POD.

↓ Scroll to explore
The Dual Render Concept

Humans read stories.
Agents read structure.

Today, websites serve one audience. Tomorrow, half your "visitors" will be AI agents — searching, comparing, summarizing. They don't need your CSS. They need your data. Dual Render serves both from the same DOM.

Human Layer
👁
Visual & Narrative
  • CSS layout & typography
  • Images, video, animation
  • Narrative flow & hierarchy
  • Progressive disclosure
Single Source
◈
One POD
  • Structured content
  • Schema-aware fields
  • Semantic depth tags
  • One build, two outputs
Agent Layer
⚡
Structured & Semantic
  • /llms.txt content map
  • /feed.json structured API
  • Semantic depth metadata
  • RAG-ready format
The Stack
Orbiter POD
→
Astro Build
→
Dual Render

Content lives in the POD. Astro builds the site. Dual Render splits the output — CSS-controlled visual layer for humans, structured semantic layer for AI agents. Same content, zero duplication.

Research Tool

Orbiter as a
Research Platform

The Dossier template turns Orbiter into a structured research tool. 39 fields organized in collapsible groups — Content, Research, Evidence, Meta, Provenance, Agent — capture everything from narrative body text to machine-readable claims and APA7 sources. Dual Render makes it real: the same dossier serves humans a readable story and gives AI agents structured data.

The Depth Model
0
Narrative
Body text, title, summary — the human-readable story. What you'd read on a webpage.
Humans, browsers, social cards
1
Research
Structured claims, hypotheses, methodology, key findings — the analytical layer behind the narrative.
Researchers, reviewers, collaborators
2
Evidence
APA7 sources, datasets, confidence scores, contradictions — the verifiable foundation.
Fact-checkers, citation managers, RAG pipelines
3
Machine Mode
Machine summary, processing notes, provenance chain — structured data for AI agents to ingest directly.
AI agents, /llms.txt, RAG systems
◫
Field Groups
Complex schemas collapse into manageable sections. First two groups auto-open; the rest expand on click. Works on any collection — not just dossiers.
📖
APA7 Citations
Table fields with format: 'apa7' render formatted citations in real time. Book, article, chapter, report, website — all standard academic formats.
⇄
Template System
Export and import research schemas as JSON. Share dossier templates across teams. Install built-in templates into any existing POD with one click.
◈
Dual Render Ready
Dossiers serve humans the narrative body and AI agents the structured claims, machine summary, and source data — from a single entry, zero duplication.
On the horizon
Roadmap

0 features shipped.
Where we're going.

Machine view
The same roadmap as an agent reads it — structured, no layout. One source, two audiences.
✓
Phase 01–12 · Complete
Foundation → Launch Pad
Core DB, admin UI, block editor, media library, auth, themes, CLI, i18n, scheduled publishing, FTP deploy, desktop app, Station dock mode, file & table fields, calendar view, cross-pod copy.
0 features shipped
✓
Phase 14 · Complete
Simple Analytics, OG Image Picker, Dashboard Toggles
Privacy-friendly pageview tracking in the POD. Bot detection (GPTBot, ClaudeBot). Analytics dashboard with daily chart, top pages, referrers. OG Image picker modal. Dashboard widget toggles in Settings. Keyboard nav expanded.
admin@0.3.66
✓
Phase 15 · Complete
Form Builder UI
Visual form builder — drag fields, set validation, configure email templates. Generates the HTML snippet for your Astro page. The form inbox already exists; this completes the loop.
shipped
✓
Phase 15 · Complete
Dossier Template & Research Platform
39-field dossier template with field groups, APA7 citation system, and nav grouping. Collapsible editor sections, live citation previews, dock drawers with hover popups. The Depth Model: structured research content from narrative to machine mode.
shipped
✓
Phase 15 · Complete
Template Import/Export
Export collections as shareable JSON, import template files, install built-in templates into any existing POD. Settings UI with template buttons and export/import controls.
shipped
✓
Phase 15 · Complete
Multi-POD Dashboard
The web admin's Pods page links multiple PODs on the same server, showing entry counts and last-modified dates at a glance — works in any browser today. Docs → A native multi-window switcher inside the Desktop app itself, for freelancers juggling client sites on different machines, is still next up.
shipped
✓
Phase 15 · Complete
AI Content Assistant
Summarize, translate, generate SEO text, adjust tone — directly in the block editor via the ✦ AI panel. Supports Ollama (local, free), Google Gemini, or OpenAI/Anthropic API keys. No cloud required. Docs →
shipped
✓
Phase 15 · Complete
Knowledge Graph
Force-directed, pannable canvas view of every relation field across the pod — entries as nodes, relations as labeled edges, broken references surfaced instead of hidden. Docs →
shipped
✓
Phase 15 · Complete
Content Quality Dashboard
Scans every published entry for missing body, thin content, no image, no SEO metadata. Issue counts on the dashboard, click through to fix. Docs →
shipped
✓
Phase 15 · Complete
User Roles & Collection Permissions
Admin / editor roles, plus a per-editor allow-list restricting which collections they can see — enforced across every entry-level route, not just the main editor view. Docs →
shipped
✓
Phase 16 · Complete
llms.txt Auto-Generator
Orbiter generates /orbiter/llms.txt — a machine-readable content map listing all published entries with summaries. AI agents get a curated entry point. Configurable per collection.
shipped
✓
Phase 16 · Complete
Semantic Depth Fields + JSON Feed
depth: 0-3 on schema fields (Narrative → Research → Evidence → Machine). /orbiter/feed.json serves JSON Feed v1.1 with ?depth= filter for progressive disclosure to AI agents.
shipped
✓
Phase 16 · Complete
Agent Analytics
Classify bot traffic by type: AI crawler (GPTBot, ClaudeBot), AI agent (Perplexity, ChatGPT), RAG pipeline (Cohere), feed reader, search. Per-agent hit counts and top paths.
shipped
✓
Phase 17 · Complete
Astro Content Layer Adapter
orbiterLoader() and orbiterLiveLoader() — standard astro:content API with auto Zod schemas, incremental digest caching, and hot reload via file watcher. Plus orbiter publish and orbiter backup CLI commands.
shipped
✓
Phase 18 · Complete
MCP Server
@a83/orbiter-mcp — Model Context Protocol server exposing pod content as tools (list_collections, get_entries, get_entry, search_content) for Claude Desktop and other MCP clients. stdio for local trusted access, HTTP for remote — same auth model as the Public Content API.
mcp@0.1.0
✓
Phase 17 · Complete
Smart Suggestions v2
Multi-section suggestion panel: AI tags, cross-collection related entries, SEO title & description, content quality hints, missing field fills, suggested prompts. Manual trigger button in toolbar. All AI tasks run in parallel.
shipped
✓
Phase 17 · Complete
Publish HTML
One-click static site generator with two built-in themes (Orbit, Canvas). Dark mode, responsive design, reading time, OG tags, SVG favicon. Choose a theme, click Generate, deploy the ZIP anywhere. No Astro needed.
shipped
✓
Phase 15 · Complete
POD Sync
orbiter sync --remote user@host:/path/content.pod — rsync push/pull in one command, --pull to reverse direction. Git-based or CouchDB-style replication with a conflict-resolution UI for simultaneous multi-writer setups is still future work.
shipped
✓
Phase 15 · Complete
Widget SDK
Drop <div data-orbiter="…" data-collection="posts"></div> plus <script src="widget.js"> on any website to display POD content — blog feed, event list, portfolio grid. No framework required. Docs →
shipped
✓
Complete · Security
Security Check & orbiter doctor
Audits your setup for the risks that actually bite: open Content API with no token, a pod with live sessions committed to git, plaintext credentials, a public admin port, stale sessions, outdated packages. CLI command plus a dashboard card.
shipped
✓
Complete · Security
Encrypted Secrets in the POD
FTP, SMTP, AI and GitHub tokens encrypted at rest with a key from an environment variable (ORBITER_SECRET), so a pod committed to git no longer carries usable credentials.
shipped
✓
Complete · AI
MCP Draft-Write Access
Scoped API keys let agents create and edit drafts over MCP — never publish. An agent prepares, a human approves. Read-only keys keep working as today.
shipped
✓
Complete · Security
2FA & Active Sessions
TOTP for every user (authenticator app, recovery codes, admin reset) and an "active devices" list with per-device sign-out. Docs →
shipped
✓
Complete · Security
API Key Scopes & Expiry
Per-collection access, expiry date and per-key rate limits for Public Content API and MCP keys, plus draft-only write access. Docs →
shipped
✓
Complete · Automation
Signed Webhooks with Retry & Log
HMAC-signed payloads, automatic retries and a delivery log in Settings — the foundation for Slack / newsletter automations. Docs →
shipped
✓
Complete · Editing
Version Diff
Side-by-side comparison of entry versions before you restore one.
shipped
✓
Complete · Editing
Review Workflow
An "In review" status and a reviewer role: editors submit, reviewers approve or request changes — enforced on the server. Docs →
shipped
✓
Complete · Media
Media Cleanup & Usage
See where an image is used, find unused media and broken references (the Knowledge Graph already knows the relations).
shipped
✓
Complete · Media
Focal Point & Responsive Variants
Set a focal point per image; request resized / AVIF / WebP / cropped variants with ?w=&fmt=&ar= on any media URL. Docs →
shipped
✓
Complete · AI
Translate Missing Locales
One click creates the missing language versions as drafts, translated by the configured AI provider — never overwriting, never publishing. Docs →
shipped
Next · Integrations
Obsidian Plugin
Send a note from your vault to Orbiter as a draft with one command — frontmatter becomes fields, the slug lives in the note so re-sending updates the same entry. Uses a draft-only API key (it can never publish), limited to the collections and lifetime you choose. Later: pull entries back into the vault as Markdown.
planned
Next · Agents
Agent Proposals with a Human Gate
Agents can suggest changes to published entries. Each suggestion lands in an inbox as a diff; reviewers accept, edit or reject — nothing is ever applied automatically. The activity log names the source (agent:key-name), and an access receipt shows which agents read what, aggregated and privacy-friendly.
planned
Next · Retrieval
Semantic Search in the POD
Embeddings stored in the SQLite file (generated locally, e.g. with Ollama), returning passage-level hits with sources — for agents over MCP and the Content API, and as a better site search for humans. Search stays inside your POD.
planned
Next · Trust
Verifiable & Citable Content
Every published state gets a content hash, a stable permalink and a site signature, so readers and agents can verify nothing was altered and ask "as of 2026-10-01". Citation metadata (BibTeX, CSL-JSON, DOI) and a license / AI-use policy ride along in llms.txt and JSON-LD.
planned
Next · Adoption
Public Sandbox Demo
Try the admin without installing anything: a hosted demo pod (the one from the product tour), reset every night, with FTP, webhooks, GitHub sync, imports and user management switched off.
planned
Next · Safety
Snapshots & One-click Restore
Automatic daily snapshots of the POD with a retention window, and a restore button in the admin. For a CMS that is one file, "can I get yesterday back?" should be a single click.
planned
◇
Future
SvelteKit Integration
@a83/orbiter-sveltekit — same virtual module API as the Astro integration, but as a Vite plugin for SvelteKit projects.
planned
◇
Future · Collaboration
Live Collaboration
WebSocket-based real-time editing. See who's editing, cursor positions, live changes. Built on the existing entry-locking system.
planned
◇
Future · Automation
Webhooks & Automations
Trigger actions when content is published — Slack notifications, social media posts, newsletter sends. Visual webhook chain builder in Settings.
planned
◇
Future · Collaboration
Live Collaboration
WebSocket-based real-time editing. See who's editing, cursor positions, live changes. Built on the existing entry-locking system.
planned
◇
Future · Extensibility
Plugin System
Load custom field types as JS modules. A dossier plugin could auto-extract claims from body text, or a map plugin could render location fields.
planned
◇
Future · Cloud
Orbiter Cloud
Hosted Orbiter — create a POD with one click, no server needed. Custom domains, automatic backups, team access. Your POD is always downloadable and portable.
planned
◇
Future · Machine
Claims & Evidence Entries
Claims as first-class entries with sources, confidence and status — the Knowledge Graph already draws the relations. Versioned collection contracts (JSON Schema / OpenAPI) and MCP resources & prompts, not just tools.
planned
◇
Future · Human
Freshness & Quality Gates
"Review by" dates and stale-content warnings, accessibility lint, a link checker, and a quality gate before publishing.
planned
◇
Future · Reach
Publish Everywhere (POSSE)
The POD stays the origin; ActivityPub lets people follow a site from Mastodon, plus newsletter and RSS out. One source, many channels.
planned
◇
Future · Local-first
Capture Anywhere & Sync
A phone PWA for quick capture, and the conflict-aware multi-writer sync that is still on the list.
planned
◇
Future · Trust
Privacy Tools for Forms
Retention periods, export and deletion per person for form submissions — the inbox holds personal data.
planned
◇
Future · Open
Open POD Specification
The POD format written down as an open spec with a conformance test-suite and reference readers in Python and Go. No lock-in, in writing. Plus signed releases (npm provenance, SBOM).
planned
◇
Future · Adoption
npm create orbiter
A proper starter command next to orbiter init — easier to find, and the way people expect to start an Astro project. Listed in the Astro integrations directory.
planned
◇
Future · Quality
Browser Regression Suite
Headless-browser smoke tests on every pull request: sign-in, editor, dock popups, scrolling on every page in Station mode, dialogs — the class of layout bugs unit tests never see.
planned