Floral
Star on GitHub
Open Source · Free Forever

Workflow automation
built for builders.

Compose, deploy, and manage automated workflows programmatically. Self-host for free, scale without lock-in. No per-task fees. No arbitrary limits.

Open source
Apache 2.0
Self-hosted
Your infra
Free tier
No caps
pipeline.ts
import { workflow } from "@floral/core";

const pipeline = workflow("data-sync")
  .trigger(cron("0 * * * *"))
  .step("fetch", () => fetch(API_URL))
  .step("transform", ({ data }) => normalize(data))
  .step("persist", ({ data }) => db.upsert(data))
  .deploy();
Works with your existing stack
Node.jsPythonDockerKubernetesPostgreSQLRedisAWSGitHub Actions
Features

Everything you need.
Nothing you don't.

Composable by design

Chain steps, branch on conditions, fan out in parallel. Build complex multi-step workflows with simple, testable primitives.

Runs everywhere you do

Deploy to your own Kubernetes cluster, a bare VPS, or any Docker host. No agent call-home, no egress fees, no vendor dependency.

Triggers you actually need

Cron schedules, webhooks, queue consumers, file watchers, database CDC — compose any trigger with any action.

Code-first, not GUI-last

Define workflows in TypeScript or Python. Version them in Git, review them in PRs, test them in CI. No JSON blob exports.

Transparent execution

Every run is observable. Step-level logs, retry history, execution DAG, and error context — built in, no plugin required.

Extensible connectors

First-class HTTP, database, and queue connectors out of the box. Write custom connectors with a one-function interface.

How it works

From idea to production
in three steps.

01

Define your workflow

Write a workflow file in TypeScript or Python. Declare your trigger, compose your steps, set retry policies. It reads like application code because it is.

workflow("order-fulfillment")
  .trigger(webhook("/orders"))
  .step("validate", validateOrder)
  .step("reserve", reserveInventory)
  .step("charge", chargePayment)
02

Deploy anywhere

Run the Floral CLI to deploy. Works on bare Docker, Kubernetes, Railway, Fly.io, or any host with a container runtime. No managed infrastructure required.

$ floral deploy --env production
✓ Compiling workflows…
✓ Pushing to cluster…
✓ order-fulfillment deployed
  Running: 3 replicas · watch: floral logs
03

Observe and iterate

Every execution is logged with step-level detail. Retry failed runs with one command. Promote to production only when tests pass in CI.

$ floral runs list --workflow order-fulfillment
ID          STATUS    DURATION  TRIGGER
run_8ab2    success   1.2s      POST /orders
run_7c41    failed    0.4s      POST /orders
  └─ charge: PaymentDeclinedError
Open Source

Yours to run,
yours to extend.

Floral is Apache 2.0 licensed. Read the source, submit a PR, run it on-premise, fork it, build on it. We ship the core as open source because we believe your automation layer should never be a black box or a ransom.

Apache 2.0
License — use freely in commercial products
Self-hostable
Run on your own infra, forever, for free
Contributor-friendly
Clear CONTRIBUTING guide, good-first-issue tags
No telemetry
Zero call-home, zero usage tracking by default
Pricing

Free to run.
Pay for what you want managed.

The community edition has no workflow limits, no task caps, no expiry. Managed Cloud handles the ops so you don't have to.

Community
Free
Self-hosted, forever
Get started
  • Unlimited workflows
  • Unlimited executions
  • All trigger types
  • All connector types
  • Community support
  • Apache 2.0 license
Cloud
$29
per seat / month
Start free trial
  • Everything in Community
  • Managed hosting
  • Automatic scaling
  • Built-in observability
  • Team access controls
  • Email & chat support
Enterprise
Custom
Contact us
Talk to us
  • Everything in Cloud
  • SSO / SAML
  • SLA guarantee
  • Dedicated support
  • On-premise option
  • Custom contracts

Start automating.
Keep the control.

Install the Floral community edition in under five minutes. No credit card. No account. Just a workflow runtime you can trust.

Get started →Star on GitHub