Unbreakable
Agents.
Invisible
Infra.
No workers. No queues. No refactoring.
step.run()
step.waitForEvent()
step.score()
The platform

Durable execution, step by step

Write reliable background jobs, workflows and AI agents with automatic retries and step-level observability — no extra infrastructure.

Automatic retries

Every step retries on failure with built-in flow control.

Flow control

Concurrency, throttling and debounce out of the box.

Observability

Trace every run and step in real time.

export const processVideo = inngest.createFunction(
  { id: "process-video" },
  { event: "video/uploaded" },
  async ({ event, step }) => {
    await step.run("transcode", () => transcode(event));
  }
);
Controls

Mono controls, one orange

Start building Book a demo Start free Hover Deploying… Open Source
Search the docs Focused field

Buttons use uppercase Whyte Mono (12/600) at radius 6px, 42px tall: an orange #fb5536 primary, a white outline, and a white solid. One orange is the only accent; chrome, labels and code are all mono.

Typography

Inktrap, Whyte, Circular, mono

Hero display · Whyte Inktrap · solid + outline · UPPERUnbreakable
Hero display outline · Whyte Inktrap · strokeInvisible
Section · Whyte · 32/40 · 400 · -0.32pxDurable execution
Body / UI · CircularXX · 16/24 · 400Reliable background jobs and AI agents.
Button / code · Whyte Mono · 12–16 · UPPER/codestep.run("transcode")
Palette

Warm near-black, one orange

Surfaces
canvas#0c0a09
black#000000
ink-020#020202
surface#1c1c1c
surface-2#212121
Text
heading#ffffff
body#f6f6f6
gray-300#b3b3b3
gray-500#7a7a7a
Accent
orange#fb5536
orange-2#f76246
green#0bdd48
Depth & motion

Grain, particles, flat

4px
6px control
10px
pill chip
flat + 1px hairline
particle field

Radii are a crisp 6px (chips full-pill). Elevation is dark and flat — depth comes from the grainy orange/grey particle field and outlined display type, not grey drop shadows. Motion: subtle ambient particle drift.