Upstash QStash vs Trigger.dev
A comparison of Upstash QStash and Trigger.dev built from values read directly from each provider's own documentation, with the source recorded against every figure.
The short answer
- 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.
3 sourced criteria separate them:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Pick the criteria you care about. The chart counts how many of them lean toward each provider — the same read as scanning the bars below, just totalled for the ones you chose.
Upstash QStash 0
Trigger.dev 0
At a glance.
| Criterion | Upstash QStash | Trigger.dev |
|---|---|---|
| Pricing | ||
| 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. |
| Queues | ||
| 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.
- 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.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“$1 per 100K messages [...] Max Messages per Day 1,000 Unlimited 1 M 10 M 100M+ [...] Max Monthly Bandwidth 50 GB 50 GB 1 TB 5 TB Unlimited”
Read 2026-09-06 · official pricing
- Pricing — Trigger.dev ↗
“$10 / month credits included [...] Then $10/month per 50 [...] Then $20/month per seat [...] Then $10/month per branch [...] Then $10/month per 1,000”
Read 2026-09-06 · official 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.
- 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.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Free $0 [...] Messages per Day 1,000 [...] Pay as You Go $1 per 100K messages [...] Messages per Day Unlimited [...] $180 / month [...] 1M [...] $420 [...] 10M”
Read 2026-09-06 · official pricing
- Pricing — Trigger.dev ↗
“$5 / month free credits [...] $10 / month credits included [...] $50 / month credits included”
Read 2026-09-06 · official pricing
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.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max DLQ Retention 3 days 7 days 30 days 3 months Custom”
Read 2026-09-06 · official pricing
- Pricing — Trigger.dev ↗
“1 day log retention 1 day query period [...] 7 day log retention 7 days query period [...] 30 day log retention”
Read 2026-09-06 · official pricing
Which should you choose?
Choose Upstash QStash if…
HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.
Editorial · Palash Bagchi · approved
Choose 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.
Editorial · Palash Bagchi · approved
Consider something else if…
- 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.
- 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.
These criteria are published by one provider and not the other. An absence here means we have not found a source, not that the feature is missing.
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.
