>Open source workflow engine

> Build Workflows
Your Way

Integrate the DartChain workflow engine directly into your application with our SDK, or deploy it self-hosted. Full control, zero vendor lock-in.

terminal
$
>_

Demo video placeholder

Add your video to /public/videos/demo.mp4

Everything You Need

A complete workflow engine with all the features you expect, and none of the bloat.

Lightning Fast

Built with performance in mind. Handle thousands of concurrent workflows with minimal overhead.

Developer First

Clean, intuitive API. TypeScript support out of the box. Built by developers, for developers.

Production Ready

Battle-tested reliability with comprehensive error handling, retries, and monitoring built-in.

Bring Your Database

Use PostgreSQL, MySQL, MongoDB, or any database. We provide adapters for all major databases.

Version Control

Track workflow versions, roll back changes, and manage deployments with Git-like versioning.

Visual Debugging

Real-time workflow visualization, step-by-step execution tracking, and comprehensive logging.

Why DartChain?

See how DartChain compares to other workflow engines

FeatureDartChainTemporalInngestTrigger.dev
Self-Hostable
TypeScript Native
Embed in Your App
Open Source (MIT)
Zero Vendor Lock-in
Visual Debugger
Built-in Testing Utils
Database Agnostic
Free TierUnlimitedLimitedLimitedLimited
Full support
Partial support
Not supported

> Get Started in Minutes

From zero to production-ready workflows in just a few lines of code.

1Install the SDK

terminal
npm install @dartchain/sdk

2Create Your First Workflow

workflow.ts
1import { DartChain } from '@dartchain/sdk'
2
3const workflow = new DartChain()
4 .step('greet', async (ctx) => {
5 return `Hello, ${ctx.input.name}!`
6 })
7 .step('log', async (ctx, message) => {
8 console.log(message)
9 return message
10 })
11
12const result = await workflow.execute({
13 name: 'Developer'
14})

3Add Error Handling & Retries

advanced-workflow.ts
1const workflow = new DartChain()
2 .step('fetchAPI', async (ctx) => {
3 return await fetch(ctx.input.url)
4 }, {
5 retry: { maxAttempts: 3, backoff: 'exponential' },
6 timeout: 5000
7 })
8 .step('process', async (ctx, data) => {
9 return processData(data)
10 })
11 .onError((error, ctx) => {
12 console.error('Workflow failed:', error)
13 return { success: false, error: error.message }
14 })

Built for Every Use Case

From simple automations to complex business processes, DartChain handles it all.

User-Facing Workflows

Embed workflow automation directly into your SaaS product. Let your users create custom automations without writing code.

Zapier-like automation
User onboarding flows
Custom integrations

Internal Tools

Build powerful internal tools and admin panels with complex approval workflows and business process automation.

Approval systems
Data pipelines
Report generation

CI/CD Pipelines

Orchestrate deployment workflows, automated testing, and release management with fine-grained control.

Build pipelines
Test orchestration
Release automation

Email & Notifications

Create sophisticated email campaigns, notification systems, and communication workflows.

Drip campaigns
Event notifications
Multi-channel messaging

Data Processing

ETL pipelines, data transformation, and batch processing jobs that scale with your data.

ETL workflows
Data migration
Analytics pipelines

Business Processes

Automate complex business processes with conditional logic, human-in-the-loop steps, and integrations.

Order fulfillment
Customer support
HR processes

Self-Host on Your Terms

Take full control of your workflow infrastructure. Deploy wherever you want, however you want.

Complete Data Control

Your data never leaves your infrastructure. Full compliance with GDPR, HIPAA, and any other regulations.

Deploy Anywhere

Docker, Kubernetes, bare metal, or cloud. Deploy on AWS, GCP, Azure, or your own servers.

Unlimited Scale

No usage limits, no per-execution pricing. Scale to millions of workflows without worrying about costs.

Predictable Costs

Pay only for your infrastructure. No surprise bills based on usage or workflow complexity.

$ Quick Deploy Options

docker run -p 3000:3000 dartchain/engine

Docker

helm install dartchain dartchain/chart

Kubernetes

npm install -g @dartchain/cli

Node.js

>For large teams

Enterprise Ready

Built for organizations that need enterprise-grade security, support, and scalability.

Dedicated Support

Priority support with guaranteed SLAs. Direct access to our engineering team when you need it most.

Custom Integrations

Tailored solutions for your tech stack. We work with you to build integrations that fit your workflow.

SSO & SAML

Enterprise identity management with support for Okta, Azure AD, and custom SAML providers.

Audit Logs

Comprehensive audit trails for compliance. Track every workflow execution and configuration change.

On-Premise Deployment

Deploy in air-gapped environments. Full control over your infrastructure with zero external dependencies.

Volume Licensing

Flexible pricing for large teams. Custom agreements that scale with your organization.

Contact Enterprise Sales

Get in touch to discuss your enterprise requirements

Built for Developer Happiness

Everything you need to build, test, and deploy workflows with confidence.

TypeScript First

Full TypeScript support with comprehensive type definitions. Get autocomplete and type safety throughout your workflows.

CLI Tools

Powerful command-line tools for scaffolding, testing, and deploying workflows. Integrate seamlessly with your existing dev workflow.

Built-in Testing

Test workflows locally with our testing utilities. Mock steps, simulate errors, and ensure your workflows work before deployment.

Observability

Built-in metrics, logging, and tracing. Integrate with Prometheus, Grafana, or any observability platform.

> Example: Testing a Workflow

workflow.test.ts
1import { testWorkflow } from '@dartchain/testing'
2
3describe('User Onboarding Workflow', () => {
4 it('should send welcome email', async () => {
5 const result = await testWorkflow(onboardingWorkflow)
6 .withInput({ userId: '123', email: 'user@example.com' })
7 .mockStep('sendEmail', async () => ({ sent: true }))
8 .execute()
9
10 expect(result.success).toBe(true)
11 expect(result.data.sent).toBe(true)
12 })
13
14 it('should handle email failures gracefully', async () => {
15 const result = await testWorkflow(onboardingWorkflow)
16 .withInput({ userId: '123', email: 'invalid' })
17 .mockStep('sendEmail', async () => {
18 throw new Error('Invalid email')
19 })
20 .execute()
21
22 expect(result.error).toBeDefined()
23 })
24})

> Ready to Build?

Join developers who are building the future of workflow automation with DartChain.

100%
Open Source
MIT
License
No Limits