Getting started
Get the Bedrock Flows stack running locally, then take it online for a team.
There are two ways to run Bedrock Flows: local (just you, nothing to sign up for) and online (behind sign-in, for a team to review). Start local — it needs nothing but Node.
Prerequisites
For local development, that is all you need:
- Node.js v18 or newer
- npm (ships with Node)
You don't need any accounts, API keys, or a Cloudflare login to run a project locally.
Local — no accounts
Scaffold a new project, install, and run:
npx bedrock-flows create my-flows
cd my-flows
npm install
npm run devnpm run dev is one command that runs everything — the worker, the dashboard, and
the design-system storybook together. Then open:
http://localhost:5173A built-in dev session lets you view the project immediately — there's nothing to sign
up for. The first run generates apps/worker/.dev.vars automatically, so there's no
setup step.
You edit two folders:
prototypes/— wireflow prototypes (one folder per flow;_shared/holds the page templates).design-system/— versioned design systems.
Upgrade the platform later with:
npm install @obra-studio/bedrock-flows@latestOnline — for a team, behind sign-in
To put flows online so a team can review them behind sign-in, you additionally need:
- A Cloudflare account (the flows deploy to a single Cloudflare Worker — KV, D1, and secrets).
- (Optional) Postmark or Resend, to email invites. Without an email provider, sign-in still works — you just share links by hand instead of emailing them.
- (Optional) A Google OAuth client, to enable Google sign-in.
Stand up the backend, then deploy:
bedrock-flows setup my-flows # creates KV + D1 + secrets, then deploys
npm run deploy # ship subsequent changesbedrock-flows setup provisions this project's own Cloudflare resources (KV namespaces,
a D1 auth database, secrets) and does the first deploy. After that, npm run deploy
builds and ships your changes (wrangler deploy under the hood).
Useful setup flags:
bedrock-flows setup my-flows --domains=acme.com,example.com # restrict signup to these domains
bedrock-flows setup my-flows --google # enable Google sign-in
bedrock-flows setup my-flows --dry-run # print every action without executing