Build serverless background tasks without any queues, infrastructure, or config.
Inngest allows you to easily offload work from your APIs to increase your app's speed — without changing your project or building complex architectures.
1import { createScheduledFunction } from "inngest";
2
3createFunction(
4 "After signup",
5 "auth/user.created",
6 async ({ event }) => {
7 // This function runs in the background every time
8 // the "auth/user.created" event is received.
9 },
10);
Inngest's SDK allows you to write and deploy background jobs with a single line of code. Here's how it works:
1import { createScheduledFunction } from "inngest";
2
3createFunction(
4 "After signup",
5 "auth/user.created",
6 async ({ event }) => {
7 // Instead of your signup API triggering activation
8 // emails and setting up user accounts, your API
9 // offloads this work into the background by
10 // triggering an event which calls this function.
11 await sendActivationEmail({
12 email: event.user.email,
13 name: event.user.name
14 });
15 await createChurnCampaign({ id: event.user.id });
16 },
17);
Write your background jobs using regular TypeScript or JavaScript, then use our SDK to define which events trigger the job.
It takes a single line of code to specify how an event runs in the background, and a single line of code to provide an API that serves all background functions together.
1import { Inngest } from 'inngest';
2
3// Create a new client for sending events.
4export const client = new Inngest({ name: "Your app name" });
5
6// Send an event to Inngest, which triggers any background
7// function that listens to this event.
8client.send({
9 name: "auth/user.created",
10 data: {
11 plan: "The super awesome new plan",
12 },
13 user: {
14 id: "8f2bc",
15 email: "user@example.com",
16 name: "Super Awesome User",
17 }
18});
Sending events to Inngest automatically triggers background jobs which subscribe to that event — without any queues, databases, or configuration.
This allows you to create single background jobs or fan-out jobs that run in parallel, triggered via a single event.
Events are fully typed, so you can guarantee that the data you send and receive is correct.
“Sooooo much easier than AWS”
BetweenInngest’s platform provides cloud-native, serverless features essential for modern development, allowing you to build complex products without servers, configuration, or complexity.
Functions run and scale automatically based off of incoming events and webhooks, without specifying or managing queues
Build and locally test functions without any extra work, with single commands to invoke and deploy functions
Every function is fully versioned, with test and production environments provided for each account
Run any logic in the background via a single JSON event — without worrying about servers or private APIs
Build and test serverless functions which run on a schedule, without managing infra or crons
Attribute each function directly to the relevant user — whether it's an internal employee or a customer
People use Inngest to reliably run background work, serverless functions, and scheduled jobs across for a variety of use cases — including building out internal tasks for the wider team.
Common examples include webhook management, background jobs, scheduled tasks, and end-to-end automation.
Inngest’s core difference is that it’s event-driven. Send a single JSON event to Inngest and run any number of functions automatically, and we’ll statically type-check the JSON payload then store each event for logging and backtesting. It's way better than old-school RPC.
This is 100% the dev/prod parity that we’re lacking for queue-based systems.
Staff Engineer at Buffer