SaaS stacks
Mara Lindqvist7 min read2 views

Open-source background jobs for Next.js: BullMQ vs Trigger.dev vs pg-boss vs Hatchet vs Inngest (2026)

A curated, ownership-first comparison of the open-source background job runners for a Next.js SaaS in 2026: BullMQ, pg-boss, Trigger.dev, Hatchet, and Inngest, split honestly by license and by how much infrastructure you want to run.

Updated on August 4, 2026

A curated gallery shelf of framed background-job diagrams: pipelines, workers, a schedule clock, and retry arrows
A curated gallery shelf of framed background-job diagrams: pipelines, workers, a schedule clock, and retry arrows
On this page

Quick answer (August 2026)

If you want open-source background jobs for a Next.js SaaS in 2026, there is no single winner, only a right pick for how much infrastructure you want to own. Reach for BullMQ when you already run Redis and want a battle-tested worker library you control end to end. Reach for pg-boss when your only stateful dependency is Postgres and you refuse to add Redis just for a queue. Reach for Trigger.dev or Hatchet when you want a real orchestration layer with a dashboard, retries, and long-running steps, and you are willing to self-host the platform. And keep Inngest on the shortlist for event-driven, serverless-first work, as long as you read its licensing carefully before you plan to self-host. All star counts, licenses, and versions below were read from each project's GitHub on August 4, 2026.

Every framed piece in this room is self-hostable and open in some meaningful way, which is the whole point of hanging them next to a Next.js app you actually own.

The five we hung on the wall

We only curate things a small team can run without a platform contract. Here is the shortlist, with the number that matters most to us up front: the license.

Scroll to see more

ToolLicenseGitHub starsBacking storeSelf-host realityLatest release
BullMQMIT9,240Redis (or Postgres)You run it. It is a library, not a servicev6.0.7
pg-bossMIT3,823PostgresYou run it. No extra infrastructure12.27.0
Trigger.devApache-2.015,892Postgres + RedisFull platform, self-hostable with effortv4.5.9
HatchetMIT7,663PostgresFull platform, self-hostable with effortrolling
InngestSource-available (read below)5,686Managed or self-host engineCloud-first, self-host is possible but nuancedrolling

Stars and licenses read from GitHub on August 4, 2026. Everything here speaks TypeScript natively, which is why it earns a place next to Next.js.

BullMQ, the Redis workhorse you operate

BullMQ logo

BullMQ is the one you already half-know. It is a Redis-backed message queue for Node (also Python, .NET, and more now), MIT licensed, at 9,240 stars and shipping fast, with v6.0.7 tagged on August 4, 2026. It is deliberately a library, not a platform: you install it, you point it at a Redis instance, and you write your own workers and your own dashboard, or you bolt on the community Bull Board UI.

The taste call: BullMQ is the least magical and the most yours. If you are already paying for Redis and you want jobs, retries, rate limiting, and repeatable schedules with zero new vendors in the diagram, this is the honest default. The cost is that concurrency, observability, and deployment of the worker process are your problem, not the library's. That is a feature if you like control and a chore if you wanted a dashboard for free.

pg-boss, jobs that live in the database you already run

pg-boss is the quiet pick we keep recommending. It is MIT licensed, 3,823 stars, on 12.27.0 as of August 3, 2026, and it does one opinionated thing: it runs a job queue entirely inside Postgres using SKIP LOCKED, with no Redis and no broker to babysit. For a small Next.js SaaS that already has a Postgres database and nothing else, that reduction in moving parts is worth more than any feature list.

The taste call: pg-boss wins on operational simplicity. Throughput tops out lower than a Redis-backed queue, and you will feel it if you push hundreds of thousands of jobs an hour, but most SaaS backends never get near that. If your instinct after reading the BullMQ section was "I do not want to run Redis just for a queue," this is your framed piece. It pairs especially well with the kind of database-first admin stack we covered in our open-source admin panel comparison.

Trigger.dev, managed orchestration you can self-host

Trigger.dev logo

Trigger.dev is the most-starred piece in the room at 15,892 stars, Apache-2.0 licensed, with v4.5.9 tagged on July 30, 2026. It is not a library, it is a platform: you write long-running tasks in TypeScript with steps, retries, waits, and scheduling, and you get a real dashboard, logs, and versioned deploys. The v3 and v4 lines made durable, long-running execution the headline, which is exactly what serverless functions are bad at.

The taste call: Trigger.dev gives you the ergonomics of a managed service with an Apache-2.0 escape hatch. Most teams will start on Trigger.dev Cloud because self-hosting the full platform (Postgres, Redis, object storage, and the orchestration services) is a real ops project, not a docker run. But the permissive license means the door is open, and for a comparison of open-source tools that door matters. If your jobs are long, branchy, and you want to watch them run, this is the taste pick.

Hatchet, the open-source orchestration layer

Hatchet logo

Hatchet is the newer frame and the one Redis-avoiders should look at hardest. It is MIT licensed, 7,663 stars, and it is a Postgres-backed distributed task queue with orchestration, a web UI, DAG-style workflows, and durable execution. In other words, it aims at the same problem as Trigger.dev but keeps Postgres as the single stateful dependency and stays under a permissive MIT license.

The taste call: Hatchet is what you pick when you want Trigger.dev's dashboard-and-orchestration experience but you philosophically (or operationally) want everything in Postgres and everything MIT. It is younger, so the ecosystem and edge-case docs are thinner, and self-hosting is still a platform to run rather than a dependency to import. But the trajectory is good, and for an ownership-first team it is the most interesting new arrival on the wall this year.

Inngest, event-driven and serverless-first

Inngest logo

Inngest is the event-driven option, 5,686 stars, and the reason it sits slightly apart in a gallery about open source. The SDK and local dev server are genuinely open and pleasant, and the step-function model (wrap code in steps, get automatic retries and concurrency on any runtime) fits Next.js App Router and serverless deploys cleanly. The nuance is the license: GitHub does not resolve the main repository to a standard OSI license (it reports a non-standard license), and self-hosting the durable engine is possible but is not the paved path the way the cloud product is.

The taste call: Inngest is a strong choice if you are event-driven and cloud-first and you value developer experience over the ability to fully own the runtime. If your hard requirement is a clean, permissive, self-host-anywhere license, read Inngest's terms before you commit, and compare that reading against the Apache-2.0 and MIT pieces above. We are flagging the license honestly, not scoring the product down for it.

How to choose, by how much you want to own

  • You already run Redis and want control: BullMQ.
  • Your only stateful service is Postgres and you want it to stay that way: pg-boss, or Hatchet if you also want a dashboard and orchestration.
  • You want managed-style ergonomics with an open escape hatch: Trigger.dev.
  • You are event-driven, serverless-first, and cloud is fine: Inngest, license read.

The gallery bias is obvious and we will own it: the fewer new vendors and the more permissive the license, the higher it hangs. That is the same lens we bring to the rest of the stack, from open-source internal tools builders to the boilerplates you start from.

The honest caveat

None of these is a decision you make forever. A queue is one of the easier things to swap later, because the surface area (enqueue a job, run a worker) is small. So optimize for the operational cost you will pay every week, not for the throughput number you will hit twice a year. For most small Next.js SaaS teams in 2026, that math points at Postgres-backed simplicity first, and Redis-backed muscle only once you have measured that you need it.

Mara Lindqvist

Written by

Mara Lindqvist

Mara Lindqvist curates the ShipGarden gallery, road-testing open-source and source-available SaaS and AI boilerplates and the infrastructure they run on. She writes about time-to-first-deploy, cost, and vendor lock-in for founders who ship.

Frequently asked questions

What is the best open-source background job library for a Next.js SaaS in 2026?

There is no single best. If you already run Redis, BullMQ (MIT, 9,240 stars on August 4, 2026) is the controllable default. If Postgres is your only stateful service, pg-boss (MIT) keeps jobs in the database with no Redis. If you want an orchestration dashboard you can self-host, choose Trigger.dev (Apache-2.0) or Hatchet (MIT). Facts read from GitHub on August 4, 2026.

Can I run background jobs on Next.js without adding Redis?

Yes. pg-boss and Hatchet both use Postgres as their backing store, so a Next.js SaaS that already runs Postgres can add durable jobs without introducing Redis. BullMQ and Trigger.dev rely on Redis (Trigger.dev also uses Postgres and object storage), so they add more moving parts to self-host.

Is Trigger.dev open source and self-hostable?

Trigger.dev is Apache-2.0 licensed and self-hostable, but it is a full platform (Postgres, Redis, object storage, and orchestration services), so self-hosting is an operations project rather than a single container. Many teams use Trigger.dev Cloud and keep the permissive license as an escape hatch.

Is Inngest fully open source?

The Inngest SDK and local dev server are open and pleasant to use, but as of August 4, 2026 GitHub does not resolve its main repository to a standard OSI license, and self-hosting the durable engine is possible but not the paved path. If a permissive, fully self-hostable license is a hard requirement, read the Inngest terms before committing.

BullMQ vs pg-boss: which should a small team pick?

Pick pg-boss if operational simplicity matters most and your throughput is moderate, since it avoids Redis entirely. Pick BullMQ if you already run Redis or expect very high job volume, since Redis-backed queues sustain higher throughput and BullMQ gives you fine-grained control over concurrency and rate limiting.