# Upstash QStash vs Trigger.dev

Canonical: https://inetgeek.com/compare/qstash-vs-trigger-dev/

Every value below is read from Upstash QStash's and Trigger.dev's own documentation. See https://inetgeek.com/methodology/ for how.

## At a glance

| Criterion | Upstash QStash | Trigger.dev |
| --- | --- | --- |
| Free tier | Yes | Yes |
| Pricing model | Per message rather than per operation, metered against a daily ceiling on the free plan and priced at $1 per 100,000 on Pay as You Go, with monthly bandwidth caps alongside — 50 GB on the smaller plans, 1 TB and 5 TB above. | A monthly plan fee that is also a credit balance — the fee buys compute rather than sitting on top of it — with concurrency, preview branches, dashboards and schedules each priced as separate add-ons beyond the plan's allowance. |
| Included per month | 1,000 messages a day on the free plan. Pay as You Go is $1 per 100,000 messages with no daily cap; fixed plans run $180 a month for 1M a day and $420 for 10M. | Credits rather than a message or execution count: $5 a month free, $10 included on Hobby and $50 on Pro, spent against compute. |
| Message retention | Dead letter queue retention of 3 days on the free plan, 7 days on Pay as You Go, 30 days and 3 months on the fixed plans. | Log retention of 1 day on the free plan, 7 days on Hobby and 30 days on Pro, with the query period matching. |

## Where they differ

### Pricing model

- Upstash QStash: Per message rather than per operation, metered against a daily ceiling on the free plan and priced at $1 per 100,000 on Pay as You Go, with monthly bandwidth caps alongside — 50 GB on the smaller plans, 1 TB and 5 TB above. ([source](https://upstash.com/pricing/qstash))
- Trigger.dev: A monthly plan fee that is also a credit balance — the fee buys compute rather than sitting on top of it — with concurrency, preview branches, dashboards and schedules each priced as separate add-ons beyond the plan's allowance. ([source](https://trigger.dev/pricing))

### Included per month

- Upstash QStash: 1,000 messages a day on the free plan. Pay as You Go is $1 per 100,000 messages with no daily cap; fixed plans run $180 a month for 1M a day and $420 for 10M. ([source](https://upstash.com/pricing/qstash))
- Trigger.dev: Credits rather than a message or execution count: $5 a month free, $10 included on Hobby and $50 on Pro, spent against compute. ([source](https://trigger.dev/pricing))

### Message retention

- Upstash QStash: Dead letter queue retention of 3 days on the free plan, 7 days on Pay as You Go, 30 days and 3 months on the fixed plans. ([source](https://upstash.com/pricing/qstash))
- Trigger.dev: Log retention of 1 day on the free plan, 7 days on Hobby and 30 days on Pro, with the query period matching. ([source](https://trigger.dev/pricing))

## Which should you choose?

Pick Upstash QStash if HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.

Pick Trigger.dev if Teams that want background jobs written as normal code with the bill expressed as compute credits rather than a per-message meter.

Consider something else: Upstash QStash — The free plan is capped per day rather than per month, so a single burst can exhaust it while a monthly allowance elsewhere would absorb the same volume.

Consider something else: Trigger.dev — Concurrency is the axis that forces an upgrade — 20 simultaneous runs on free, 50 on Hobby, then $10 a month per additional 50.

## Documented by only one

- Entry paid plan: Trigger.dev: $10/month for Hobby, which includes $10 of credits; Pro is $50/month including $50 of credits.
- Maximum message size: Upstash QStash: 1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans.
- Maximum delay: Upstash QStash: 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans.
- Concurrency: Trigger.dev: 20 concurrent runs on the free plan, 50 on Hobby, and more on Pro at $10 a month per additional 50.
- Dead letter queue: Upstash QStash: Supported

## Questions this comparison answers

**Should I choose Upstash QStash or Trigger.dev?**

Pick Upstash QStash if HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.
Pick Trigger.dev if Teams that want background jobs written as normal code with the bill expressed as compute credits rather than a per-message meter.
