Ferrite separates local development, previews, and production so an unverified change does not replace a known release.
Local
ferrite dev uses persistent local plane state and a localhost Gateway. It can
run several app instances or inject process crashes without affecting a remote
account.
Preview
ferrite preview creates an expiring preview. Each preview receives an isolated
URL and can be exercised by browser, API, MCP, and agent-readiness tests before
promotion.
Production
ferrite deploy submits source through the production admission and attested
build path. Immutable releases and environment pointers make promotion and
rollback explicit.
Use the Dashboard for environment and release history. MCP clients can use
releases, environments, deploy_history, cut_release, deploy_release,
promote, and rollback_release when they need the same records or controls
without a browser.
Environment records and direct source deployments are distinct read models. If an app was deployed directly without creating a release workflow, the dashboard must not invent a release or environment record.
See Deployments and Domains.