Introducing the Inngest TypeScript / JavaScript SDK
Inngest SDK Beta

Write functions, send events.

Create and deploy background jobs or scheduled functions right in your existing JavaScript or TypeScript codebase.

Works with:

Next.js's logoVercel's logoNetlify's logoExpress.js's logo
Try the new SDK →Join the mailing list
myGreatFunction.ts
1import { createFunction } from "inngest"
2import { DemoEventTrigger } from "./types"
3
4const myFn = async ({ event }) => {
5  return { message: "success" }
6}
7
8export default createFunction<DemoEventTrigger>(
9  "My Great Function",
10  "demo/event.trigger",
11  myFn
12)
api/someEndpoint.ts
1import { Inngest } from "inngest"
2import { Events } from "../../__generated__/inngest"
3const inngest = new Inngest<Events>("sourceKey123")
4inngest.send({
5  name: "demo/event.name",
6  data: { something: req.body.something }
7})

Simple, yet powerful

inngest/myGreatFunction.ts
1import { createFunction } from "inngest"
2import { DemoEventTrigger } from "./types"
3
4const myFn = async ({ event }) => {
5  return { message: "success" }
6}
7
8export default createFunction<DemoEventTrigger>(
9  "My Great Function",
10  "demo/event.trigger",
11  myFn
12)

Run your code in response to events

Easily define functions that run in response to events. Background jobs, scheduled tasks, webhooks are all made easy with Inngest's SDK.

Learn more →

api/someEndpoint.ts
1import { Inngest } from "inngest"
2import { Events } from "../../__generated__/inngest"
3
4const inngest = new Inngest<Events>("sourceKey123")
5
6inngest.send({
7  name: "demo/event.name",
8  data: { something: req.body.something }
9})

Trigger jobs with events from anywhere

Send events with our SDK to trigger background jobs and move longer running code out of the critical path of an API request.

Read the docs →

inngest/scheduledTask.ts
1import { createScheduledFunction } from "inngest"
2
3const scheduledTask = () => {
4  return { message: "success" }
5}
6
7export default createScheduledFunction(
8  "A scheduled function",
9  "0 9 * * MON", // any cron expression
10  scheduledTask
11)

Schedule jobs easily

Run your code on a schedule using basic cron expressions. Cron jobs made simple with observability & logs.

Learn how →

api/inngest.ts
1import { Inngest } from "inngest"
2import { serve } from "inngest/next"
3import { Events } from "../../__generated__/inngest"
4
5import { myGreatFunction } from "../../myGreatFunction"
6import { scheduledTask } from "../../scheduledTask"
7
8const inngest = new Inngest<Events>({ name: "My App" })
9
10export default serve(inngest, "<SIGNING_KEY>", [
11  myGreatFunction,
12  scheduledTask
13])

Deploy to your existing setup

Inngest can remotely run your background tasks via secure HTTP handler. You keep your existing deployment workflow and we'll call your code where it is.

Get more info →

Deep TypeScript support

Painless type generation

One command generates TS types for your entire ecosystem, based on your actual production data.

🛡️Automatic typesafety

Keep in sync with your production data; strict TS types guard you every step of the way.

🧙Smart autocomplete

Leverage TypeScript inference and easily discover events and their data using autocomplete.
A screencast of the Inngest SDK's TypeScript features
Learn more →

Inngest SDK Roadmap

What we've built and what's up next:

      Create event-driven and scheduled functions
      Send events
      TypeScript support, including generics
      TypeScript: Event Type generation and sync
      Inngest local dev server integration
      Inngest Cloud deploy
      Step Functions
      Step delays, conditional expressions, & event-coordination
      Cloudflare Workers support

Future: Additional platform support (AWS Lambda, Supabase, Deno), additional framework support (Remix, RedwoodJS), testing APIs

Try the Inngest SDK Beta

You can try the SDK today! Dive into our docs to get started

Join our mailing list and we'll email you updates and ways to provide feedback. You can also join our Discord community to share feedback and have a direct line to shaping the future of the SDK!

Read the docsJoin the SDK Beta Mailing List Join our community on Discord