This guide will show you how to setup Trigger.dev in your existing Next.js project, test an example task, and view the run.
Run the CLI `init` command
/trigger
folder and give you an example task.Run this command in the root of your project to get started:trigger.config.ts
file in the root of your project./trigger
directory./trigger
directory with an example task, /trigger/example.[ts/js]
.Run the CLI `dev` command
dev
command runs a server for your tasks. It watches for changes in your /trigger
directory and communicates with the Trigger.dev platform to register your tasks, perform runs, and send data back and forth.It can also update your @trigger.dev/*
packages to prevent version mismatches and failed deploys. You will always be prompted first.Perform a test run using the dashboard
dev
command spits out various useful URLs. Right now we want to visit the Test page .You should see our Example task in the list , select it. Most tasks have a “payload” which you enter in the JSON editor , but our example task doesn’t need any input.Press the “Run test” button .View your run
TRIGGER_SECRET_KEY
environment variable in your .env.local
file if using the Next.js App router or .env
file if using Pages router. This key is used to authenticate with Trigger.dev, so you can trigger runs from your Next.js app. Visit the API Keys page in the dashboard and select the DEV secret key.
Create a Route Handler
route.ts
file (or route.js
file) in the app/api
directory like this: app/api/hello-world/route.ts
.Add your task
route.ts
file which imports your task along with NextResponse
to handle the API route response:Trigger your task
process.env.MY_ENV_VAR
.
In the sidebar select the “Environment Variables” page, then press the “New environment variable”
button. trigger
directory has changes in it. Follow this guide to set up GitHub Actions.onClick
prop. This is because the function may require specific arguments or context that are not available when the event occurs. By wrapping the function call in an arrow function, you ensure that the handler is called with the correct context and any necessary arguments. For example:
This works: