# TypeScript SDK v4

> **Info:** Upgrading from v3? Check out the migration guide.

## Introduction

Inngest is an event-driven durable execution platform that lets you write reliable background jobs, scheduled tasks, and multi-step workflows in TypeScript without any additional infrastructure. Simply define functions as code; Inngest handles retries, concurrency, rate limiting, and observability.

The TypeScript SDK v4 delivers a major upgrade to speed and developer experience:

- **Rewritten middleware** — Hooks are more intuitive, less overloaded, and enable new use cases.
- **Better schemas** — Runtime event data validation with Standard Schema support (not just Zod!).
- **Faster by default** — Parallel step optimization and checkpointing are both enabled by default, leading to fewer requests and lower latency.
- **Improved logging** — Structured logging (Pino-style) and cleaner separation of internal vs. app logs.
- **Cleaner API** — Triggers in the options object, lazy init for edge runtimes, and more compile-time safety

## Installing

```shell {{ title: "npm" }}
npm install inngest@beta
```

```shell {{ title: "pnpm" }}
pnpm add inngest@beta
```

```shell {{ title: "yarn" }}
yarn add inngest@beta
```

## Source code

Our TypeScript SDK and its related packages are open source and available on Github: [ inngest/inngest-js](https://github.com/inngest/inngest-js).

## Official libraries

- [inngest](https://www.npmjs.com/package/inngest) - the Inngest SDK
- [@inngest/eslint-plugin](https://www.npmjs.com/package/@inngest/eslint-plugin) - specific ESLint rules for Inngest
- [@inngest/middleware-encryption](https://www.npmjs.com/package/@inngest/middleware-encryption) - middleware providing E2E encryption

## Examples

### Frameworks

- [Astro](https://github.com/inngest/inngest-js/tree/main/examples/framework-astro)
- [Bun.serve()](https://github.com/inngest/inngest-js/tree/main/examples/bun)
- [Fastify](https://github.com/inngest/inngest-js/tree/main/examples/framework-fastify)
- [Koa](https://github.com/inngest/inngest-js/tree/main/examples/framework-koa)
- [NestJS](https://github.com/inngest/inngest-js/tree/main/examples/framework-nestjs)
- [Next.js (app router)](https://github.com/inngest/inngest-js/tree/main/examples/framework-nextjs-app-router)
- [Next.js (pages router)](https://github.com/inngest/inngest-js/tree/main/examples/framework-nextjs-pages-router)
- [Nuxt](https://github.com/inngest/inngest-js/tree/main/examples/framework-nuxt)
- [Remix](https://github.com/inngest/inngest-js/tree/main/examples/framework-remix)
- [SvelteKit](https://github.com/inngest/inngest-js/tree/main/examples/framework-sveltekit)

### Middleware

- [E2E Encryption](https://github.com/inngest/inngest-js/tree/main/examples/middleware-e2e-encryption)

## Community libraries

Explore our collection of community-created libraries, offering unofficial but valuable extensions and integrations to enhance Inngest's functionality with various frameworks and systems.

Want to be added to the list? [Contact us!](https://app.inngest.com/support)

- [nest-inngest](https://github.com/thawankeane/nest-inngest) - strongly typed Inngest module for NestJS projects
- [nuxt-inngest](https://www.npmjs.com/package/nuxt-inngest) - Inngest integration for Nuxt