Configure Inngest in your SaaS application for reliable background task processing.
Inngest is already included in the boilerplate dependencies:
{
"dependencies": {
"inngest": "^3.x.x"
}
}The client is configured in src/lib/inngest/inngest.ts:
import {Inngest} from 'inngest'
import {APP_NAME} from '../constants'
export const inngest = new Inngest({id: APP_NAME})The Inngest API endpoint is set up in src/app/api/inngest/route.ts:
import {serve} from 'inngest/next'
import {helloWorld, sendWelcomeFollowUpEmail} from '@/lib/inngest/functions'
import {inngest} from '@/lib/inngest/inngest'
export const {GET, POST, PUT} = serve({
client: inngest,
functions: [
helloWorld,
sendWelcomeFollowUpEmail,
// Add your functions here
],
})Start your development server:
pnpm devIn a separate terminal, start the Inngest development server:
pnpm dlx inngest-cli@latest devThis starts the Inngest dashboard at http://localhost:8288
Check that Inngest detects your functions:
http://localhost:8288Inngest Dashboard Interface:

src/
├── lib/inngest/
│ ├── inngest.ts # Inngest client configuration
│ ├── events.ts # Event constants and helpers
│ └── functions.ts # Function definitions
└── app/api/inngest/
└── route.ts # API endpoint for Inngest
Events are centralized in src/lib/inngest/events.ts:
export const INNGEST_EVENTS = {
USER_REGISTERED: 'user/registered',
TEST_HELLO_WORLD: 'test/hello.world',
} as const
export type InngestEventName =
(typeof INNGEST_EVENTS)[keyof typeof INNGEST_EVENTS]Helper functions for triggering events:
export const triggerInngestWelcomeFollowUpEmail = async ({
userId,
userName,
userEmail,
language = 'fr',
}: {
userId: string
userName: string
userEmail: string
language?: 'fr' | 'en' | 'es'
}) => {
return await inngest.send({
name: INNGEST_EVENTS.USER_REGISTERED,
data: {
userId,
userName,
userEmail,
language,
},
})
}No additional environment variables are required for local development. Inngest uses your API endpoint for communication.
The Inngest development dashboard provides:
Access at: http://localhost:8288
The development server automatically detects function changes and updates the dashboard without restart.