> ## Documentation Index
> Fetch the complete documentation index at: https://openworkflow.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The open source workflow engine

> OpenWorkflow is a TypeScript framework for building durable, resumable workflows.

<CodeGroup>
  ```bash npm theme={null}
  npx @openworkflow/cli init
  ```

  ```bash pnpm theme={null}
  pnpx @openworkflow/cli init
  ```

  ```bash bun theme={null}
  bunx @openworkflow/cli init
  ```
</CodeGroup>

<img src="https://mintcdn.com/openworkflow/9lP8jOQ8KK7PhgqE/assets/dashboard.png?fit=max&auto=format&n=9lP8jOQ8KK7PhgqE&q=85&s=f885adaed7a8103eb24e44da4a587bc8" alt="OpenWorkflow Dashboard" width="2548" height="1132" data-path="assets/dashboard.png" />

## What is OpenWorkflow?

OpenWorkflow is a TypeScript framework that makes multi-step operations durable.
Wrap each operation in a step, and OpenWorkflow remembers which steps already
finished. If anything crashes, the workflow picks up right where it left off —
completed steps are never re-run.

```ts theme={null}
import { defineWorkflow } from "openworkflow";

export const processOrder = defineWorkflow(
  { name: "process-order" },
  async ({ input, step }) => {
    // if the server crashes after this step, the card is NOT charged again
    await step.run({ name: "charge-card" }, async () => {
      await payments.charge(input.orderId);
    });

    await step.run({ name: "send-confirmation" }, async () => {
      await emails.send({ to: input.email, subject: "Order confirmed!" });
    });
  },
);
```

## Features

<div className="flex flex-col gap-2">
  <div>
    <Icon icon="shield-check" /> **Durable** - Workflows survive process
    restarts and server crashes. Completed steps are never repeated.
  </div>

  <div>
    <Icon icon="rotate-right" /> **Resumable** - After a crash or deploy,
    workflows pick up from the last completed step automatically.
  </div>

  <div>
    <Icon icon="clock" /> **Pausable** - Workflows can sleep for seconds or
    months without tying up resources.
  </div>

  <div>
    <Icon icon="code" /> **Type Safe** - First-class TypeScript support for
    inputs and outputs.
  </div>
</div>

## Get Started

<CardGroup cols={2}>
  <Card title="Quick Start" icon="bolt" href="/docs/quickstart">
    Build your first workflow in 5 minutes.
  </Card>

  <Card title="How It Works" icon="book" href="/docs/overview">
    Understand the core concepts: workflows, steps, and workers.
  </Card>
</CardGroup>
