All three available today

One engine. Three ways to run it.

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.

The differences at a glance

1. What each mode gives you

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.

Capabilitynpx runtime (light)Self-hosted full engine (Docker · On-Prem)Managed Cloud
Runs withNode — npx, no DockerDocker container / your serversa 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
Tenancysingle tenant per sidecarmulti-tenant (On-Prem)multi-tenant
Replication · HA · managed backupsOn-Prem✓ managed
Costfreefree to self-hostpaid tiers
Availabilitytodaytodaytoday

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.

Available today

The light runtime: three minutes to a running app

# 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.

Available today

The full engine, self-hosted

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.

Related reading: Running your code — safely, at native speed: why FastYoke chose WebAssembly — the sandbox model behind the WASM scripting tier the runtime ships.

Who each mode is for

  1. Match the mode to the job

Evaluate & prototype fast

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

  1. 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:

import { createFastYokeClient } from '@fastyoke/sdk-core'

const client = createFastYokeClient({
  tenantId: 'local',
  fetcher: fetch,
  // npx runtime:            http://127.0.0.1:8787
  // self-hosted full engine: http://127.0.0.1:8080
  // Managed Cloud:           https://api.fastyoke.com
  baseUrl: process.env.FASTYOKE_API_BASE,
})

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

  1. 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.

Get started

# 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.

Read the getting-started guide

FastYoke for developers & ISVs

For ISVs embedding the full engine inside a client's firewall, see the On-Prem deployment guide.

Looking for more control?

The runtime is the fastest way to start — but FastYoke is designed to run anywhere your data lives.

On-Prem

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.

On-Prem deployment →

Substrate

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.

Substrate for mobile fleets →