Skip to content
inetGeek

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.

Updated 9 criteria compared

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.

No affiliate links, sponsored placements or paid rankings appear on this site. Ordering follows the sourced data and the stated criteria.

01.

At a glance.

CriterionUpstash QStashTrigger.dev
Pricing
Free tierYesYes
Pricing modelPer 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 month1,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.

Only criteria both providers publish appear here; a tinted cell marks a real difference. Criteria only one of them documents are listed below, and an absence there means we found no source — not that the feature is missing. How we source this.

The small bar above a value is inetGeek's own lean toward that side — computed from the same facts shown, never a number the provider published. See the picker below "The short answer" to weigh only the criteria you care about.

02.

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) →
  • 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) →
  • 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

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.

Sources (2) →
  • 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

03.

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.
04.

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.

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

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.

Provider pages

Related comparisons

sentry vs glitchtipsentry vs betterstackglitchtip vs betterstackcloudflare r2 vs backblaze b2cloudflare r2 vs wasabicloudflare r2 vs tigrisbackblaze b2 vs wasabiwasabi vs tigrisneon vs supabaseneon vs planetscalesupabase vs planetscalevercel vs cloudflare pagesvercel vs netlifynetlify vs cloudflare pagesrailway vs fly iofly io vs herokurender vs railwayrender vs fly iodigitalocean vs hetznerdigitalocean vs hostinger vpshetzner vs hostinger vpsvultr vs hostinger vpslinode vs hostinger vpsdigitalocean vs vultrdigitalocean vs linodevultr vs linodehetzner vs vultrhetzner vs linodeheroku vs renderheroku vs railwayhostinger vs dreamhostsiteground vs dreamhostkinsta vs pressablewp engine vs pressablekinsta vs flywheelwp engine vs flywheelpressable vs flywheelvercel vs aws amplifyaws amplify vs netlifyaws amplify vs cloudflare pageskinsta vs wp enginehostinger vs sitegroundanthropic vs openaianthropic vs google geminianthropic vs deepseekopenai vs google geminiopenai vs deepseekgoogle gemini vs deepseekresend vs postmarkresend vs mailgunresend vs amazon sespostmark vs mailgunpostmark vs amazon sesmailgun vs amazon sesclerk vs auth0clerk vs workosclerk vs better authauth0 vs workosauth0 vs better authworkos vs better authcloudflare queues vs qstashcloudflare queues vs inngestcloudflare queues vs trigger devqstash vs inngestinngest vs trigger dev