Start in seconds with the light npx runtime, run the full engine yourself with Docker or On-Prem, or let Managed Cloud host it. The FSM engine, schemas, and SDK are shared — build on the primitives all three have in common and your app moves between them unchanged.
Choose your run mode
Three ways to run the same engine
The light npx runtime for zero-install local development, the full engine self-hosted (Docker or On-Prem), or Managed Cloud for hosted production. Pick by what your app needs — not by an artificial tier wall.
For the deployment-topology view — sovereignty, air-gap, and what ships today vs. the roadmap — see Deploy Anywhere.
npx runtime (light)
A zero-install Node sidecar — no Docker, no account. FSM engine, entities, public forms, realtime, and the append-only event log, on a SQLite file on your disk. The fastest way to build and demo a workflow app. Available today on npm.
Self-hosted full engine
The complete engine as a single container: everything the light runtime has, plus PDF rendering, the WASM scripting tier, extensions, e-signature, and marketplace apps. Run it locally with Docker or in production with On-Prem. Available today.
Managed Cloud
The full engine, fully hosted and multi-tenant. Sign up, install marketplace apps, and run production workloads — migrations, managed backups, and multi-node WebSocket fanout included. Available today.
Every mode speaks the same REST + WebSocket contract and shares the FSM engine, entities, forms, and event log. Where they differ is the heavier engine features and the deployment topology.
Capability
npx runtime (light)
Self-hosted full engine (Docker · On-Prem)
Managed Cloud
Runs with
Node — npx, no Docker
Docker container / your servers
a FastYoke account
FSM engine — guards, self-loops, admin cancel
✓
✓
✓
Entities + append-only event log
✓
✓
✓
Public forms
✓
✓
✓
Realtime (WebSocket)
✓ single-node
✓ single-node
✓ multi-node fanout
PDF rendering (typst)
—
✓
✓
WASM scripting tier (QuickJS · wasmtime)
—
✓
✓
Extensions (tenant-scoped bundles)
—
✓
✓
E-signature (21 CFR Part 11)
—
✓
✓
Marketplace apps (CRM Suite, Yoke Ledger, …)
—
✓
✓
Payments / billing (Stripe)
—
vendor-gated in sandbox mode
✓
Tenancy
single tenant per sidecar
multi-tenant (On-Prem)
multi-tenant
Replication · HA · managed backups
—
On-Prem
✓ managed
Cost
free
free to self-host
paid tiers
Availability
today
today
today
The light npx runtime is deliberately a subset — it covers the FSM / forms / entities core so you can build and iterate in seconds. When your app needs PDF, scripting, extensions, e-signature, or marketplace apps, that's the full engine — self-hosted with Docker or On-Prem, or hosted on Managed Cloud.
# Requires Node 18+
npx fastyoke init # scaffold .fastyoke/ + a seed.json you can edit
npx fastyoke dev # boot the local sidecar on :8787
Your entities are there, your FSM transitions fire, your public forms collect submissions — all in a SQLite file on your own disk. No account, no API key, no outbound traffic. fastyoke is the sidecar itself (the local server, not a client library), so it speaks the same REST + WebSocket contract as the full engine.
For the full walkthrough — provisioning an FSM and wiring a React app to it with the SDK — see the developer quick start.
Run the complete engine locally as a single container — the same binary On-Prem deploys, in sandbox mode against a plain SQLite database:
docker run -p 8080:8080 -e DEPLOY_ENV=sandbox \
ghcr.io/fastyoke/backend:sandbox
This is the full feature set — PDF rendering, the WASM scripting tier, extensions, e-signature, and the marketplace app schemas — with no cloud account. In sandbox mode, third-party integrations (payments, email, external SSO) run against local stubs so nothing leaves your machine. For production self-hosting with multi-tenancy, replication, and managed backups, see On-Prem.
The developer quick start walks through this Docker path end-to-end, from container boot to a working SDK-backed app.
Kick the tires on the FSM engine, or build a client demo, without installing anything. The npx runtime boots in seconds and runs offline. Reach for the Docker full engine when you want to evaluate PDF, scripting, or a marketplace app locally.
ISV shipping an embedded app
Your product runs inside a customer's firewall. The self-hosted full engine is the right dev, CI, and deployment target — the same container that runs locally deploys to the customer's On-Prem install without modification.
Run production, hosted
You want multi-tenant production with migrations, backups, and multi-node realtime handled for you. Managed Cloud runs the same engine and installs the same app packages you built locally.
The upgrade path
One schema, one SDK, across all three
Build on the shared primitives and your app moves between modes by changing a base URL — not code. The FSM schemas, entity definitions, form configs, and migrations are identical; the full engine simply adds features (PDF, scripting, extensions, e-sign, marketplace apps) on top of the same core.
The @fastyoke/sdk-core client points at whichever mode you're running:
Server-side (Next.js / Vercel Functions), @fastyoke/next swaps the same way — one class, credentials resolved from the environment:
import { FastYoke } from '@fastyoke/next'
// Local: point FASTYOKE_API_BASE at the runtime or the container.
// Managed Cloud: point it at api.fastyoke.com and set FASTYOKE_API_KEY.
const yoke = new FastYoke({ baseUrl: process.env.FASTYOKE_API_BASE })
There is no "Runtime version" of a schema and a "Cloud version." There is one schema. The only caveat: an app that uses full-engine features (PDF, scripting, extensions, e-sign, marketplace apps) needs the full engine — those aren't in the light runtime.
Honest tradeoffs
What the light runtime isn't for
It's a subset, on purpose. No PDF rendering, WASM scripting, extensions, e-signature, or marketplace apps. Those live in the full engine — run it with Docker or On-Prem when you need them.
Single tenant per sidecar. The npx runtime serves one tenant at a time. Simulating two isolated tenants means two sidecar processes on different ports.
Single-node, no HA. No write-ahead-log replication, no failover, no multi-node WebSocket fanout. For production with more than one operator or any HA requirement, use On-Prem or Managed Cloud.
No managed backups. The SQLite file is yours — back it up. On-Prem and Managed Cloud include operator-managed backup pipelines (Litestream to S3-compatible storage).
No zero-downtime deploys. Upgrading the runtime binary requires a restart. The event log and tenant database survive it; in-flight HTTP requests do not.
# Light runtime — Node 18+, no Docker
npx fastyoke init
npx fastyoke dev
The CLI bootstraps a .fastyoke/ directory with a local.db SQLite file, a seed.json you can edit, and a token file your frontend reads for authenticated API calls.
Deploy the same full-engine container on your own servers via Docker Compose, a Terraform / OpenTofu module, or a Helm chart. Air-gap friendly, no outbound calls, full data sovereignty. Preferred by healthcare and financial services customers.
Extend FastYoke to native Android + iOS for your employee fleet. OTA bundle delivery, offline-capable, composable with the full engine or On-Prem. Pay-as-you-go add-on, early access Q1 2027.