# 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
```

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

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

## Build with v4

Start with the [client setup](/docs-markdown/reference/typescript/v4/client/create) and [function creation](/docs-markdown/reference/typescript/v4/functions/create) references, then use the v4 feature docs that match your application:

- [Checkpointing](/docs-markdown/setup/checkpointing) for low-latency resumptions across durable steps.
- [Realtime](/docs-markdown/features/realtime) for publishing workflow progress to users.
- [Durable Endpoints](/docs-markdown/learn/durable-endpoints) for durable HTTP responses and streaming APIs.
- [Middleware](/docs-markdown/reference/typescript/v4/middleware/lifecycle) for cross-cutting concerns like observability, serialization, encryption, and Sentry.
- [v3 to v4 migration guide](/docs-markdown/reference/typescript/v4/migrations/v3-to-v4) for upgrading existing TypeScript projects.

## 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