openworkflowdev/openworkflow

Open-source TypeScript framework for building durable, resumable workflows. Supports Node.js and Bun.

TypeScript

1,330

1,457 commits

updated Oct 12, 2026

See the code

README

OpenWorkflow

npm build coverage pkg.pr.new

OpenWorkflow is a TypeScript framework for building durable, resumable workflows that can pause for seconds or months, survive crashes and deploys, and resume exactly where they left off - all without extra servers to manage.

OpenWorkflow Dashboard

import { defineWorkflow } from "openworkflow";

export const sendWelcomeEmail = defineWorkflow(
  { name: "send-welcome-email" },
  async ({ input, step }) => {
    const user = await step.run({ name: "fetch-user" }, async () => {
      return await db.users.findOne({ id: input.userId });
    });

    await step.run({ name: "send-email" }, async () => {
      return await resend.emails.send({
        from: "me@example.com",
        to: user.email,
        replyTo: "me@example.com",
        subject: "Welcome!",
        html: "<h1>Welcome to our app!</h1>",
      });
    });

    await step.run({ name: "mark-welcome-email-sent" }, async () => {
      await db.users.update(input.userId, { welcomeEmailSent: true });
    });

    return { user };
  },
);

Quick Start

# npm
npx @openworkflow/cli init

# pnpm
pnpx @openworkflow/cli init

# bun
bunx @openworkflow/cli init

The CLI will guide you through setup and generate everything you need to get started.

Alternatively, for unattended setup:

# SQLite
npx --yes @openworkflow/cli init --backend sqlite --yes

# PostgreSQL
npx --yes @openworkflow/cli init --backend postgres --yes

Documentation

Architecture

Read ARCHITECTURE.md for a deep dive into how OpenWorkflow works under the hood.

Examples

Check out examples/ for working examples.

Contributing

We welcome contributions! Please read CONTRIBUTING.md before submitting a pull request.

Community

background-jobs
durable-execution
durable-functions
durable-workflows
postgresql
sqlite
typescript
workflow
workflow-engine

openworkflowdev/openworkflow

Open-source TypeScript framework for building durable, resumable workflows. Supports Node.js and Bun.

TypeScript

1,330

1,457 commits

updated Oct 12, 2026

See the code

README

OpenWorkflow

npm build coverage pkg.pr.new

OpenWorkflow is a TypeScript framework for building durable, resumable workflows that can pause for seconds or months, survive crashes and deploys, and resume exactly where they left off - all without extra servers to manage.

OpenWorkflow Dashboard

import { defineWorkflow } from "openworkflow";

export const sendWelcomeEmail = defineWorkflow(
  { name: "send-welcome-email" },
  async ({ input, step }) => {
    const user = await step.run({ name: "fetch-user" }, async () => {
      return await db.users.findOne({ id: input.userId });
    });

    await step.run({ name: "send-email" }, async () => {
      return await resend.emails.send({
        from: "me@example.com",
        to: user.email,
        replyTo: "me@example.com",
        subject: "Welcome!",
        html: "<h1>Welcome to our app!</h1>",
      });
    });

    await step.run({ name: "mark-welcome-email-sent" }, async () => {
      await db.users.update(input.userId, { welcomeEmailSent: true });
    });

    return { user };
  },
);

Quick Start

# npm
npx @openworkflow/cli init

# pnpm
pnpx @openworkflow/cli init

# bun
bunx @openworkflow/cli init

The CLI will guide you through setup and generate everything you need to get started.

Alternatively, for unattended setup:

# SQLite
npx --yes @openworkflow/cli init --backend sqlite --yes

# PostgreSQL
npx --yes @openworkflow/cli init --backend postgres --yes

Documentation

Architecture

Read ARCHITECTURE.md for a deep dive into how OpenWorkflow works under the hood.

Examples

Check out examples/ for working examples.

Contributing

We welcome contributions! Please read CONTRIBUTING.md before submitting a pull request.

Community

background-jobs
durable-execution
durable-functions
durable-workflows
postgresql
sqlite
typescript
workflow
workflow-engine

Project health

Latest release

0.10.1 · Sep 16, 2026

Releases this year

26

Significant stargazers

(top 24 of 31)

Daniel Roe

6,142 followers · starred Nov 2025

David Cramer

3,465 followers · starred Nov 2025

Dan Guido

974 followers · starred Feb 2026

Steven Tey

6,147 followers · starred Nov 2025