Home/Background Jobs/Trigger.dev
Background Jobs
trigger-dev

Trigger.dev

TypeScriptOpen SourceFree tier

Open-source background job platform built for serverless and edge. Write durable background jobs as plain TypeScript functions with retries, delays, and scheduling — no infrastructure setup.

License

Apache 2.0

Language

TypeScript

80
Trust
Strong

Why Trigger.dev?

Serverless/edge app that needs durable background tasks

You want to write jobs as plain TypeScript without a Redis queue

Long-running tasks (>10s) that would timeout in Vercel serverless

Signal Breakdown

What drives the Trust Score

Weekly npm downloads
120k/wk
GitHub commits (90d)
380
GitHub stars
8k
Stack Overflow questions
800
Community health
Growing
Weighted Trust Score80 / 100

Download Trend

Last 12 months

Tradeoffs & Caveats

Know before you commit

Already have Redis — BullMQ is more feature-complete

Python backend — no Python SDK yet

Very high throughput — managed plan has limits

Pricing

Free tier & paid plans

Free tier

Free tier (500 runs/mo)

Paid

From $20/mo

Self-hostable

Alternative Tools

Other options worth considering

bullmq
BullMQ83Strong

The premium queue and job scheduling solution for Node.js, backed by Redis. Handles retries, rate limiting, priorities, repeatable jobs, and job dependencies out of the box.

celery
Celery87Strong

The most widely used distributed task queue for Python. Celery handles background jobs, scheduled tasks, and async processing using Redis or RabbitMQ as a broker. A staple of Django and Flask applications.

inngest
Inngest40Limited

Durable workflow and background job platform built for serverless and edge environments. Write event-driven functions with built-in retries, delays, step execution, and fan-out — no queue infrastructure needed.

Often Used Together

Complementary tools that pair well with Trigger.dev

nextjs

Next.js

Frontend & UI

98Excellent
View
supabase

Supabase

Database & Cache

95Excellent
View
vercel

Vercel

Hosting & Deploy

89Strong
View
bullmq

BullMQ

Background Jobs

83Strong
View
inngest

Inngest

Background Jobs

40Limited
View

Learning Resources

Docs, videos, tutorials, and courses

Get Started

Repository and installation options

View on GitHub

github.com/triggerdotdev/trigger.dev

npmnpm install @trigger.dev/sdk

Quick Start

Copy and adapt to get going fast

import { task, wait } from '@trigger.dev/sdk/v3';

export const processUpload = task({
  id: 'process-upload',
  run: async (payload: { fileUrl: string; userId: string }) => {
    // Step 1: Download
    const file = await downloadFile(payload.fileUrl);
    // Step 2: Process (can take minutes — no timeout!)
    const result = await runMLModel(file);
    // Step 3: Notify
    await notifyUser(payload.userId, result);
    return { processed: true };
  },
});

Code Examples

Common usage patterns

Scheduled task

Run a job on a cron schedule

import { schedules } from '@trigger.dev/sdk/v3';

export const weeklyReport = schedules.task({
  id: 'weekly-report',
  cron: '0 9 * * 1', // Every Monday at 9am UTC
  run: async () => {
    const stats = await generateWeeklyStats();
    await sendReportEmail(stats);
    return { sent: true };
  },
});

Multi-step workflow

Chain steps with built-in delays

import { task, wait } from '@trigger.dev/sdk/v3';

export const onboardingFlow = task({
  id: 'onboarding-flow',
  run: async (payload: { userId: string }) => {
    await sendWelcomeEmail(payload.userId);
    await wait.for({ hours: 24 }); // Non-blocking wait!
    await sendTipsEmail(payload.userId);
    await wait.for({ days: 7 });
    await sendCheckInEmail(payload.userId);
  },
});

Community Notes

Real experiences from developers who've used this tool