Skip to main content
Deno 2 is finally here 🎉️
Learn more

StateBacked.dev CLI - launch an XState backend in 5 minutes

GitHub license npm version CI Docs

StateBacked.dev runs XState machines as your secure, scalable, serverless backend.

Check out the full State Backed docs for more detailed information and to get started with your own XState backend as a service.

5 minute quick start

$ npm install -g smply
$ npx esbuild --bundle --format=esm --outfile=./toggler.js ./toggler.ts
$ smply machines create --machine toggler --node ./toggler.js
$ # You can now launch instances of your toggler machine, send events, and read state!

toggler.ts

import { createMachine } from "xstate";
import type { AllowRead, AllowWrite } from "@statebacked/machine-def";

export allowRead: AllowRead = ({ machineInstanceName, authContext }) =>
  machineInstanceName === authContext.sub

export allowWrite: AllowWrite = ({ machineInstanceName, authContext }) =>
  machineInstanceName === authContext.sub

export default createMachine({
  predictableActionArguments: true,
  initial: "on",
  states: {
    on: {
      on: {
        toggle: "off",
      },
    },
    off: {
      on: {
        toggle: "on",
      },
    },
  },
});