Skip to content

Task

Exploring Features of Trigger.dev

As a potential user interested in background job solutions, I explore the features of Trigger.dev, so that I can evaluate if it meets my development needs.

Success definition: Given I am on the Trigger.dev homepage. When I click on the 'How it works' link and then the 'Features' link followed by the 'All features' link. Then I should be navigated to the Product page, where I can see the list of detailed features offered by Trigger.dev.

Trajectory

Step 1:

Url (before/after):

https://trigger.dev/

https://trigger.dev/#how-it-works

Content (before/after):

RootWebArea Trigger.dev | Open source background jobs with no timeouts., focused, url='https://trigger.dev/'
    banner
        navigation Main
            [25] link Go to homepage, center=(327,30), url='https://trigger.dev/'
                image Trigger.dev logo
Show more
            list
                listitem
                    [32] link How it works, center=(479,30), url='https://trigger.dev/#how-it-works'
                listitem
                    [34] link Features, center=(586,29), url='https://trigger.dev/product'
                        button Features, expanded=False
                listitem
                    [80] link Changelog, center=(686,29), url='https://trigger.dev/changelog'
                        button Changelog, expanded=False
                listitem
                    [113] link Blog, center=(771,29), url='https://trigger.dev/blog'
                        button Blog, expanded=False
                listitem
                    [146] link Docs, center=(835,29), url='https://trigger.dev/docs'
                        button Docs, expanded=False
                listitem
                    [255] link Pricing, center=(908,30), url='https://trigger.dev/pricing'
            list
                listitem
                    [259] link Trigger.dev Discord server, center=(1320,30), url='https://trigger.dev/discord'
                        image
                listitem
                    [262] link Trigger.dev GitHub repo, center=(1408,30), inner_text=Star 9.8k, url='https://github.com/triggerdotdev/trigger.dev'
                        image
                        StaticText Star
                        StaticText 9.8k
                listitem
                    [267] link Login, center=(1504,30), url='https://cloud.trigger.dev/'
                listitem
                    [269] link Get started, center=(1607,28), url='https://cloud.trigger.dev/'
    main
        heading The open source background jobs platform
        paragraph
            StaticText Write workflows in normal async code and we’ll handle the rest, from queues to elastic scaling. No timeouts, retries, observability, and zero infrastructure to manage.
        [289] link Get started now, center=(466,580), url='https://cloud.trigger.dev/'
        image Trigger.dev dashboard, url='https://trigger.dev/images/hero-image-dashboard.png'
        tablist, orientation='horizontal'
            [313] tab AI tasks, center=(407,757), selected=True, type=button
                Canvas
            [317] tab Video processing, center=(569,757), selected=False, type=button
                Canvas
            [321] tab Cron, center=(718,757), selected=False, type=button
                Canvas
            [325] tab Waits, center=(820,757), selected=False, type=button
                Canvas
            [329] tab Workflows, center=(945,757), selected=False, type=button
                Canvas
            [333] tab Concurrency, center=(1098,757), selected=False, type=button
                Canvas
            [337] tab Retries, center=(1238,757), selected=False, type=button
                Canvas
            [341] tab PDF to images, center=(1386,757), selected=False, type=button
                Canvas
            [345] tab Semantic search, center=(1572,757), selected=False, type=button
                Canvas
            tab AI Agent, selected=False
                Canvas
            tab Email campaign, selected=False
                Canvas
        [306] div, center=(227,757)
        tabpanel
            StaticText // Generate an image using OpenAI Dall-E 3
            StaticText export
            StaticText const
            StaticText generateContent
            StaticText =
            StaticText task
            StaticText (
            StaticText {
            StaticText id
            StaticText :
            StaticText "generate-content"
            StaticText ,
            StaticText retry
            StaticText :
            StaticText {
            StaticText maxAttempts
            StaticText :
            StaticText 3
            StaticText ,
            StaticText }
            StaticText ,
            StaticText run
            StaticText :
            StaticText async
            StaticText (
            StaticText {
            StaticText theme
            StaticText ,
            StaticText description
            StaticText }
            StaticText :
            StaticText Payload
            StaticText )
            StaticText =>
            StaticText {
            StaticText const
            StaticText textResult
            StaticText =
            StaticText await
            StaticText openai
            StaticText .
            StaticText chat
            StaticText .
            StaticText completions
            StaticText .
            StaticText create
            StaticText (
            StaticText {
            StaticText model
            StaticText :
            StaticText "gpt-4o"
            StaticText ,
            StaticText messages
            StaticText :
            StaticText generateTextPrompt
            StaticText (
            StaticText theme
            StaticText ,
            StaticText description
            StaticText )
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            StaticText if
            StaticText (
            StaticText !
            StaticText textResult
            StaticText .
            StaticText choices
            StaticText [
            StaticText 0
            StaticText ]
            StaticText )
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "No content, retrying…"
            StaticText )
            StaticText ;
            StaticText }
            StaticText const
            StaticText imageResult
            StaticText =
            StaticText await
            StaticText openai
            StaticText .
            StaticText images
            StaticText .
            StaticText generate
            StaticText (
            StaticText {
            StaticText model
            StaticText :
            StaticText "dall-e-3"
            StaticText ,
            StaticText prompt
            StaticText :
            StaticText generateImagePrompt
            StaticText (
            StaticText theme
            StaticText ,
            StaticText description
            StaticText )
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            StaticText if
            StaticText (
            StaticText !
            StaticText imageResult
            StaticText .
            StaticText data
            StaticText [
            StaticText 0
            StaticText ]
            StaticText )
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "No image, retrying…"
            StaticText )
            StaticText ;
            StaticText }
            StaticText return
            StaticText {
            StaticText text
            StaticText :
            StaticText textResult
            StaticText .
            StaticText choices
            StaticText [
            StaticText 0
            StaticText ]
            StaticText ,
            StaticText image
            StaticText :
            StaticText imageResult
            StaticText .
            StaticText data
            StaticText [
            StaticText 0
            StaticText ]
            StaticText .
            StaticText url
            StaticText ,
            StaticText }
            StaticText ;
            StaticText }
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            paragraph
                StaticText Reliably call AI APIs with no timeouts, automatic retrying, and tracing. Use existing Node.js SDKs and code from your repo.
        [359] svg, center=(1690,757)
        heading Trusted by developers at companies all over the world
        image
        image
        image
        image
        image
        image
        heading How Trigger.dev works
        button Play and pause video
            paragraph
        button Restart video
            image
            paragraph
                StaticText Replay
        button Toggle fullscreen
            paragraph
                StaticText Full screen
        heading Deploy and scale to any size
        Canvas
        Canvas
        heading No timeouts
        paragraph
            StaticText Write simple, reliable code and never hit a timeout.
        heading Pay for what you use
        paragraph
            StaticText Only pay when your code is actually executing.
        Canvas
        Canvas
        heading No servers to manage
        paragraph
            StaticText We deploy your tasks and handle scaling for you.
        heading Find and fix bugs fast
        heading Alerts for errors
        paragraph
            StaticText Get notified via email, Slack or webhooks when your tasks or deployments fail.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading Advanced filtering
        paragraph
            StaticText Find runs fast using advanced filtering options, then apply bulk actions to multiple tasks at once.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading Versioning
        paragraph
            StaticText Each deploy is an atomic version ensuring started tasks are not affected by code changes.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading All the tools you need to ship
        link View all features, url='https://trigger.dev/product'
        image
        heading Development
        link Cron schedules, url='https://trigger.dev/product/scheduled-tasks'
            image
            heading Cron schedules
        link Realtime run status updates, url='https://trigger.dev/docs/realtime/overview#realtime-overview'
            image
            heading Realtime run status updates
            image
            image
        link Write tasks in async code, url='https://trigger.dev/docs/guides/introduction'
            image
            heading Write tasks in async code
            image
            image
        link React hooks, url='https://trigger.dev/docs/frontend/react-hooks#react-hooks'
            image
            heading React hooks
            image
            image
        link Max duration, url='https://trigger.dev/docs/runs/max-duration#max-duration'
            image
            heading Max duration
            image
            image
        link Batch triggering, url='https://trigger.dev/docs/triggering#tasks-batchtrigger'
            image
            heading Batch triggering
            image
            image
        link Runtime schema payloads, url='https://trigger.dev/docs/tasks/schemaTask#schematask'
            image
            heading Runtime schema payloads
            image
            image
        link Waits, url='https://trigger.dev/docs/wait'
            image
            heading Waits
            image
            image
        image
        heading Production
        link Concurrency controls, url='https://trigger.dev/product/concurrency-and-queues'
            image
            heading Concurrency controls
        link Multiple environments, url='https://trigger.dev/docs/how-it-works#dev-mode'
            image
            heading Multiple environments
            image
            image
        link No servers to manage, url='https://trigger.dev/docs/how-it-works#trigger-dev-architecture'
            image
            heading No servers to manage
            image
            image
        link Automatic retries, url='https://trigger.dev/docs/errors-retrying'
            image
            heading Automatic retries
            image
            image
        link Build extensions, url='https://trigger.dev/docs/config/extensions/overview#build-extensions'
            image
            heading Build extensions
            image
            image
        link Checkpointing, url='https://trigger.dev/docs/how-it-works#the-checkpoint-resume-system'
            image
            heading Checkpointing
            image
            image
        link Versioning, url='https://trigger.dev/docs/versioning'
            image
            heading Versioning
            image
            image
        image
        heading Observability
        link Live dashboard, url='https://trigger.dev/product/observability-and-monitoring'
            image
            heading Live dashboard
        link Easily test tasks, url='https://trigger.dev/docs/run-tests#run-tests'
            image
            heading Easily test tasks
            image
            image
        link Tags, url='https://trigger.dev/docs/tags#tags'
            image
            heading Tags
            image
            image
        link Advanced run filters, url='https://trigger.dev/product/observability-and-monitoring#advanced-filters'
            image
            heading Advanced run filters
        link Run metadata, url='https://trigger.dev/docs/runs/metadata#run-metadata'
            heading Run metadata
            image
            image
        link Custom alerts, url='https://trigger.dev/product/observability-and-monitoring#alerts'
            image
            heading Custom alerts
        heading Reliable by default
        link Docs, url='https://trigger.dev/docs/v3/errors-retrying'
            image
            image
        tablist, orientation='horizontal'
            tab Task retrying Configure automatic retrying for tasks., selected=True
                heading Task retrying
                paragraph
            tab handleError() Conditional retrying based on the error and run., selected=False
                heading handleError()
                paragraph
            tab retry.onThrow() Fine-grained retrying inside tasks., selected=False
                heading retry.onThrow()
                paragraph
            tab retry.fetch() Automatically retry requests based on the response., selected=False
                heading retry.fetch()
                paragraph
            tab trigger.config Configure default retrying in your config file., selected=False
                heading trigger.config
                paragraph
        tabpanel Task retrying Configure automatic retrying for tasks.
            StaticText import
            StaticText {
            StaticText task
            StaticText }
            StaticText from
            StaticText "@trigger.dev/sdk/v3"
            StaticText ;
            StaticText export
            StaticText const
            StaticText simpleTask
            StaticText =
            StaticText task
            StaticText (
            StaticText {
            StaticText id
            StaticText :
            StaticText "simple-task"
            StaticText ,
            StaticText retry
            StaticText :
            StaticText {
            StaticText maxAttempts
            StaticText :
            StaticText 3
            StaticText ,
            StaticText minTimeoutInMs
            StaticText :
            StaticText 1000
            StaticText ,
            StaticText maxTimeoutInMs
            StaticText :
            StaticText 5000
            StaticText ,
            StaticText factor
            StaticText :
            StaticText 2
            StaticText ,
            StaticText randomize
            StaticText :
            StaticText true
            StaticText ,
            StaticText }
            StaticText ,
            StaticText run
            StaticText :
            StaticText async
            StaticText (
            StaticText payload
            StaticText ,
            StaticText {
            StaticText ctx
            StaticText }
            StaticText )
            StaticText =>
            StaticText {
            StaticText logger
            StaticText .
            StaticText log
            StaticText (
            StaticText `
            StaticText Attempt
            StaticText ${
            StaticText ctx
            StaticText .
            StaticText attempt
            StaticText .
            StaticText number
            StaticText }
            StaticText `
            StaticText )
            StaticText ;
            StaticText try
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "This is an error."
            StaticText )
            StaticText ;
            StaticText }
            StaticText catch
            StaticText (
            StaticText error
            StaticText )
            StaticText {
            StaticText // The error was caught, so no retry
            StaticText }
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "This will cause a retry."
            StaticText )
            StaticText ;
            StaticText }
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
        heading Works with your existing tech stack…
        image Vercel logo, url='https://trigger.dev/tech-stack/vercel.png'
        image AWS logo, url='https://trigger.dev/tech-stack/aws.png'
        image Remix logo, url='https://trigger.dev/tech-stack/remix.png'
        image Nuxt logo, url='https://trigger.dev/tech-stack/nuxt.png'
        image SvelteKit logo, url='https://trigger.dev/tech-stack/sveltekit.png'
        image Fastify logo, url='https://trigger.dev/tech-stack/fastify.png'
        image RedwoodJS logo, url='https://trigger.dev/tech-stack/redwoodjs.png'
        image Cloudflare logo, url='https://trigger.dev/tech-stack/cloudflare.png'
        image ExpressJS logo, url='https://trigger.dev/tech-stack/expressjs.png'
        image Astro logo, url='https://trigger.dev/tech-stack/astro.png'
        image Google Cloud logo, url='https://trigger.dev/tech-stack/google-cloud.png'
        image Azure logo, url='https://trigger.dev/tech-stack/azure.png'
        image Netlify logo, url='https://trigger.dev/tech-stack/netlify.png'
        image NextJS logo, url='https://trigger.dev/tech-stack/nextjs.png'
        image Heart 1, url='https://trigger.dev/build/_assets/1-OXKMZAUJ.png'
        image Heart 2, url='https://trigger.dev/build/_assets/2-JH3Y3YJF.png'
        image Heart 3, url='https://trigger.dev/build/_assets/3-Y24XLZQ2.png'
        image Heart 4, url='https://trigger.dev/build/_assets/4-I5XLMUM3.png'
        image Heart 5, url='https://trigger.dev/build/_assets/5-H2LZLREV.png'
        heading We love open source. Trigger.dev is Apache 2.0 licensed so you can view the source code, contribute and self-host.
        link 9,900+ stars on GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            image
            heading 9,900+
            paragraph
        link Apache 2.0 open source license, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            image
            image
            heading Apache 2.0
            paragraph
        link 2,800+ Discord members, url='https://discord.gg/nkqV9xBYWy'
            image
            image
            heading 2,800+
            paragraph
        heading Loved by developers
        link Join our community, url='https://discord.gg/nkqV9xBYWy'
            image
            image
            image
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is redefining background jobs for modern developers.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/e82deee8-b8ec-4092-3980-b268688d1900/public'
                paragraph
                    StaticText Paul Copplestone
                paragraph
                    StaticText Supabase
                link Supabase logo, url='https://supabase.com/'
                    image Supabase logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/bfd6d823-7027-4c8b-0117-ef4085b76200/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev was the missing piece in our journey to go fully serverless. It enables us to focus entirely on building our product without worrying about the complexities of background jobs. The best part? We’re continuously adding more jobs as we scale!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/d60cc0d1-a132-420a-b7fa-bdb67267f800/public'
                paragraph
                    StaticText Pontus Abrahamsson
                paragraph
                    StaticText Midday
                link Midday logo, url='https://midday.ai/'
                    image Midday logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9c0e5ff1-b718-4b67-8e7c-4a45f4697f00/public'
        figure
            blockquote
                paragraph
                    StaticText We have critical business functionalities that need to be reliable and replayable in the event of a failure.
                    StaticText Trigger.dev helps us deliver messages over WhatsApp, run thousands of jobs with custom LLM workflows, and execute ETL processes to sync our data across multiple databases without breaking a sweat!
            Figcaption
                image, url='https://trigger.dev/testimonials/drpcrd/patryk-maron.png'
                paragraph
                    StaticText Patryk Maron
                paragraph
                    StaticText DRPCRD
                link DRPCRD logo, url='https://drpcrd.com/'
                    image DRPCRD logo, url='https://trigger.dev/testimonials/drpcrd/drpcrd.png'
        figure
            blockquote
                paragraph
                    StaticText The first time I used Trigger.dev, I had an a-ha moment, I no longer needed to set up everything with ECS or Lambda. What also stands out is the exceptional support, unlike any I've seen in the web community.
            Figcaption
                image, url='https://trigger.dev/testimonials/ps-bridal/martin-ruzicka.png'
                paragraph
                    StaticText Martin Ruzicka
                paragraph
                    StaticText P.S. Bridal
                link P.S. Bridal logo, url='https://psbridal.co.uk/'
                    image P.S. Bridal logo, url='https://trigger.dev/testimonials/ps-bridal/ps-bridal.png'
        figure
            blockquote
                paragraph
                    StaticText We’ve been looking for a product like Trigger.dev for a long time - automation that's simple and dev-focused.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/4e3d1187-c27b-4bdc-feac-d2e5297e9a00/public'
                paragraph
                    StaticText Han Wang
                paragraph
                    StaticText Mintlify
                link Mintlify logo, url='https://mintlify.com/'
                    image Mintlify logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/1a068830-bc93-451c-b5c2-f76b24e42000/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is a breath of fresh air in a world of 20 second lambda timeouts. Trigger has world-class DX, support, and handles my long-running jobs with ease.
            Figcaption
                image, url='https://trigger.dev/testimonials/propfeeds/ian-janicki.png'
                paragraph
                    StaticText Ian Janicki
                paragraph
                    StaticText PropFeeds
                link PropFeeds logo, url='https://propfeeds.com/'
                    image PropFeeds logo, url='https://trigger.dev/testimonials/propfeeds/propfeeds.png'
        figure
            blockquote
                paragraph
                    StaticText I’m in love with Trigger.dev – it’s so much better than the old bull.js + heroku + redis setup that I used to use. You’ve knocked it out of the park with this tool!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/6738d30f-ccd5-4342-8764-a2194fc0d900/public'
                paragraph
                    StaticText Kushal Byatnal
                paragraph
                    StaticText Extend
                link Extend logo, url='https://www.extend.app/'
                    image Extend logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/0db95e34-61a0-47ff-879d-7698f3084900/public'
        figure
            blockquote
                paragraph
                    StaticText We found software that's open-source friendly called MuPDF which runs in Node.js environments. Combined with using Trigger's tasks and runs, it solved our problem instantly. We are now easily processing around 6,000 documents per month anywhere from one page to hundreds of pages.
            Figcaption
                image, url='https://trigger.dev/customers/papermark/marc-seitz.png'
                paragraph
                    StaticText Marc Seitz
                paragraph
                    StaticText Papermark
                link Papermark logo, url='https://papermark.io/'
                    image Papermark logo, url='https://trigger.dev/customers/papermark/papermark-logo.png'
        figure
            blockquote
                paragraph
                    StaticText We're using Trigger for our billing, background jobs and deployment pipeline without worrying about operations or infrastructure. It just works.
            Figcaption
                image, url='https://trigger.dev/testimonials/unkey/andreas-thomas-chronark.png'
                paragraph
                    StaticText Andreas Thomas
                paragraph
                    StaticText Unkey
                link Unkey logo, url='https://www.unkey.com/'
                    image Unkey logo, url='https://trigger.dev/testimonials/unkey/unkey.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is undoubtedly one of my most cherished services. Throughout my two-decade career, it’s rare to encounter a product or service that truly resonates and makes a significant impact. It just clicks - an absolute game-changer for us. The support is beyond exceptional, and they genuinely care about the product and their users. I wholeheartedly recommend Trigger!
            Figcaption
                image, url='https://trigger.dev/testimonials/midtown/aaron-spurlock.png'
                paragraph
                    StaticText Aaron J. Spurlock
                paragraph
                    StaticText Midtown HI
                link Midtown HI logo, url='https://midtownhomeimprovements.com/'
                    image Midtown HI logo, url='https://trigger.dev/testimonials/midtown/midtown-logo.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger is a central part of our architecture. It’s allowed us to build a resilient system to orchestrates data across multiple systems. We love its observability, replayability, and how easily it slots into our existing codebase. It allows us to refine over time how to set the boundaries between async tasks and synchronous business logic.
            Figcaption
                image, url='https://trigger.dev/testimonials/numi/agree-ahmed.png'
                paragraph
                    StaticText Agree Ahmed
                paragraph
                    StaticText NUMI
                link NUMI logo, url='https://numi.tech/'
                    image NUMI logo, url='https://trigger.dev/testimonials/numi/numi.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev has become my go-to tool for new projects. I no longer need an additional server and can forget about horizontal scaling!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/f577a1b5-e9bc-46ae-af2e-517c8ebef700/public'
                paragraph
                    StaticText Nevo David
                paragraph
                    StaticText Novu
                link Novu logo, url='https://novu.co/'
                    image Novu logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/c89f7bbe-5b66-4b3d-be59-02bcc3a4e800/public'
        figure
            blockquote
                paragraph
                    StaticText For AI powered products, Trigger.dev is my clear go-to tool for building robust serverless pipelines stitching together various LLM calls.
            Figcaption
                image, url='https://trigger.dev/testimonials/blee/evan-sandler.png'
                paragraph
                    StaticText Evan Sandler
                paragraph
                    StaticText Blee
                link Blee logo, url='https://www.blee.com/'
                    image Blee logo, url='https://trigger.dev/testimonials/blee/blee-icon.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger is packaging end-to-end cron, queues and webhooks platform in a slick interface. Integration was quick and we love the support ❤️
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/521fe3ce-20f6-4f9b-d8de-b1c3b4724100/public'
                paragraph
                    StaticText Aseem Gupta
                paragraph
                    StaticText SuperKalam
                link SuperKalam logo, url='https://superkalam.com/'
                    image SuperKalam logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/cf46d1a3-604d-4eef-2e18-384b767a6600/public'
        figure
            blockquote
                paragraph
                    StaticText Using Trigger.dev for our Slack jobs saved us loads of time! It was much easier to set up than a no-code tool.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9c9e9c2e-5ff1-4227-f0d3-514aa2e49300/public'
                paragraph
                    StaticText Vlad Matsiiako
                paragraph
                    StaticText Infisical
                link Infisical logo, url='https://infisical.com/'
                    image Infisical logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/c01ec071-f909-4eed-2f0a-6db7aa885c00/public'
        figure
            blockquote
                paragraph
                    StaticText We decided to use Trigger.dev over Inngest or setting up our own dedicated solution. We had also looked into UI-based solutions like Zapier and n8n, but they become complex, really slow, expensive and time-consuming to manage for large automations. Trigger.dev made the most overall sense for us when taking dev-speed, cost, scalability and being future-proof into account.
            Figcaption
                image, url='https://trigger.dev/testimonials/heartspace-ai/sohrab-fadai.png'
                paragraph
                    StaticText Sohrab Fadai
                paragraph
                    StaticText Heartspace AI
                link Heartspace AI logo, url='https://heartspace.ai/'
                    image Heartspace AI logo, url='https://trigger.dev/testimonials/heartspace-ai/heartspace-ai.png'
        figure
            blockquote
                paragraph
                    StaticText We needed a sophisticated event engine: chaining LLM queries, orchestrating responses, async tasks, persistent state (without long lived servers), complex concurrency, and variable compute power.
                    StaticText Trigger’s managed infra and intuitive SDK allowed us to migrate our entire events engine in a day (with incredible support from the team).
            Figcaption
                image, url='https://trigger.dev/testimonials/turnout-labs/michael-parker.png'
                paragraph
                    StaticText Michael Parker
                paragraph
                    StaticText Turnout Labs
                link Turnout Labs logo, url='https://www.turnoutlabs.ai/'
                    image Turnout Labs logo, url='https://trigger.dev/testimonials/turnout-labs/turnout-labs.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is a great way to automate email campaigns with Resend.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3aca9c05-4563-4924-61df-867ec8434200/public'
                paragraph
                    StaticText Zeno Rocha
                paragraph
                    StaticText Resend
                link Resend logo, url='https://resend.com/'
                    image Resend logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/a7941fc0-bfe2-4067-9449-9c593cf54c00/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev helps us process bounties & tips on Algora without having to duct-tape queues & crons. With standardized timeouts, retries & logging we get full resilience & observability!
            Figcaption
                image, url='https://trigger.dev/testimonials/algora/zafer-cesur.png'
                paragraph
                    StaticText Zaf Cesur
                paragraph
                    StaticText Algora
                link Algora logo, url='https://algora.io/'
                    image Algora logo, url='https://trigger.dev/testimonials/algora/algora.png'
        figure
            blockquote
                paragraph
                    StaticText I really enjoyed using Trigger.dev to create jobs through code. I found the API integrations and scheduling features super useful.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/36535ea9-56b4-42e3-4e45-ef08d293dd00/public'
                paragraph
                    StaticText Adam Shiervani
                paragraph
                    StaticText BuildJet
                link BuildJet logo, url='https://buildjet.com/'
                    image BuildJet logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/06b5fdf7-f7be-424c-a4df-dfa0e3d93100/public'
        figure
            blockquote
                paragraph
                    StaticText We love Trigger.dev and it’s had a big impact in dev iteration velocity already.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3e6a3e0f-e4c9-41e9-3881-ffe4cfc50400/public'
                paragraph
                    StaticText André Neves
                paragraph
                    StaticText ZBD
                link ZBD logo, url='https://zbd.gg/'
                    image ZBD logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9bfbbd56-ec03-43ef-663a-15595ae7ab00/public'
        button Read more...
        heading We're backed by the world's best investors, founders and operators
        image Y Combinator, url='https://trigger.dev/build/_assets/yc-logo-XZXGTI4H.png'
        image Supabase, url='https://trigger.dev/build/_assets/supabase-logo-M3YU7ZPR.png'
        image PagerDuty, url='https://trigger.dev/build/_assets/pagerduty-logo-KQPQK6G5.png'
        image Dropbox, url='https://trigger.dev/build/_assets/dropbox-logo-QA6HV7QX.png'
        image Raycast, url='https://trigger.dev/build/_assets/raycast-logo-LZWKA7SA.png'
        image Instabug, url='https://trigger.dev/build/_assets/instabug-logo-3P2FNFZ5.png'
        image Atlassian, url='https://trigger.dev/build/_assets/atlassian-logo-EMV6JCYW.png'
        image Amazon Web Services, url='https://trigger.dev/build/_assets/aws-logo-padding-ZYYRMKKD.png'
        heading Ready to start building?
        paragraph
            StaticText Build and deploy your first task in 3 mins with no timeouts and no infrastructure to manage.
        link Get started for free, url='https://cloud.trigger.dev/'
        Canvas
        heading Simple pricing
        paragraph
            StaticText Only pay for what you use and scale with your needs.
        link Explore pricing, url='https://trigger.dev/pricing'
        Canvas
        heading Self-host
        paragraph
            StaticText Trigger.dev is open source and self-hostable.
        link Self-hosting docs, url='https://trigger.dev/docs/v3/open-source-self-hosting'
    contentinfo
        link Trigger.dev logo, url='https://trigger.dev/#top'
            image Trigger.dev logo
        link Discord link, url='https://trigger.dev/discord'
            image
        link GitHub link, url='https://github.com/triggerdotdev/trigger.dev'
            image GitHub
        link X (Twitter) link, url='https://twitter.com/triggerdotdev'
            image X
        link LinkedIn link, url='https://www.linkedin.com/company/triggerdotdev'
            image
        heading Docs
        link Introduction, url='https://trigger.dev/docs/introduction'
            paragraph
        link Quick start guide, url='https://trigger.dev/docs/quick-start'
            paragraph
        link Guides & examples, url='https://trigger.dev/docs/guides/introduction'
            paragraph
                StaticText Examples
        link Creating a task, url='https://trigger.dev/docs/writing-tasks-introduction'
            paragraph
        link Triggeing a task, url='https://trigger.dev/docs/triggering'
            paragraph
                StaticText Triggering a task
        link Self hosting, url='https://trigger.dev/docs/open-source-self-hosting'
            paragraph
        heading Developers
        link Docs, url='https://trigger.dev/docs'
            paragraph
        link Changelog, url='https://trigger.dev/changelog'
            paragraph
        link Contributing, url='https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md'
            paragraph
        link Open source, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            paragraph
        link GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            paragraph
        heading Product
        link Pricing, url='https://trigger.dev/pricing'
            paragraph
        link How it works, url='https://trigger.dev/#how-it-works'
            paragraph
        link Product, url='https://trigger.dev/product'
            paragraph
                StaticText Features
        link Roadmap, url='https://feedback.trigger.dev/roadmap'
            paragraph
        link FAQs, url='https://trigger.dev/pricing#faqs'
            paragraph
        link Uptime status, url='https://status.trigger.dev/'
            paragraph
        heading Company
        link Blog, url='https://trigger.dev/blog'
            paragraph
        link Email, url='https://trigger.dev/contact'
            paragraph
                StaticText Contact
        link Blog, url='https://trigger.dev/jobs'
            paragraph
                StaticText Careers
        link Privacy policy, url='https://trigger.dev/legal/privacy'
            paragraph
        link Terms and conditions, url='https://trigger.dev/legal'
            paragraph
        link OSS friends, url='https://trigger.dev/oss-friends'
            paragraph
        Iframe Uptime status
            RootWebArea, url='https://status.trigger.dev/badge?theme=dark'
                [a4] link All services are online, center=(457,9174), url='https://status.trigger.dev/'
                    image
        paragraph
            StaticText ©
            StaticText 2025
            StaticText Trigger.dev
    StaticText ,
    paragraph
        StaticText We only collect analytics cookies so we can improve your experience.
    [2023] link Privacy policy, center=(84,1037), url='https://trigger.dev/legal/privacy'
    [2027] button Opt-out, center=(209,1037), type=button
    [2030] button Accept, center=(283,1037), type=button
RootWebArea Trigger.dev | Open source background jobs with no timeouts., focused, url='https://trigger.dev/#how-it-works'
    banner
        navigation Main
            [25] link Go to homepage, center=(327,1658), url='https://trigger.dev/'
                image Trigger.dev logo
Show more
            list
                listitem
                    [32] link How it works, center=(479,1658), focused, url='https://trigger.dev/#how-it-works'
                listitem
                    [34] link Features, center=(586,1657), url='https://trigger.dev/product'
                        button Features, expanded=False
                listitem
                    [80] link Changelog, center=(686,1657), url='https://trigger.dev/changelog'
                        button Changelog, expanded=False
                listitem
                    [113] link Blog, center=(771,1657), url='https://trigger.dev/blog'
                        button Blog, expanded=False
                listitem
                    [146] link Docs, center=(835,1657), url='https://trigger.dev/docs'
                        button Docs, expanded=False
                listitem
                    [255] link Pricing, center=(908,1658), url='https://trigger.dev/pricing'
            list
                listitem
                    [259] link Trigger.dev Discord server, center=(1320,1658), url='https://trigger.dev/discord'
                        image
                listitem
                    [262] link Trigger.dev GitHub repo, center=(1408,1658), inner_text=Star 9.8k, url='https://github.com/triggerdotdev/trigger.dev'
                        image
                        StaticText Star
                        StaticText 9.8k
                listitem
                    [267] link Login, center=(1504,1658), url='https://cloud.trigger.dev/'
                listitem
                    [269] link Get started, center=(1607,1656), url='https://cloud.trigger.dev/'
    main
        heading The open source background jobs platform
        paragraph
            StaticText Write workflows in normal async code and we’ll handle the rest, from queues to elastic scaling. No timeouts, retries, observability, and zero infrastructure to manage.
        link Get started now, url='https://cloud.trigger.dev/'
        image Trigger.dev dashboard, url='https://trigger.dev/images/hero-image-dashboard.png'
        tablist, orientation='horizontal'
            tab AI tasks, selected=True
                Canvas
            tab Video processing, selected=False
                Canvas
            tab Cron, selected=False
                Canvas
            tab Waits, selected=False
                Canvas
            tab Workflows, selected=False
                Canvas
            tab Concurrency, selected=False
                Canvas
            tab Retries, selected=False
                Canvas
            tab PDF to images, selected=False
                Canvas
            tab Semantic search, selected=False
                Canvas
            tab AI Agent, selected=False
                Canvas
            tab Email campaign, selected=False
                Canvas
        tabpanel
            StaticText // Generate an image using OpenAI Dall-E 3
            StaticText export
            StaticText const
            StaticText generateContent
            StaticText =
            StaticText task
            StaticText (
            StaticText {
            StaticText id
            StaticText :
            StaticText "generate-content"
            StaticText ,
            StaticText retry
            StaticText :
            StaticText {
            StaticText maxAttempts
            StaticText :
            StaticText 3
            StaticText ,
            StaticText }
            StaticText ,
            StaticText run
            StaticText :
            StaticText async
            StaticText (
            StaticText {
            StaticText theme
            StaticText ,
            StaticText description
            StaticText }
            StaticText :
            StaticText Payload
            StaticText )
            StaticText =>
            StaticText {
            StaticText const
            StaticText textResult
            StaticText =
            StaticText await
            StaticText openai
            StaticText .
            StaticText chat
            StaticText .
            StaticText completions
            StaticText .
            StaticText create
            StaticText (
            StaticText {
            StaticText model
            StaticText :
            StaticText "gpt-4o"
            StaticText ,
            StaticText messages
            StaticText :
            StaticText generateTextPrompt
            StaticText (
            StaticText theme
            StaticText ,
            StaticText description
            StaticText )
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            StaticText if
            StaticText (
            StaticText !
            StaticText textResult
            StaticText .
            StaticText choices
            StaticText [
            StaticText 0
            StaticText ]
            StaticText )
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "No content, retrying…"
            StaticText )
            StaticText ;
            StaticText }
            StaticText const
            StaticText imageResult
            StaticText =
            StaticText await
            StaticText openai
            StaticText .
            StaticText images
            StaticText .
            StaticText generate
            StaticText (
            StaticText {
            StaticText model
            StaticText :
            StaticText "dall-e-3"
            StaticText ,
            StaticText prompt
            StaticText :
            StaticText generateImagePrompt
            StaticText (
            StaticText theme
            StaticText ,
            StaticText description
            StaticText )
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            StaticText if
            StaticText (
            StaticText !
            StaticText imageResult
            StaticText .
            StaticText data
            StaticText [
            StaticText 0
            StaticText ]
            StaticText )
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "No image, retrying…"
            StaticText )
            StaticText ;
            StaticText }
            StaticText return
            StaticText {
            StaticText text
            StaticText :
            StaticText textResult
            StaticText .
            StaticText choices
            StaticText [
            StaticText 0
            StaticText ]
            StaticText ,
            StaticText image
            StaticText :
            StaticText imageResult
            StaticText .
            StaticText data
            StaticText [
            StaticText 0
            StaticText ]
            StaticText .
            StaticText url
            StaticText ,
            StaticText }
            StaticText ;
            StaticText }
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            paragraph
                StaticText Reliably call AI APIs with no timeouts, automatic retrying, and tracing. Use existing Node.js SDKs and code from your repo.
        heading Trusted by developers at companies all over the world
        image
        [752] video, center=(960,2100)
        image
        image
        image
        image
        image
        heading How Trigger.dev works
        [740] button Play and pause video, center=(1331,1730), inner_text=Play
            paragraph
        [743] button Restart video, center=(1407,1730), inner_text=Replay
            image
            paragraph
                StaticText Replay
        [746] button Toggle fullscreen, center=(1507,1730), inner_text=Full screen
            paragraph
                StaticText Full screen
        heading Deploy and scale to any size
        Canvas
        Canvas
        heading No timeouts
        paragraph
            StaticText Write simple, reliable code and never hit a timeout.
        heading Pay for what you use
        paragraph
            StaticText Only pay when your code is actually executing.
        Canvas
        Canvas
        heading No servers to manage
        paragraph
            StaticText We deploy your tasks and handle scaling for you.
        heading Find and fix bugs fast
        heading Alerts for errors
        paragraph
            StaticText Get notified via email, Slack or webhooks when your tasks or deployments fail.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading Advanced filtering
        paragraph
            StaticText Find runs fast using advanced filtering options, then apply bulk actions to multiple tasks at once.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading Versioning
        paragraph
            StaticText Each deploy is an atomic version ensuring started tasks are not affected by code changes.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading All the tools you need to ship
        link View all features, url='https://trigger.dev/product'
        image
        heading Development
        link Cron schedules, url='https://trigger.dev/product/scheduled-tasks'
            image
            heading Cron schedules
        link Realtime run status updates, url='https://trigger.dev/docs/realtime/overview#realtime-overview'
            image
            heading Realtime run status updates
            image
            image
        link Write tasks in async code, url='https://trigger.dev/docs/guides/introduction'
            image
            heading Write tasks in async code
            image
            image
        link React hooks, url='https://trigger.dev/docs/frontend/react-hooks#react-hooks'
            image
            heading React hooks
            image
            image
        link Max duration, url='https://trigger.dev/docs/runs/max-duration#max-duration'
            image
            heading Max duration
            image
            image
        link Batch triggering, url='https://trigger.dev/docs/triggering#tasks-batchtrigger'
            image
            heading Batch triggering
            image
            image
        link Runtime schema payloads, url='https://trigger.dev/docs/tasks/schemaTask#schematask'
            image
            heading Runtime schema payloads
            image
            image
        link Waits, url='https://trigger.dev/docs/wait'
            image
            heading Waits
            image
            image
        image
        heading Production
        link Concurrency controls, url='https://trigger.dev/product/concurrency-and-queues'
            image
            heading Concurrency controls
        link Multiple environments, url='https://trigger.dev/docs/how-it-works#dev-mode'
            image
            heading Multiple environments
            image
            image
        link No servers to manage, url='https://trigger.dev/docs/how-it-works#trigger-dev-architecture'
            image
            heading No servers to manage
            image
            image
        link Automatic retries, url='https://trigger.dev/docs/errors-retrying'
            image
            heading Automatic retries
            image
            image
        link Build extensions, url='https://trigger.dev/docs/config/extensions/overview#build-extensions'
            image
            heading Build extensions
            image
            image
        link Checkpointing, url='https://trigger.dev/docs/how-it-works#the-checkpoint-resume-system'
            image
            heading Checkpointing
            image
            image
        link Versioning, url='https://trigger.dev/docs/versioning'
            image
            heading Versioning
            image
            image
        image
        heading Observability
        link Live dashboard, url='https://trigger.dev/product/observability-and-monitoring'
            image
            heading Live dashboard
        link Easily test tasks, url='https://trigger.dev/docs/run-tests#run-tests'
            image
            heading Easily test tasks
            image
            image
        link Tags, url='https://trigger.dev/docs/tags#tags'
            image
            heading Tags
            image
            image
        link Advanced run filters, url='https://trigger.dev/product/observability-and-monitoring#advanced-filters'
            image
            heading Advanced run filters
        link Run metadata, url='https://trigger.dev/docs/runs/metadata#run-metadata'
            heading Run metadata
            image
            image
        link Custom alerts, url='https://trigger.dev/product/observability-and-monitoring#alerts'
            image
            heading Custom alerts
        heading Reliable by default
        link Docs, url='https://trigger.dev/docs/v3/errors-retrying'
            image
            image
        tablist, orientation='horizontal'
            tab Task retrying Configure automatic retrying for tasks., selected=True
                heading Task retrying
                paragraph
            tab handleError() Conditional retrying based on the error and run., selected=False
                heading handleError()
                paragraph
            tab retry.onThrow() Fine-grained retrying inside tasks., selected=False
                heading retry.onThrow()
                paragraph
            tab retry.fetch() Automatically retry requests based on the response., selected=False
                heading retry.fetch()
                paragraph
            tab trigger.config Configure default retrying in your config file., selected=False
                heading trigger.config
                paragraph
        tabpanel Task retrying Configure automatic retrying for tasks.
            StaticText import
            StaticText {
            StaticText task
            StaticText }
            StaticText from
            StaticText "@trigger.dev/sdk/v3"
            StaticText ;
            StaticText export
            StaticText const
            StaticText simpleTask
            StaticText =
            StaticText task
            StaticText (
            StaticText {
            StaticText id
            StaticText :
            StaticText "simple-task"
            StaticText ,
            StaticText retry
            StaticText :
            StaticText {
            StaticText maxAttempts
            StaticText :
            StaticText 3
            StaticText ,
            StaticText minTimeoutInMs
            StaticText :
            StaticText 1000
            StaticText ,
            StaticText maxTimeoutInMs
            StaticText :
            StaticText 5000
            StaticText ,
            StaticText factor
            StaticText :
            StaticText 2
            StaticText ,
            StaticText randomize
            StaticText :
            StaticText true
            StaticText ,
            StaticText }
            StaticText ,
            StaticText run
            StaticText :
            StaticText async
            StaticText (
            StaticText payload
            StaticText ,
            StaticText {
            StaticText ctx
            StaticText }
            StaticText )
            StaticText =>
            StaticText {
            StaticText logger
            StaticText .
            StaticText log
            StaticText (
            StaticText `
            StaticText Attempt
            StaticText ${
            StaticText ctx
            StaticText .
            StaticText attempt
            StaticText .
            StaticText number
            StaticText }
            StaticText `
            StaticText )
            StaticText ;
            StaticText try
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "This is an error."
            StaticText )
            StaticText ;
            StaticText }
            StaticText catch
            StaticText (
            StaticText error
            StaticText )
            StaticText {
            StaticText // The error was caught, so no retry
            StaticText }
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "This will cause a retry."
            StaticText )
            StaticText ;
            StaticText }
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
        heading Works with your existing tech stack…
        image Vercel logo, url='https://trigger.dev/tech-stack/vercel.png'
        image AWS logo, url='https://trigger.dev/tech-stack/aws.png'
        image Remix logo, url='https://trigger.dev/tech-stack/remix.png'
        image Nuxt logo, url='https://trigger.dev/tech-stack/nuxt.png'
        image SvelteKit logo, url='https://trigger.dev/tech-stack/sveltekit.png'
        image Fastify logo, url='https://trigger.dev/tech-stack/fastify.png'
        image RedwoodJS logo, url='https://trigger.dev/tech-stack/redwoodjs.png'
        image Cloudflare logo, url='https://trigger.dev/tech-stack/cloudflare.png'
        image ExpressJS logo, url='https://trigger.dev/tech-stack/expressjs.png'
        image Astro logo, url='https://trigger.dev/tech-stack/astro.png'
        image Google Cloud logo, url='https://trigger.dev/tech-stack/google-cloud.png'
        image Azure logo, url='https://trigger.dev/tech-stack/azure.png'
        image Netlify logo, url='https://trigger.dev/tech-stack/netlify.png'
        image NextJS logo, url='https://trigger.dev/tech-stack/nextjs.png'
        image Heart 1, url='https://trigger.dev/build/_assets/1-OXKMZAUJ.png'
        image Heart 2, url='https://trigger.dev/build/_assets/2-JH3Y3YJF.png'
        image Heart 3, url='https://trigger.dev/build/_assets/3-Y24XLZQ2.png'
        image Heart 4, url='https://trigger.dev/build/_assets/4-I5XLMUM3.png'
        image Heart 5, url='https://trigger.dev/build/_assets/5-H2LZLREV.png'
        heading We love open source. Trigger.dev is Apache 2.0 licensed so you can view the source code, contribute and self-host.
        link 9,900+ stars on GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            image
            heading 9,900+
            paragraph
        link Apache 2.0 open source license, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            image
            image
            heading Apache 2.0
            paragraph
        link 2,800+ Discord members, url='https://discord.gg/nkqV9xBYWy'
            image
            image
            heading 2,800+
            paragraph
        heading Loved by developers
        link Join our community, url='https://discord.gg/nkqV9xBYWy'
            image
            image
            image
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is redefining background jobs for modern developers.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/e82deee8-b8ec-4092-3980-b268688d1900/public'
                paragraph
                    StaticText Paul Copplestone
                paragraph
                    StaticText Supabase
                link Supabase logo, url='https://supabase.com/'
                    image Supabase logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/bfd6d823-7027-4c8b-0117-ef4085b76200/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev was the missing piece in our journey to go fully serverless. It enables us to focus entirely on building our product without worrying about the complexities of background jobs. The best part? We’re continuously adding more jobs as we scale!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/d60cc0d1-a132-420a-b7fa-bdb67267f800/public'
                paragraph
                    StaticText Pontus Abrahamsson
                paragraph
                    StaticText Midday
                link Midday logo, url='https://midday.ai/'
                    image Midday logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9c0e5ff1-b718-4b67-8e7c-4a45f4697f00/public'
        figure
            blockquote
                paragraph
                    StaticText We have critical business functionalities that need to be reliable and replayable in the event of a failure.
                    StaticText Trigger.dev helps us deliver messages over WhatsApp, run thousands of jobs with custom LLM workflows, and execute ETL processes to sync our data across multiple databases without breaking a sweat!
            Figcaption
                image, url='https://trigger.dev/testimonials/drpcrd/patryk-maron.png'
                paragraph
                    StaticText Patryk Maron
                paragraph
                    StaticText DRPCRD
                link DRPCRD logo, url='https://drpcrd.com/'
                    image DRPCRD logo, url='https://trigger.dev/testimonials/drpcrd/drpcrd.png'
        figure
            blockquote
                paragraph
                    StaticText The first time I used Trigger.dev, I had an a-ha moment, I no longer needed to set up everything with ECS or Lambda. What also stands out is the exceptional support, unlike any I've seen in the web community.
            Figcaption
                image, url='https://trigger.dev/testimonials/ps-bridal/martin-ruzicka.png'
                paragraph
                    StaticText Martin Ruzicka
                paragraph
                    StaticText P.S. Bridal
                link P.S. Bridal logo, url='https://psbridal.co.uk/'
                    image P.S. Bridal logo, url='https://trigger.dev/testimonials/ps-bridal/ps-bridal.png'
        figure
            blockquote
                paragraph
                    StaticText We’ve been looking for a product like Trigger.dev for a long time - automation that's simple and dev-focused.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/4e3d1187-c27b-4bdc-feac-d2e5297e9a00/public'
                paragraph
                    StaticText Han Wang
                paragraph
                    StaticText Mintlify
                link Mintlify logo, url='https://mintlify.com/'
                    image Mintlify logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/1a068830-bc93-451c-b5c2-f76b24e42000/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is a breath of fresh air in a world of 20 second lambda timeouts. Trigger has world-class DX, support, and handles my long-running jobs with ease.
            Figcaption
                image, url='https://trigger.dev/testimonials/propfeeds/ian-janicki.png'
                paragraph
                    StaticText Ian Janicki
                paragraph
                    StaticText PropFeeds
                link PropFeeds logo, url='https://propfeeds.com/'
                    image PropFeeds logo, url='https://trigger.dev/testimonials/propfeeds/propfeeds.png'
        figure
            blockquote
                paragraph
                    StaticText I’m in love with Trigger.dev – it’s so much better than the old bull.js + heroku + redis setup that I used to use. You’ve knocked it out of the park with this tool!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/6738d30f-ccd5-4342-8764-a2194fc0d900/public'
                paragraph
                    StaticText Kushal Byatnal
                paragraph
                    StaticText Extend
                link Extend logo, url='https://www.extend.app/'
                    image Extend logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/0db95e34-61a0-47ff-879d-7698f3084900/public'
        figure
            blockquote
                paragraph
                    StaticText We found software that's open-source friendly called MuPDF which runs in Node.js environments. Combined with using Trigger's tasks and runs, it solved our problem instantly. We are now easily processing around 6,000 documents per month anywhere from one page to hundreds of pages.
            Figcaption
                image, url='https://trigger.dev/customers/papermark/marc-seitz.png'
                paragraph
                    StaticText Marc Seitz
                paragraph
                    StaticText Papermark
                link Papermark logo, url='https://papermark.io/'
                    image Papermark logo, url='https://trigger.dev/customers/papermark/papermark-logo.png'
        figure
            blockquote
                paragraph
                    StaticText We're using Trigger for our billing, background jobs and deployment pipeline without worrying about operations or infrastructure. It just works.
            Figcaption
                image, url='https://trigger.dev/testimonials/unkey/andreas-thomas-chronark.png'
                paragraph
                    StaticText Andreas Thomas
                paragraph
                    StaticText Unkey
                link Unkey logo, url='https://www.unkey.com/'
                    image Unkey logo, url='https://trigger.dev/testimonials/unkey/unkey.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is undoubtedly one of my most cherished services. Throughout my two-decade career, it’s rare to encounter a product or service that truly resonates and makes a significant impact. It just clicks - an absolute game-changer for us. The support is beyond exceptional, and they genuinely care about the product and their users. I wholeheartedly recommend Trigger!
            Figcaption
                image, url='https://trigger.dev/testimonials/midtown/aaron-spurlock.png'
                paragraph
                    StaticText Aaron J. Spurlock
                paragraph
                    StaticText Midtown HI
                link Midtown HI logo, url='https://midtownhomeimprovements.com/'
                    image Midtown HI logo, url='https://trigger.dev/testimonials/midtown/midtown-logo.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger is a central part of our architecture. It’s allowed us to build a resilient system to orchestrates data across multiple systems. We love its observability, replayability, and how easily it slots into our existing codebase. It allows us to refine over time how to set the boundaries between async tasks and synchronous business logic.
            Figcaption
                image, url='https://trigger.dev/testimonials/numi/agree-ahmed.png'
                paragraph
                    StaticText Agree Ahmed
                paragraph
                    StaticText NUMI
                link NUMI logo, url='https://numi.tech/'
                    image NUMI logo, url='https://trigger.dev/testimonials/numi/numi.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev has become my go-to tool for new projects. I no longer need an additional server and can forget about horizontal scaling!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/f577a1b5-e9bc-46ae-af2e-517c8ebef700/public'
                paragraph
                    StaticText Nevo David
                paragraph
                    StaticText Novu
                link Novu logo, url='https://novu.co/'
                    image Novu logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/c89f7bbe-5b66-4b3d-be59-02bcc3a4e800/public'
        figure
            blockquote
                paragraph
                    StaticText For AI powered products, Trigger.dev is my clear go-to tool for building robust serverless pipelines stitching together various LLM calls.
            Figcaption
                image, url='https://trigger.dev/testimonials/blee/evan-sandler.png'
                paragraph
                    StaticText Evan Sandler
                paragraph
                    StaticText Blee
                link Blee logo, url='https://www.blee.com/'
                    image Blee logo, url='https://trigger.dev/testimonials/blee/blee-icon.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger is packaging end-to-end cron, queues and webhooks platform in a slick interface. Integration was quick and we love the support ❤️
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/521fe3ce-20f6-4f9b-d8de-b1c3b4724100/public'
                paragraph
                    StaticText Aseem Gupta
                paragraph
                    StaticText SuperKalam
                link SuperKalam logo, url='https://superkalam.com/'
                    image SuperKalam logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/cf46d1a3-604d-4eef-2e18-384b767a6600/public'
        figure
            blockquote
                paragraph
                    StaticText Using Trigger.dev for our Slack jobs saved us loads of time! It was much easier to set up than a no-code tool.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9c9e9c2e-5ff1-4227-f0d3-514aa2e49300/public'
                paragraph
                    StaticText Vlad Matsiiako
                paragraph
                    StaticText Infisical
                link Infisical logo, url='https://infisical.com/'
                    image Infisical logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/c01ec071-f909-4eed-2f0a-6db7aa885c00/public'
        figure
            blockquote
                paragraph
                    StaticText We decided to use Trigger.dev over Inngest or setting up our own dedicated solution. We had also looked into UI-based solutions like Zapier and n8n, but they become complex, really slow, expensive and time-consuming to manage for large automations. Trigger.dev made the most overall sense for us when taking dev-speed, cost, scalability and being future-proof into account.
            Figcaption
                image, url='https://trigger.dev/testimonials/heartspace-ai/sohrab-fadai.png'
                paragraph
                    StaticText Sohrab Fadai
                paragraph
                    StaticText Heartspace AI
                link Heartspace AI logo, url='https://heartspace.ai/'
                    image Heartspace AI logo, url='https://trigger.dev/testimonials/heartspace-ai/heartspace-ai.png'
        figure
            blockquote
                paragraph
                    StaticText We needed a sophisticated event engine: chaining LLM queries, orchestrating responses, async tasks, persistent state (without long lived servers), complex concurrency, and variable compute power.
                    StaticText Trigger’s managed infra and intuitive SDK allowed us to migrate our entire events engine in a day (with incredible support from the team).
            Figcaption
                image, url='https://trigger.dev/testimonials/turnout-labs/michael-parker.png'
                paragraph
                    StaticText Michael Parker
                paragraph
                    StaticText Turnout Labs
                link Turnout Labs logo, url='https://www.turnoutlabs.ai/'
                    image Turnout Labs logo, url='https://trigger.dev/testimonials/turnout-labs/turnout-labs.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is a great way to automate email campaigns with Resend.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3aca9c05-4563-4924-61df-867ec8434200/public'
                paragraph
                    StaticText Zeno Rocha
                paragraph
                    StaticText Resend
                link Resend logo, url='https://resend.com/'
                    image Resend logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/a7941fc0-bfe2-4067-9449-9c593cf54c00/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev helps us process bounties & tips on Algora without having to duct-tape queues & crons. With standardized timeouts, retries & logging we get full resilience & observability!
            Figcaption
                image, url='https://trigger.dev/testimonials/algora/zafer-cesur.png'
                paragraph
                    StaticText Zaf Cesur
                paragraph
                    StaticText Algora
                link Algora logo, url='https://algora.io/'
                    image Algora logo, url='https://trigger.dev/testimonials/algora/algora.png'
        figure
            blockquote
                paragraph
                    StaticText I really enjoyed using Trigger.dev to create jobs through code. I found the API integrations and scheduling features super useful.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/36535ea9-56b4-42e3-4e45-ef08d293dd00/public'
                paragraph
                    StaticText Adam Shiervani
                paragraph
                    StaticText BuildJet
                link BuildJet logo, url='https://buildjet.com/'
                    image BuildJet logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/06b5fdf7-f7be-424c-a4df-dfa0e3d93100/public'
        figure
            blockquote
                paragraph
                    StaticText We love Trigger.dev and it’s had a big impact in dev iteration velocity already.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3e6a3e0f-e4c9-41e9-3881-ffe4cfc50400/public'
                paragraph
                    StaticText André Neves
                paragraph
                    StaticText ZBD
                link ZBD logo, url='https://zbd.gg/'
                    image ZBD logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9bfbbd56-ec03-43ef-663a-15595ae7ab00/public'
        button Read more...
        heading We're backed by the world's best investors, founders and operators
        image Y Combinator, url='https://trigger.dev/build/_assets/yc-logo-XZXGTI4H.png'
        image Supabase, url='https://trigger.dev/build/_assets/supabase-logo-M3YU7ZPR.png'
        image PagerDuty, url='https://trigger.dev/build/_assets/pagerduty-logo-KQPQK6G5.png'
        image Dropbox, url='https://trigger.dev/build/_assets/dropbox-logo-QA6HV7QX.png'
        image Raycast, url='https://trigger.dev/build/_assets/raycast-logo-LZWKA7SA.png'
        image Instabug, url='https://trigger.dev/build/_assets/instabug-logo-3P2FNFZ5.png'
        image Atlassian, url='https://trigger.dev/build/_assets/atlassian-logo-EMV6JCYW.png'
        image Amazon Web Services, url='https://trigger.dev/build/_assets/aws-logo-padding-ZYYRMKKD.png'
        heading Ready to start building?
        paragraph
            StaticText Build and deploy your first task in 3 mins with no timeouts and no infrastructure to manage.
        link Get started for free, url='https://cloud.trigger.dev/'
        Canvas
        heading Simple pricing
        paragraph
            StaticText Only pay for what you use and scale with your needs.
        link Explore pricing, url='https://trigger.dev/pricing'
        Canvas
        heading Self-host
        paragraph
            StaticText Trigger.dev is open source and self-hostable.
        link Self-hosting docs, url='https://trigger.dev/docs/v3/open-source-self-hosting'
    contentinfo
        link Trigger.dev logo, url='https://trigger.dev/#top'
            image Trigger.dev logo
        link Discord link, url='https://trigger.dev/discord'
            image
        link GitHub link, url='https://github.com/triggerdotdev/trigger.dev'
            image GitHub
        link X (Twitter) link, url='https://twitter.com/triggerdotdev'
            image X
        link LinkedIn link, url='https://www.linkedin.com/company/triggerdotdev'
            image
        heading Docs
        link Introduction, url='https://trigger.dev/docs/introduction'
            paragraph
        link Quick start guide, url='https://trigger.dev/docs/quick-start'
            paragraph
        link Guides & examples, url='https://trigger.dev/docs/guides/introduction'
            paragraph
                StaticText Examples
        link Creating a task, url='https://trigger.dev/docs/writing-tasks-introduction'
            paragraph
        link Triggeing a task, url='https://trigger.dev/docs/triggering'
            paragraph
                StaticText Triggering a task
        link Self hosting, url='https://trigger.dev/docs/open-source-self-hosting'
            paragraph
        heading Developers
        link Docs, url='https://trigger.dev/docs'
            paragraph
        link Changelog, url='https://trigger.dev/changelog'
            paragraph
        link Contributing, url='https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md'
            paragraph
        link Open source, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            paragraph
        link GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            paragraph
        heading Product
        link Pricing, url='https://trigger.dev/pricing'
            paragraph
        link How it works, url='https://trigger.dev/#how-it-works'
            paragraph
        link Product, url='https://trigger.dev/product'
            paragraph
                StaticText Features
        link Roadmap, url='https://feedback.trigger.dev/roadmap'
            paragraph
        link FAQs, url='https://trigger.dev/pricing#faqs'
            paragraph
        link Uptime status, url='https://status.trigger.dev/'
            paragraph
        heading Company
        link Blog, url='https://trigger.dev/blog'
            paragraph
        link Email, url='https://trigger.dev/contact'
            paragraph
                StaticText Contact
        link Blog, url='https://trigger.dev/jobs'
            paragraph
                StaticText Careers
        link Privacy policy, url='https://trigger.dev/legal/privacy'
            paragraph
        link Terms and conditions, url='https://trigger.dev/legal'
            paragraph
        link OSS friends, url='https://trigger.dev/oss-friends'
            paragraph
        Iframe Uptime status
            RootWebArea, url='https://status.trigger.dev/badge?theme=dark'
                [a4] link All services are online, center=(457,9174), url='https://status.trigger.dev/'
                    image
        paragraph
            StaticText ©
            StaticText 2025
            StaticText Trigger.dev
    StaticText ,
    paragraph
        StaticText We only collect analytics cookies so we can improve your experience.
    [2023] link Privacy policy, center=(84,2665), url='https://trigger.dev/legal/privacy'
    [2027] button Opt-out, center=(209,2665), type=button
    [2030] button Accept, center=(283,2665), type=button

Reasoning for action: By clicking on the 'How it works' link, I am moving the user to a section that provides an overview of the functionality and operational aspects of Trigger.dev. This step is essential as it is the first part of the user's journey to explore the product's features, helping them to understand how Trigger.dev can meet their development needs.

Action: click(32) # Click on 'How it works' link to explore that section.

Change Description: After clicking the 'How it works' link, the main focus of the webpage shifted to the relevant section, changing the URL to 'https://trigger.dev/#how-it-works' and updating the navigation link state to indicate that 'How it works' is now focused. The content of the page also adjusted to display details about the 'How Trigger.dev works' section, including headings, paragraphs, and interactive elements like a video.

Screenshot before:Screenshot after:---

Step 2:

Url (before/after):

https://trigger.dev/#how-it-works

https://trigger.dev/product

Content (before/after):

RootWebArea Trigger.dev | Open source background jobs with no timeouts., focused, url='https://trigger.dev/#how-it-works'
    banner
        navigation Main
            [25] link Go to homepage, center=(327,1658), url='https://trigger.dev/'
                image Trigger.dev logo
Show more
            list
                listitem
                    [32] link How it works, center=(479,1658), focused, url='https://trigger.dev/#how-it-works'
                listitem
                    [34] link Features, center=(586,1657), url='https://trigger.dev/product'
                        button Features, expanded=False
                listitem
                    [80] link Changelog, center=(686,1657), url='https://trigger.dev/changelog'
                        button Changelog, expanded=False
                listitem
                    [113] link Blog, center=(771,1657), url='https://trigger.dev/blog'
                        button Blog, expanded=False
                listitem
                    [146] link Docs, center=(835,1657), url='https://trigger.dev/docs'
                        button Docs, expanded=False
                listitem
                    [255] link Pricing, center=(908,1658), url='https://trigger.dev/pricing'
            list
                listitem
                    [259] link Trigger.dev Discord server, center=(1320,1658), url='https://trigger.dev/discord'
                        image
                listitem
                    [262] link Trigger.dev GitHub repo, center=(1408,1658), inner_text=Star 9.8k, url='https://github.com/triggerdotdev/trigger.dev'
                        image
                        StaticText Star
                        StaticText 9.8k
                listitem
                    [267] link Login, center=(1504,1658), url='https://cloud.trigger.dev/'
                listitem
                    [269] link Get started, center=(1607,1656), url='https://cloud.trigger.dev/'
    main
        heading The open source background jobs platform
        paragraph
            StaticText Write workflows in normal async code and we’ll handle the rest, from queues to elastic scaling. No timeouts, retries, observability, and zero infrastructure to manage.
        link Get started now, url='https://cloud.trigger.dev/'
        image Trigger.dev dashboard, url='https://trigger.dev/images/hero-image-dashboard.png'
        tablist, orientation='horizontal'
            tab AI tasks, selected=True
                Canvas
            tab Video processing, selected=False
                Canvas
            tab Cron, selected=False
                Canvas
            tab Waits, selected=False
                Canvas
            tab Workflows, selected=False
                Canvas
            tab Concurrency, selected=False
                Canvas
            tab Retries, selected=False
                Canvas
            tab PDF to images, selected=False
                Canvas
            tab Semantic search, selected=False
                Canvas
            tab AI Agent, selected=False
                Canvas
            tab Email campaign, selected=False
                Canvas
        tabpanel
            StaticText // Generate an image using OpenAI Dall-E 3
            StaticText export
            StaticText const
            StaticText generateContent
            StaticText =
            StaticText task
            StaticText (
            StaticText {
            StaticText id
            StaticText :
            StaticText "generate-content"
            StaticText ,
            StaticText retry
            StaticText :
            StaticText {
            StaticText maxAttempts
            StaticText :
            StaticText 3
            StaticText ,
            StaticText }
            StaticText ,
            StaticText run
            StaticText :
            StaticText async
            StaticText (
            StaticText {
            StaticText theme
            StaticText ,
            StaticText description
            StaticText }
            StaticText :
            StaticText Payload
            StaticText )
            StaticText =>
            StaticText {
            StaticText const
            StaticText textResult
            StaticText =
            StaticText await
            StaticText openai
            StaticText .
            StaticText chat
            StaticText .
            StaticText completions
            StaticText .
            StaticText create
            StaticText (
            StaticText {
            StaticText model
            StaticText :
            StaticText "gpt-4o"
            StaticText ,
            StaticText messages
            StaticText :
            StaticText generateTextPrompt
            StaticText (
            StaticText theme
            StaticText ,
            StaticText description
            StaticText )
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            StaticText if
            StaticText (
            StaticText !
            StaticText textResult
            StaticText .
            StaticText choices
            StaticText [
            StaticText 0
            StaticText ]
            StaticText )
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "No content, retrying…"
            StaticText )
            StaticText ;
            StaticText }
            StaticText const
            StaticText imageResult
            StaticText =
            StaticText await
            StaticText openai
            StaticText .
            StaticText images
            StaticText .
            StaticText generate
            StaticText (
            StaticText {
            StaticText model
            StaticText :
            StaticText "dall-e-3"
            StaticText ,
            StaticText prompt
            StaticText :
            StaticText generateImagePrompt
            StaticText (
            StaticText theme
            StaticText ,
            StaticText description
            StaticText )
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            StaticText if
            StaticText (
            StaticText !
            StaticText imageResult
            StaticText .
            StaticText data
            StaticText [
            StaticText 0
            StaticText ]
            StaticText )
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "No image, retrying…"
            StaticText )
            StaticText ;
            StaticText }
            StaticText return
            StaticText {
            StaticText text
            StaticText :
            StaticText textResult
            StaticText .
            StaticText choices
            StaticText [
            StaticText 0
            StaticText ]
            StaticText ,
            StaticText image
            StaticText :
            StaticText imageResult
            StaticText .
            StaticText data
            StaticText [
            StaticText 0
            StaticText ]
            StaticText .
            StaticText url
            StaticText ,
            StaticText }
            StaticText ;
            StaticText }
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
            paragraph
                StaticText Reliably call AI APIs with no timeouts, automatic retrying, and tracing. Use existing Node.js SDKs and code from your repo.
        heading Trusted by developers at companies all over the world
        image
        [752] video, center=(960,2100)
        image
        image
        image
        image
        image
        heading How Trigger.dev works
        [740] button Play and pause video, center=(1331,1730), inner_text=Play
            paragraph
        [743] button Restart video, center=(1407,1730), inner_text=Replay
            image
            paragraph
                StaticText Replay
        [746] button Toggle fullscreen, center=(1507,1730), inner_text=Full screen
            paragraph
                StaticText Full screen
        heading Deploy and scale to any size
        Canvas
        Canvas
        heading No timeouts
        paragraph
            StaticText Write simple, reliable code and never hit a timeout.
        heading Pay for what you use
        paragraph
            StaticText Only pay when your code is actually executing.
        Canvas
        Canvas
        heading No servers to manage
        paragraph
            StaticText We deploy your tasks and handle scaling for you.
        heading Find and fix bugs fast
        heading Alerts for errors
        paragraph
            StaticText Get notified via email, Slack or webhooks when your tasks or deployments fail.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading Advanced filtering
        paragraph
            StaticText Find runs fast using advanced filtering options, then apply bulk actions to multiple tasks at once.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading Versioning
        paragraph
            StaticText Each deploy is an atomic version ensuring started tasks are not affected by code changes.
        Canvas
        image hero, url='https://trigger.dev/patterns/alerts-bg.png'
        heading All the tools you need to ship
        link View all features, url='https://trigger.dev/product'
        image
        heading Development
        link Cron schedules, url='https://trigger.dev/product/scheduled-tasks'
            image
            heading Cron schedules
        link Realtime run status updates, url='https://trigger.dev/docs/realtime/overview#realtime-overview'
            image
            heading Realtime run status updates
            image
            image
        link Write tasks in async code, url='https://trigger.dev/docs/guides/introduction'
            image
            heading Write tasks in async code
            image
            image
        link React hooks, url='https://trigger.dev/docs/frontend/react-hooks#react-hooks'
            image
            heading React hooks
            image
            image
        link Max duration, url='https://trigger.dev/docs/runs/max-duration#max-duration'
            image
            heading Max duration
            image
            image
        link Batch triggering, url='https://trigger.dev/docs/triggering#tasks-batchtrigger'
            image
            heading Batch triggering
            image
            image
        link Runtime schema payloads, url='https://trigger.dev/docs/tasks/schemaTask#schematask'
            image
            heading Runtime schema payloads
            image
            image
        link Waits, url='https://trigger.dev/docs/wait'
            image
            heading Waits
            image
            image
        image
        heading Production
        link Concurrency controls, url='https://trigger.dev/product/concurrency-and-queues'
            image
            heading Concurrency controls
        link Multiple environments, url='https://trigger.dev/docs/how-it-works#dev-mode'
            image
            heading Multiple environments
            image
            image
        link No servers to manage, url='https://trigger.dev/docs/how-it-works#trigger-dev-architecture'
            image
            heading No servers to manage
            image
            image
        link Automatic retries, url='https://trigger.dev/docs/errors-retrying'
            image
            heading Automatic retries
            image
            image
        link Build extensions, url='https://trigger.dev/docs/config/extensions/overview#build-extensions'
            image
            heading Build extensions
            image
            image
        link Checkpointing, url='https://trigger.dev/docs/how-it-works#the-checkpoint-resume-system'
            image
            heading Checkpointing
            image
            image
        link Versioning, url='https://trigger.dev/docs/versioning'
            image
            heading Versioning
            image
            image
        image
        heading Observability
        link Live dashboard, url='https://trigger.dev/product/observability-and-monitoring'
            image
            heading Live dashboard
        link Easily test tasks, url='https://trigger.dev/docs/run-tests#run-tests'
            image
            heading Easily test tasks
            image
            image
        link Tags, url='https://trigger.dev/docs/tags#tags'
            image
            heading Tags
            image
            image
        link Advanced run filters, url='https://trigger.dev/product/observability-and-monitoring#advanced-filters'
            image
            heading Advanced run filters
        link Run metadata, url='https://trigger.dev/docs/runs/metadata#run-metadata'
            heading Run metadata
            image
            image
        link Custom alerts, url='https://trigger.dev/product/observability-and-monitoring#alerts'
            image
            heading Custom alerts
        heading Reliable by default
        link Docs, url='https://trigger.dev/docs/v3/errors-retrying'
            image
            image
        tablist, orientation='horizontal'
            tab Task retrying Configure automatic retrying for tasks., selected=True
                heading Task retrying
                paragraph
            tab handleError() Conditional retrying based on the error and run., selected=False
                heading handleError()
                paragraph
            tab retry.onThrow() Fine-grained retrying inside tasks., selected=False
                heading retry.onThrow()
                paragraph
            tab retry.fetch() Automatically retry requests based on the response., selected=False
                heading retry.fetch()
                paragraph
            tab trigger.config Configure default retrying in your config file., selected=False
                heading trigger.config
                paragraph
        tabpanel Task retrying Configure automatic retrying for tasks.
            StaticText import
            StaticText {
            StaticText task
            StaticText }
            StaticText from
            StaticText "@trigger.dev/sdk/v3"
            StaticText ;
            StaticText export
            StaticText const
            StaticText simpleTask
            StaticText =
            StaticText task
            StaticText (
            StaticText {
            StaticText id
            StaticText :
            StaticText "simple-task"
            StaticText ,
            StaticText retry
            StaticText :
            StaticText {
            StaticText maxAttempts
            StaticText :
            StaticText 3
            StaticText ,
            StaticText minTimeoutInMs
            StaticText :
            StaticText 1000
            StaticText ,
            StaticText maxTimeoutInMs
            StaticText :
            StaticText 5000
            StaticText ,
            StaticText factor
            StaticText :
            StaticText 2
            StaticText ,
            StaticText randomize
            StaticText :
            StaticText true
            StaticText ,
            StaticText }
            StaticText ,
            StaticText run
            StaticText :
            StaticText async
            StaticText (
            StaticText payload
            StaticText ,
            StaticText {
            StaticText ctx
            StaticText }
            StaticText )
            StaticText =>
            StaticText {
            StaticText logger
            StaticText .
            StaticText log
            StaticText (
            StaticText `
            StaticText Attempt
            StaticText ${
            StaticText ctx
            StaticText .
            StaticText attempt
            StaticText .
            StaticText number
            StaticText }
            StaticText `
            StaticText )
            StaticText ;
            StaticText try
            StaticText {
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "This is an error."
            StaticText )
            StaticText ;
            StaticText }
            StaticText catch
            StaticText (
            StaticText error
            StaticText )
            StaticText {
            StaticText // The error was caught, so no retry
            StaticText }
            StaticText throw
            StaticText new
            StaticText Error
            StaticText (
            StaticText "This will cause a retry."
            StaticText )
            StaticText ;
            StaticText }
            StaticText ,
            StaticText }
            StaticText )
            StaticText ;
        heading Works with your existing tech stack…
        image Vercel logo, url='https://trigger.dev/tech-stack/vercel.png'
        image AWS logo, url='https://trigger.dev/tech-stack/aws.png'
        image Remix logo, url='https://trigger.dev/tech-stack/remix.png'
        image Nuxt logo, url='https://trigger.dev/tech-stack/nuxt.png'
        image SvelteKit logo, url='https://trigger.dev/tech-stack/sveltekit.png'
        image Fastify logo, url='https://trigger.dev/tech-stack/fastify.png'
        image RedwoodJS logo, url='https://trigger.dev/tech-stack/redwoodjs.png'
        image Cloudflare logo, url='https://trigger.dev/tech-stack/cloudflare.png'
        image ExpressJS logo, url='https://trigger.dev/tech-stack/expressjs.png'
        image Astro logo, url='https://trigger.dev/tech-stack/astro.png'
        image Google Cloud logo, url='https://trigger.dev/tech-stack/google-cloud.png'
        image Azure logo, url='https://trigger.dev/tech-stack/azure.png'
        image Netlify logo, url='https://trigger.dev/tech-stack/netlify.png'
        image NextJS logo, url='https://trigger.dev/tech-stack/nextjs.png'
        image Heart 1, url='https://trigger.dev/build/_assets/1-OXKMZAUJ.png'
        image Heart 2, url='https://trigger.dev/build/_assets/2-JH3Y3YJF.png'
        image Heart 3, url='https://trigger.dev/build/_assets/3-Y24XLZQ2.png'
        image Heart 4, url='https://trigger.dev/build/_assets/4-I5XLMUM3.png'
        image Heart 5, url='https://trigger.dev/build/_assets/5-H2LZLREV.png'
        heading We love open source. Trigger.dev is Apache 2.0 licensed so you can view the source code, contribute and self-host.
        link 9,900+ stars on GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            image
            heading 9,900+
            paragraph
        link Apache 2.0 open source license, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            image
            image
            heading Apache 2.0
            paragraph
        link 2,800+ Discord members, url='https://discord.gg/nkqV9xBYWy'
            image
            image
            heading 2,800+
            paragraph
        heading Loved by developers
        link Join our community, url='https://discord.gg/nkqV9xBYWy'
            image
            image
            image
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is redefining background jobs for modern developers.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/e82deee8-b8ec-4092-3980-b268688d1900/public'
                paragraph
                    StaticText Paul Copplestone
                paragraph
                    StaticText Supabase
                link Supabase logo, url='https://supabase.com/'
                    image Supabase logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/bfd6d823-7027-4c8b-0117-ef4085b76200/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev was the missing piece in our journey to go fully serverless. It enables us to focus entirely on building our product without worrying about the complexities of background jobs. The best part? We’re continuously adding more jobs as we scale!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/d60cc0d1-a132-420a-b7fa-bdb67267f800/public'
                paragraph
                    StaticText Pontus Abrahamsson
                paragraph
                    StaticText Midday
                link Midday logo, url='https://midday.ai/'
                    image Midday logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9c0e5ff1-b718-4b67-8e7c-4a45f4697f00/public'
        figure
            blockquote
                paragraph
                    StaticText We have critical business functionalities that need to be reliable and replayable in the event of a failure.
                    StaticText Trigger.dev helps us deliver messages over WhatsApp, run thousands of jobs with custom LLM workflows, and execute ETL processes to sync our data across multiple databases without breaking a sweat!
            Figcaption
                image, url='https://trigger.dev/testimonials/drpcrd/patryk-maron.png'
                paragraph
                    StaticText Patryk Maron
                paragraph
                    StaticText DRPCRD
                link DRPCRD logo, url='https://drpcrd.com/'
                    image DRPCRD logo, url='https://trigger.dev/testimonials/drpcrd/drpcrd.png'
        figure
            blockquote
                paragraph
                    StaticText The first time I used Trigger.dev, I had an a-ha moment, I no longer needed to set up everything with ECS or Lambda. What also stands out is the exceptional support, unlike any I've seen in the web community.
            Figcaption
                image, url='https://trigger.dev/testimonials/ps-bridal/martin-ruzicka.png'
                paragraph
                    StaticText Martin Ruzicka
                paragraph
                    StaticText P.S. Bridal
                link P.S. Bridal logo, url='https://psbridal.co.uk/'
                    image P.S. Bridal logo, url='https://trigger.dev/testimonials/ps-bridal/ps-bridal.png'
        figure
            blockquote
                paragraph
                    StaticText We’ve been looking for a product like Trigger.dev for a long time - automation that's simple and dev-focused.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/4e3d1187-c27b-4bdc-feac-d2e5297e9a00/public'
                paragraph
                    StaticText Han Wang
                paragraph
                    StaticText Mintlify
                link Mintlify logo, url='https://mintlify.com/'
                    image Mintlify logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/1a068830-bc93-451c-b5c2-f76b24e42000/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is a breath of fresh air in a world of 20 second lambda timeouts. Trigger has world-class DX, support, and handles my long-running jobs with ease.
            Figcaption
                image, url='https://trigger.dev/testimonials/propfeeds/ian-janicki.png'
                paragraph
                    StaticText Ian Janicki
                paragraph
                    StaticText PropFeeds
                link PropFeeds logo, url='https://propfeeds.com/'
                    image PropFeeds logo, url='https://trigger.dev/testimonials/propfeeds/propfeeds.png'
        figure
            blockquote
                paragraph
                    StaticText I’m in love with Trigger.dev – it’s so much better than the old bull.js + heroku + redis setup that I used to use. You’ve knocked it out of the park with this tool!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/6738d30f-ccd5-4342-8764-a2194fc0d900/public'
                paragraph
                    StaticText Kushal Byatnal
                paragraph
                    StaticText Extend
                link Extend logo, url='https://www.extend.app/'
                    image Extend logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/0db95e34-61a0-47ff-879d-7698f3084900/public'
        figure
            blockquote
                paragraph
                    StaticText We found software that's open-source friendly called MuPDF which runs in Node.js environments. Combined with using Trigger's tasks and runs, it solved our problem instantly. We are now easily processing around 6,000 documents per month anywhere from one page to hundreds of pages.
            Figcaption
                image, url='https://trigger.dev/customers/papermark/marc-seitz.png'
                paragraph
                    StaticText Marc Seitz
                paragraph
                    StaticText Papermark
                link Papermark logo, url='https://papermark.io/'
                    image Papermark logo, url='https://trigger.dev/customers/papermark/papermark-logo.png'
        figure
            blockquote
                paragraph
                    StaticText We're using Trigger for our billing, background jobs and deployment pipeline without worrying about operations or infrastructure. It just works.
            Figcaption
                image, url='https://trigger.dev/testimonials/unkey/andreas-thomas-chronark.png'
                paragraph
                    StaticText Andreas Thomas
                paragraph
                    StaticText Unkey
                link Unkey logo, url='https://www.unkey.com/'
                    image Unkey logo, url='https://trigger.dev/testimonials/unkey/unkey.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is undoubtedly one of my most cherished services. Throughout my two-decade career, it’s rare to encounter a product or service that truly resonates and makes a significant impact. It just clicks - an absolute game-changer for us. The support is beyond exceptional, and they genuinely care about the product and their users. I wholeheartedly recommend Trigger!
            Figcaption
                image, url='https://trigger.dev/testimonials/midtown/aaron-spurlock.png'
                paragraph
                    StaticText Aaron J. Spurlock
                paragraph
                    StaticText Midtown HI
                link Midtown HI logo, url='https://midtownhomeimprovements.com/'
                    image Midtown HI logo, url='https://trigger.dev/testimonials/midtown/midtown-logo.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger is a central part of our architecture. It’s allowed us to build a resilient system to orchestrates data across multiple systems. We love its observability, replayability, and how easily it slots into our existing codebase. It allows us to refine over time how to set the boundaries between async tasks and synchronous business logic.
            Figcaption
                image, url='https://trigger.dev/testimonials/numi/agree-ahmed.png'
                paragraph
                    StaticText Agree Ahmed
                paragraph
                    StaticText NUMI
                link NUMI logo, url='https://numi.tech/'
                    image NUMI logo, url='https://trigger.dev/testimonials/numi/numi.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev has become my go-to tool for new projects. I no longer need an additional server and can forget about horizontal scaling!
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/f577a1b5-e9bc-46ae-af2e-517c8ebef700/public'
                paragraph
                    StaticText Nevo David
                paragraph
                    StaticText Novu
                link Novu logo, url='https://novu.co/'
                    image Novu logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/c89f7bbe-5b66-4b3d-be59-02bcc3a4e800/public'
        figure
            blockquote
                paragraph
                    StaticText For AI powered products, Trigger.dev is my clear go-to tool for building robust serverless pipelines stitching together various LLM calls.
            Figcaption
                image, url='https://trigger.dev/testimonials/blee/evan-sandler.png'
                paragraph
                    StaticText Evan Sandler
                paragraph
                    StaticText Blee
                link Blee logo, url='https://www.blee.com/'
                    image Blee logo, url='https://trigger.dev/testimonials/blee/blee-icon.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger is packaging end-to-end cron, queues and webhooks platform in a slick interface. Integration was quick and we love the support ❤️
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/521fe3ce-20f6-4f9b-d8de-b1c3b4724100/public'
                paragraph
                    StaticText Aseem Gupta
                paragraph
                    StaticText SuperKalam
                link SuperKalam logo, url='https://superkalam.com/'
                    image SuperKalam logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/cf46d1a3-604d-4eef-2e18-384b767a6600/public'
        figure
            blockquote
                paragraph
                    StaticText Using Trigger.dev for our Slack jobs saved us loads of time! It was much easier to set up than a no-code tool.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9c9e9c2e-5ff1-4227-f0d3-514aa2e49300/public'
                paragraph
                    StaticText Vlad Matsiiako
                paragraph
                    StaticText Infisical
                link Infisical logo, url='https://infisical.com/'
                    image Infisical logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/c01ec071-f909-4eed-2f0a-6db7aa885c00/public'
        figure
            blockquote
                paragraph
                    StaticText We decided to use Trigger.dev over Inngest or setting up our own dedicated solution. We had also looked into UI-based solutions like Zapier and n8n, but they become complex, really slow, expensive and time-consuming to manage for large automations. Trigger.dev made the most overall sense for us when taking dev-speed, cost, scalability and being future-proof into account.
            Figcaption
                image, url='https://trigger.dev/testimonials/heartspace-ai/sohrab-fadai.png'
                paragraph
                    StaticText Sohrab Fadai
                paragraph
                    StaticText Heartspace AI
                link Heartspace AI logo, url='https://heartspace.ai/'
                    image Heartspace AI logo, url='https://trigger.dev/testimonials/heartspace-ai/heartspace-ai.png'
        figure
            blockquote
                paragraph
                    StaticText We needed a sophisticated event engine: chaining LLM queries, orchestrating responses, async tasks, persistent state (without long lived servers), complex concurrency, and variable compute power.
                    StaticText Trigger’s managed infra and intuitive SDK allowed us to migrate our entire events engine in a day (with incredible support from the team).
            Figcaption
                image, url='https://trigger.dev/testimonials/turnout-labs/michael-parker.png'
                paragraph
                    StaticText Michael Parker
                paragraph
                    StaticText Turnout Labs
                link Turnout Labs logo, url='https://www.turnoutlabs.ai/'
                    image Turnout Labs logo, url='https://trigger.dev/testimonials/turnout-labs/turnout-labs.png'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev is a great way to automate email campaigns with Resend.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3aca9c05-4563-4924-61df-867ec8434200/public'
                paragraph
                    StaticText Zeno Rocha
                paragraph
                    StaticText Resend
                link Resend logo, url='https://resend.com/'
                    image Resend logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/a7941fc0-bfe2-4067-9449-9c593cf54c00/public'
        figure
            blockquote
                paragraph
                    StaticText Trigger.dev helps us process bounties & tips on Algora without having to duct-tape queues & crons. With standardized timeouts, retries & logging we get full resilience & observability!
            Figcaption
                image, url='https://trigger.dev/testimonials/algora/zafer-cesur.png'
                paragraph
                    StaticText Zaf Cesur
                paragraph
                    StaticText Algora
                link Algora logo, url='https://algora.io/'
                    image Algora logo, url='https://trigger.dev/testimonials/algora/algora.png'
        figure
            blockquote
                paragraph
                    StaticText I really enjoyed using Trigger.dev to create jobs through code. I found the API integrations and scheduling features super useful.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/36535ea9-56b4-42e3-4e45-ef08d293dd00/public'
                paragraph
                    StaticText Adam Shiervani
                paragraph
                    StaticText BuildJet
                link BuildJet logo, url='https://buildjet.com/'
                    image BuildJet logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/06b5fdf7-f7be-424c-a4df-dfa0e3d93100/public'
        figure
            blockquote
                paragraph
                    StaticText We love Trigger.dev and it’s had a big impact in dev iteration velocity already.
            Figcaption
                image, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3e6a3e0f-e4c9-41e9-3881-ffe4cfc50400/public'
                paragraph
                    StaticText André Neves
                paragraph
                    StaticText ZBD
                link ZBD logo, url='https://zbd.gg/'
                    image ZBD logo, url='https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/9bfbbd56-ec03-43ef-663a-15595ae7ab00/public'
        button Read more...
        heading We're backed by the world's best investors, founders and operators
        image Y Combinator, url='https://trigger.dev/build/_assets/yc-logo-XZXGTI4H.png'
        image Supabase, url='https://trigger.dev/build/_assets/supabase-logo-M3YU7ZPR.png'
        image PagerDuty, url='https://trigger.dev/build/_assets/pagerduty-logo-KQPQK6G5.png'
        image Dropbox, url='https://trigger.dev/build/_assets/dropbox-logo-QA6HV7QX.png'
        image Raycast, url='https://trigger.dev/build/_assets/raycast-logo-LZWKA7SA.png'
        image Instabug, url='https://trigger.dev/build/_assets/instabug-logo-3P2FNFZ5.png'
        image Atlassian, url='https://trigger.dev/build/_assets/atlassian-logo-EMV6JCYW.png'
        image Amazon Web Services, url='https://trigger.dev/build/_assets/aws-logo-padding-ZYYRMKKD.png'
        heading Ready to start building?
        paragraph
            StaticText Build and deploy your first task in 3 mins with no timeouts and no infrastructure to manage.
        link Get started for free, url='https://cloud.trigger.dev/'
        Canvas
        heading Simple pricing
        paragraph
            StaticText Only pay for what you use and scale with your needs.
        link Explore pricing, url='https://trigger.dev/pricing'
        Canvas
        heading Self-host
        paragraph
            StaticText Trigger.dev is open source and self-hostable.
        link Self-hosting docs, url='https://trigger.dev/docs/v3/open-source-self-hosting'
    contentinfo
        link Trigger.dev logo, url='https://trigger.dev/#top'
            image Trigger.dev logo
        link Discord link, url='https://trigger.dev/discord'
            image
        link GitHub link, url='https://github.com/triggerdotdev/trigger.dev'
            image GitHub
        link X (Twitter) link, url='https://twitter.com/triggerdotdev'
            image X
        link LinkedIn link, url='https://www.linkedin.com/company/triggerdotdev'
            image
        heading Docs
        link Introduction, url='https://trigger.dev/docs/introduction'
            paragraph
        link Quick start guide, url='https://trigger.dev/docs/quick-start'
            paragraph
        link Guides & examples, url='https://trigger.dev/docs/guides/introduction'
            paragraph
                StaticText Examples
        link Creating a task, url='https://trigger.dev/docs/writing-tasks-introduction'
            paragraph
        link Triggeing a task, url='https://trigger.dev/docs/triggering'
            paragraph
                StaticText Triggering a task
        link Self hosting, url='https://trigger.dev/docs/open-source-self-hosting'
            paragraph
        heading Developers
        link Docs, url='https://trigger.dev/docs'
            paragraph
        link Changelog, url='https://trigger.dev/changelog'
            paragraph
        link Contributing, url='https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md'
            paragraph
        link Open source, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            paragraph
        link GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            paragraph
        heading Product
        link Pricing, url='https://trigger.dev/pricing'
            paragraph
        link How it works, url='https://trigger.dev/#how-it-works'
            paragraph
        link Product, url='https://trigger.dev/product'
            paragraph
                StaticText Features
        link Roadmap, url='https://feedback.trigger.dev/roadmap'
            paragraph
        link FAQs, url='https://trigger.dev/pricing#faqs'
            paragraph
        link Uptime status, url='https://status.trigger.dev/'
            paragraph
        heading Company
        link Blog, url='https://trigger.dev/blog'
            paragraph
        link Email, url='https://trigger.dev/contact'
            paragraph
                StaticText Contact
        link Blog, url='https://trigger.dev/jobs'
            paragraph
                StaticText Careers
        link Privacy policy, url='https://trigger.dev/legal/privacy'
            paragraph
        link Terms and conditions, url='https://trigger.dev/legal'
            paragraph
        link OSS friends, url='https://trigger.dev/oss-friends'
            paragraph
        Iframe Uptime status
            RootWebArea, url='https://status.trigger.dev/badge?theme=dark'
                [a4] link All services are online, center=(457,9174), url='https://status.trigger.dev/'
                    image
        paragraph
            StaticText ©
            StaticText 2025
            StaticText Trigger.dev
    StaticText ,
    paragraph
        StaticText We only collect analytics cookies so we can improve your experience.
    [2023] link Privacy policy, center=(84,2665), url='https://trigger.dev/legal/privacy'
    [2027] button Opt-out, center=(209,2665), type=button
    [2030] button Accept, center=(283,2665), type=button
RootWebArea Product | Trigger.dev, focused, url='https://trigger.dev/product'
    banner
        navigation Main
            [25] link Go to homepage, center=(327,30), url='https://trigger.dev/'
                image Trigger.dev logo
Show more
            list
                listitem
                    [32] link How it works, center=(479,30), url='https://trigger.dev/#how-it-works'
                listitem
                    [34] link Features, center=(586,29), url='https://trigger.dev/product'
                        button Features, expanded=True, focused
                        generic
                            heading Product features
                            [2091] link All features, center=(835,80), url='https://trigger.dev/product'
                            [2096] link Trigger.dev Realtime Connect your frontend app to your tasks., center=(711,135), inner_text=Trigger.dev Realtime

Connect your frontend app to your tasks., url='https://trigger.dev/launchweek/0/realtime'
                                image
                                heading Trigger.dev Realtime
                                paragraph
                            [2102] link Concurrency & queues Control how many tasks run at once., center=(711,195), inner_text=Concurrency & queues

Control how many tasks run at once., url='https://trigger.dev/product/concurrency-and-queues'
                                image
                                heading Concurrency & queues
                                paragraph
                            [2108] link Scheduled tasks Durable cron schedules without timeouts., center=(711,255), inner_text=Scheduled tasks

Durable cron schedules without timeouts., url='https://trigger.dev/product/scheduled-tasks'
                                image
                                heading Scheduled tasks
                                paragraph
                            [2114] link Observability & monitoring Real-time monitoring and tracing of tasks., center=(711,315), inner_text=Observability & monitoring

Real-time monitoring and tracing of tasks., url='https://trigger.dev/product/observability-and-monitoring'
                                image
                                heading Observability & monitoring
                                paragraph
                            [2120] link Roadmap See what we're building next., center=(711,375), inner_text=Roadmap

See what we're building next., url='https://feedback.trigger.dev/roadmap'
                                image
                                heading Roadmap
                                paragraph
                                image
                                image
                listitem
                    [80] link Changelog, center=(686,29), url='https://trigger.dev/changelog'
                        button Changelog, expanded=False
                listitem
                    [113] link Blog, center=(771,29), url='https://trigger.dev/blog'
                        button Blog, expanded=False
                listitem
                    [146] link Docs, center=(835,29), url='https://trigger.dev/docs'
                        button Docs, expanded=False
                listitem
                    [255] link Pricing, center=(908,30), url='https://trigger.dev/pricing'
            list
                listitem
                    [259] link Trigger.dev Discord server, center=(1320,30), url='https://trigger.dev/discord'
                        image
                listitem
                    [262] link Trigger.dev GitHub repo, center=(1408,30), inner_text=Star 9.8k, url='https://github.com/triggerdotdev/trigger.dev'
                        image
                        StaticText Star
                        StaticText 9.8k
                listitem
                    [267] link Login, center=(1504,30), url='https://cloud.trigger.dev/'
                listitem
                    [269] link Get started, center=(1607,28), url='https://cloud.trigger.dev/'
    main
        heading Reliable background jobs without the headache of managing servers
        paragraph
            StaticText Trigger.dev has no timeouts, gives you control over concurrency, includes built-in monitoring, and scales to handle an elastic workload. You get all this and more without managing servers yourself.
        image
        heading Observability & monitoring
        image
        heading Concurrency & queues
        image
        heading Durable cron schedules
        image
        heading No infrastructure to manage
        image
        heading Advanced filtering
        image
        heading AI features
        image
        heading Automatic retries
        image
        heading Bulk replaying
        image
        heading Tag your tasks
        image
        heading Real-time alerts
        image
        heading Write normal code
        image
        heading Batch triggers
        image
        heading Long-running tasks
        image
        heading Checkpointing
        image
        heading Real-time alerts
        image
        heading Write normal code
        image
        heading Batch triggers
        image
        heading Long-running tasks
        image
        heading Checkpointing
        image
        heading Observability & monitoring
        image
        heading Concurrency & queues
        image
        heading Durable cron schedules
        image
        heading No infrastructure to manage
        image
        heading Advanced filtering
        image
        heading AI features
        image
        heading Automatic retries
        image
        heading Bulk replaying
        image
        heading Tag your tasks
        heading Feature spotlight
        [2255] link Trigger.dev Realtime Realtime is the bridge between your background tasks running on Trigger.dev and your frontend applications. It allows you to subscribe to runs and get live updates on the run status and more. Learn more, center=(654,932), inner_text=Trigger.dev Realtime

Realtime is the bridge between your background tasks running on Trigger.dev and your frontend applications. It allows you to subscribe to runs and get live updates on the run status and more.

Learn more, url='https://trigger.dev/docs/realtime/overview'
            Canvas
            heading Trigger.dev Realtime
            paragraph
            paragraph
        [2267] link Concurrency & queues Set concurrency rules to manage how multiple tasks execute. Run tasks sequentially or in parallel, and create custom queues for different users or tiers using concurrency keys. Learn more, center=(1265,932), inner_text=Concurrency & queues

Set concurrency rules to manage how multiple tasks execute. Run tasks sequentially or in parallel, and create custom queues for different users or tiers using concurrency keys.

Learn more, url='https://trigger.dev/product/concurrency-and-queues'
            Canvas
            heading Concurrency & queues
            paragraph
            paragraph
        link Durable cron schedules Create and attach recurring schedules of up to a year, which never hit a function timeout. These can be either created or attached in your codebase, or added in our dashboard. Learn more, url='https://trigger.dev/product/scheduled-tasks'
            Canvas
            heading Durable cron schedules
            paragraph
            paragraph
        link Observability & monitoring Our live run page, powered by OpenTelemetry, provides a real-time trace view of each run as it executes. This is great for viewing detailed logs of your task and debuging errors if they occur. Learn more, url='https://trigger.dev/product/observability-and-monitoring'
            Canvas
            heading Observability & monitoring
            paragraph
            paragraph
        heading Explore the full set of powerful features
        image
        heading No infrastructure to manage
        paragraph
            StaticText Your tasks are deployed and automatically scaled on Trigger.dev's long-running servers, which completely eliminates timeouts. This makes development easy without the worry of managing infrastructure.
        image
        heading Long-running tasks
        paragraph
            StaticText Trigger.dev makes it easy to run background jobs that take a long time to complete. So you can handle resource-heavy tasks like video processing, audio manipulation, PDF conversion, or large CSV processing all without timeouts.
        image
        heading AI features
        paragraph
            StaticText Trigger.dev is perfect for AI tasks that often exceed serverless timeouts, like waiting for LLM responses. Our
            link Realtime feature, url='https://trigger.dev/docs/realtime/overview'
            StaticText also lets you stream results directly to your frontend.
        image
        heading Checkpointing
        paragraph
            StaticText Tasks are inherently durable, thanks to our checkpointing feature. It allows the state of your task to be saved and resumed later, ensuring reliability. We also freeze tasks during waits meaning you only pay for task execution time.
        image
        heading Write normal code
        paragraph
            StaticText With Trigger.dev, you just write your usual async code, and it works seamlessly. No need to split your code into chunks to avoid serverless timeouts, as you deploy your tasks to our long-running servers.
            link Tasks docs, url='https://trigger.dev/docs/tasks-overview'
                image
                image
        image
        heading Batch triggering
        paragraph
            StaticText Use
            code
                StaticText batchTrigger()
            StaticText to initiate multiple runs of a task with custom payloads and options. For fanning-out scenarios,
            code
                StaticText batchTriggerAndWait()
            StaticText allows you to trigger multiple task instances and wait for all results before proceeding.
            link Batch triggering docs, url='https://trigger.dev/docs/triggering#task-batchtrigger'
                image
                image
        image
        heading Automatic retries
        paragraph
            StaticText If your task encounters an uncaught error, we automatically attempt to run it again. You can combine and nest tasks, triggering them from one another, with each task maintaining its own retry behavior.
            link Retrying docs, url='https://trigger.dev/docs/errors-retrying#errors-and-retrying'
                image
                image
        image
        heading Advanced filtering
        paragraph
            StaticText Easily
            link sort and find tasks, url='https://trigger.dev/changelog/v3-run-filters'
            StaticText based on status, environment,
            link tags, url='https://trigger.dev/changelog/run-tags'
            StaticText , and creation date. You can filter from the dashboard and programmatically via the SDK using
            code
                StaticText runs.list()
            StaticText .
        image
        heading Bulk replaying
        paragraph
            StaticText Create copies of multiple runs simultaneously, using the same payload but with the latest code version in your environment. This is particularly useful for replaying failed runs or testing updates across lots of tasks.
            link Replaying docs, url='https://trigger.dev/docs/replaying#bulk-replaying'
                image
                image
        image
        heading Real-time alerts
        paragraph
            StaticText Choose your
            link preferred notification method, url='https://trigger.dev/changelog/alerts'
            StaticText – email, Slack, or webhook – to stay updated on run failures, deployment issues, or successful deployments. We attempt runs multiple times based on your retry settings and alert you if an uncaught error occurs in any run.
            link Alerts docs, url='https://trigger.dev/docs/troubleshooting-alerts#alerts'
                image
                image
        image
        heading Tag your tasks
        paragraph
            StaticText Attach up to five
            link tags, url='https://trigger.dev/changelog/run-tags'
            StaticText to each run – strings between 1 and 64 characters – to serve as powerful identifiers. Use them to filter and organize your runs through both the dashboard and SDK.
            link Tags docs, url='https://trigger.dev/docs/tags#tags'
                image
                image
        image
        heading Test your tasks
        paragraph
            StaticText You can test your tasks in every environment using the
            link test page, url='https://trigger.dev/docs/run-tests#run-tests'
            StaticText in the Trigger.dev dashboard. This allows you to make sure everything is working correctly before pushing your tasks live.
        image React
        heading React hooks
        paragraph
            StaticText Interact with the Trigger.dev API using our
            link React hooks, url='https://trigger.dev/docs/frontend/react-hooks#react-hooks'
            StaticText package. You can use these to fetch runs, batches and subscribe to real-time updates.
        image
        heading Runtime schema payloads
        paragraph
            StaticText The
            code
                StaticText schemaTask
            StaticText function allows you to define a task with a
            link runtime payload schema, url='https://trigger.dev/docs/tasks/schemaTask#schematask'
            StaticText . This validates the payload before the task is run, or when a task is triggered directly. If a task is triggered with an invalid payload, the task will fail.
        image
        heading Versioning
        paragraph
            StaticText Atomic
            link versioning, url='https://trigger.dev/docs/versioning#versioning'
            StaticText allows you to deploy new versions of your code without affecting currently running tasks.
        image
        heading Waits
        paragraph
            StaticText You can add
            link waits, url='https://trigger.dev/docs/wait#wait-overview'
            StaticText to your tasks to pause execution for a specified duration. This is useful for writing complex tasks without having to schedule them manually or poll for changes.
        image
        heading Multiple environments
        paragraph
            StaticText Trigger.dev supports
            code
                StaticText DEV
            StaticText ,
            code
                StaticText STAGING
            StaticText , and
            code
                StaticText PROD
            StaticText environments, allowing your team to test and deploy your tasks in different environments without interrupting production.
        image
        heading Build extensions
        paragraph
            link Build extensions, url='https://trigger.dev/docs/config/extensions/overview#build-extensions'
            StaticText allow you to hook into the build system and customize the build process, or the resulting bundle and container image. They can add additional files, dependencies, esbuild plugins, npm dependencies, system packages, commands and environment variables.
        heading Run metadata
        paragraph
            StaticText Attach a small amount of
            link metadata, url='https://trigger.dev/docs/runs/metadata#run-metadata'
            StaticText to a run which updates as the run progresses. This data can be accessed from inside the run function, via the API, and in the dashboard.
        heading Ready to start building?
        paragraph
            StaticText Build and deploy your first task in 3 minutes.
        link Get started now, url='https://cloud.trigger.dev/'
    contentinfo
        link Trigger.dev logo, url='https://trigger.dev/product#top'
            image Trigger.dev logo
        link Discord link, url='https://trigger.dev/discord'
            image
        link GitHub link, url='https://github.com/triggerdotdev/trigger.dev'
            image GitHub
        link X (Twitter) link, url='https://twitter.com/triggerdotdev'
            image X
        link LinkedIn link, url='https://www.linkedin.com/company/triggerdotdev'
            image
        heading Docs
        link Introduction, url='https://trigger.dev/docs/introduction'
            paragraph
        link Quick start guide, url='https://trigger.dev/docs/quick-start'
            paragraph
        link Guides & examples, url='https://trigger.dev/docs/guides/introduction'
            paragraph
                StaticText Examples
        link Creating a task, url='https://trigger.dev/docs/writing-tasks-introduction'
            paragraph
        link Triggeing a task, url='https://trigger.dev/docs/triggering'
            paragraph
                StaticText Triggering a task
        link Self hosting, url='https://trigger.dev/docs/open-source-self-hosting'
            paragraph
        heading Developers
        link Docs, url='https://trigger.dev/docs'
            paragraph
        link Changelog, url='https://trigger.dev/changelog'
            paragraph
        link Contributing, url='https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md'
            paragraph
        link Open source, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            paragraph
        link GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            paragraph
        heading Product
        link Pricing, url='https://trigger.dev/pricing'
            paragraph
        link How it works, url='https://trigger.dev/#how-it-works'
            paragraph
        link Product, url='https://trigger.dev/product'
            paragraph
                StaticText Features
        link Roadmap, url='https://feedback.trigger.dev/roadmap'
            paragraph
        link FAQs, url='https://trigger.dev/pricing#faqs'
            paragraph
        link Uptime status, url='https://status.trigger.dev/'
            paragraph
        heading Company
        link Blog, url='https://trigger.dev/blog'
            paragraph
        link Email, url='https://trigger.dev/contact'
            paragraph
                StaticText Contact
        link Blog, url='https://trigger.dev/jobs'
            paragraph
                StaticText Careers
        link Privacy policy, url='https://trigger.dev/legal/privacy'
            paragraph
        link Terms and conditions, url='https://trigger.dev/legal'
            paragraph
        link OSS friends, url='https://trigger.dev/oss-friends'
            paragraph
        Iframe Uptime status
            RootWebArea, url='https://status.trigger.dev/badge?theme=dark'
                [a4] link All services are online, center=(457,3718), url='https://status.trigger.dev/'
                    image
        paragraph
            StaticText ©
            StaticText 2025
            StaticText Trigger.dev
    StaticText ,
    paragraph
        StaticText We only collect analytics cookies so we can improve your experience.
    [2023] link Privacy policy, center=(84,1037), url='https://trigger.dev/legal/privacy'
    [2027] button Opt-out, center=(209,1037), type=button
    [2030] button Accept, center=(283,1037), type=button

Reasoning for action: By clicking on the 'Features' link, I am moving closer to fulfilling the user's goal of evaluating Trigger.dev's offering. This action takes me to a page where I can gather detailed information about what Trigger.dev provides, which is essential for the user to assess whether it meets their development needs.

Action: click(34) # Click on 'Features' link to explore the features of Trigger.dev.

Change Description: After clicking the 'Features' link, the browser navigated to the 'Product' page of Trigger.dev, where the focus shifted to a new section displaying detailed features of the platform, including headings and links to various functionalities that were previously hidden.

Screenshot before:Screenshot after:---

Step 3:

Url (before/after):

https://trigger.dev/product

https://trigger.dev/product

Content (before/after):

RootWebArea Product | Trigger.dev, focused, url='https://trigger.dev/product'
    banner
        navigation Main
            [25] link Go to homepage, center=(327,30), url='https://trigger.dev/'
                image Trigger.dev logo
Show more
            list
                listitem
                    [32] link How it works, center=(479,30), url='https://trigger.dev/#how-it-works'
                listitem
                    [34] link Features, center=(586,29), url='https://trigger.dev/product'
                        button Features, expanded=True, focused
                        generic
                            heading Product features
                            [2091] link All features, center=(835,80), url='https://trigger.dev/product'
                            [2096] link Trigger.dev Realtime Connect your frontend app to your tasks., center=(711,135), inner_text=Trigger.dev Realtime

Connect your frontend app to your tasks., url='https://trigger.dev/launchweek/0/realtime'
                                image
                                heading Trigger.dev Realtime
                                paragraph
                            [2102] link Concurrency & queues Control how many tasks run at once., center=(711,195), inner_text=Concurrency & queues

Control how many tasks run at once., url='https://trigger.dev/product/concurrency-and-queues'
                                image
                                heading Concurrency & queues
                                paragraph
                            [2108] link Scheduled tasks Durable cron schedules without timeouts., center=(711,255), inner_text=Scheduled tasks

Durable cron schedules without timeouts., url='https://trigger.dev/product/scheduled-tasks'
                                image
                                heading Scheduled tasks
                                paragraph
                            [2114] link Observability & monitoring Real-time monitoring and tracing of tasks., center=(711,315), inner_text=Observability & monitoring

Real-time monitoring and tracing of tasks., url='https://trigger.dev/product/observability-and-monitoring'
                                image
                                heading Observability & monitoring
                                paragraph
                            [2120] link Roadmap See what we're building next., center=(711,375), inner_text=Roadmap

See what we're building next., url='https://feedback.trigger.dev/roadmap'
                                image
                                heading Roadmap
                                paragraph
                                image
                                image
                listitem
                    [80] link Changelog, center=(686,29), url='https://trigger.dev/changelog'
                        button Changelog, expanded=False
                listitem
                    [113] link Blog, center=(771,29), url='https://trigger.dev/blog'
                        button Blog, expanded=False
                listitem
                    [146] link Docs, center=(835,29), url='https://trigger.dev/docs'
                        button Docs, expanded=False
                listitem
                    [255] link Pricing, center=(908,30), url='https://trigger.dev/pricing'
            list
                listitem
                    [259] link Trigger.dev Discord server, center=(1320,30), url='https://trigger.dev/discord'
                        image
                listitem
                    [262] link Trigger.dev GitHub repo, center=(1408,30), inner_text=Star 9.8k, url='https://github.com/triggerdotdev/trigger.dev'
                        image
                        StaticText Star
                        StaticText 9.8k
                listitem
                    [267] link Login, center=(1504,30), url='https://cloud.trigger.dev/'
                listitem
                    [269] link Get started, center=(1607,28), url='https://cloud.trigger.dev/'
    main
        heading Reliable background jobs without the headache of managing servers
        paragraph
            StaticText Trigger.dev has no timeouts, gives you control over concurrency, includes built-in monitoring, and scales to handle an elastic workload. You get all this and more without managing servers yourself.
        image
        heading Observability & monitoring
        image
        heading Concurrency & queues
        image
        heading Durable cron schedules
        image
        heading No infrastructure to manage
        image
        heading Advanced filtering
        image
        heading AI features
        image
        heading Automatic retries
        image
        heading Bulk replaying
        image
        heading Tag your tasks
        image
        heading Real-time alerts
        image
        heading Write normal code
        image
        heading Batch triggers
        image
        heading Long-running tasks
        image
        heading Checkpointing
        image
        heading Real-time alerts
        image
        heading Write normal code
        image
        heading Batch triggers
        image
        heading Long-running tasks
        image
        heading Checkpointing
        image
        heading Observability & monitoring
        image
        heading Concurrency & queues
        image
        heading Durable cron schedules
        image
        heading No infrastructure to manage
        image
        heading Advanced filtering
        image
        heading AI features
        image
        heading Automatic retries
        image
        heading Bulk replaying
        image
        heading Tag your tasks
        heading Feature spotlight
        [2255] link Trigger.dev Realtime Realtime is the bridge between your background tasks running on Trigger.dev and your frontend applications. It allows you to subscribe to runs and get live updates on the run status and more. Learn more, center=(654,932), inner_text=Trigger.dev Realtime

Realtime is the bridge between your background tasks running on Trigger.dev and your frontend applications. It allows you to subscribe to runs and get live updates on the run status and more.

Learn more, url='https://trigger.dev/docs/realtime/overview'
            Canvas
            heading Trigger.dev Realtime
            paragraph
            paragraph
        [2267] link Concurrency & queues Set concurrency rules to manage how multiple tasks execute. Run tasks sequentially or in parallel, and create custom queues for different users or tiers using concurrency keys. Learn more, center=(1265,932), inner_text=Concurrency & queues

Set concurrency rules to manage how multiple tasks execute. Run tasks sequentially or in parallel, and create custom queues for different users or tiers using concurrency keys.

Learn more, url='https://trigger.dev/product/concurrency-and-queues'
            Canvas
            heading Concurrency & queues
            paragraph
            paragraph
        link Durable cron schedules Create and attach recurring schedules of up to a year, which never hit a function timeout. These can be either created or attached in your codebase, or added in our dashboard. Learn more, url='https://trigger.dev/product/scheduled-tasks'
            Canvas
            heading Durable cron schedules
            paragraph
            paragraph
        link Observability & monitoring Our live run page, powered by OpenTelemetry, provides a real-time trace view of each run as it executes. This is great for viewing detailed logs of your task and debuging errors if they occur. Learn more, url='https://trigger.dev/product/observability-and-monitoring'
            Canvas
            heading Observability & monitoring
            paragraph
            paragraph
        heading Explore the full set of powerful features
        image
        heading No infrastructure to manage
        paragraph
            StaticText Your tasks are deployed and automatically scaled on Trigger.dev's long-running servers, which completely eliminates timeouts. This makes development easy without the worry of managing infrastructure.
        image
        heading Long-running tasks
        paragraph
            StaticText Trigger.dev makes it easy to run background jobs that take a long time to complete. So you can handle resource-heavy tasks like video processing, audio manipulation, PDF conversion, or large CSV processing all without timeouts.
        image
        heading AI features
        paragraph
            StaticText Trigger.dev is perfect for AI tasks that often exceed serverless timeouts, like waiting for LLM responses. Our
            link Realtime feature, url='https://trigger.dev/docs/realtime/overview'
            StaticText also lets you stream results directly to your frontend.
        image
        heading Checkpointing
        paragraph
            StaticText Tasks are inherently durable, thanks to our checkpointing feature. It allows the state of your task to be saved and resumed later, ensuring reliability. We also freeze tasks during waits meaning you only pay for task execution time.
        image
        heading Write normal code
        paragraph
            StaticText With Trigger.dev, you just write your usual async code, and it works seamlessly. No need to split your code into chunks to avoid serverless timeouts, as you deploy your tasks to our long-running servers.
            link Tasks docs, url='https://trigger.dev/docs/tasks-overview'
                image
                image
        image
        heading Batch triggering
        paragraph
            StaticText Use
            code
                StaticText batchTrigger()
            StaticText to initiate multiple runs of a task with custom payloads and options. For fanning-out scenarios,
            code
                StaticText batchTriggerAndWait()
            StaticText allows you to trigger multiple task instances and wait for all results before proceeding.
            link Batch triggering docs, url='https://trigger.dev/docs/triggering#task-batchtrigger'
                image
                image
        image
        heading Automatic retries
        paragraph
            StaticText If your task encounters an uncaught error, we automatically attempt to run it again. You can combine and nest tasks, triggering them from one another, with each task maintaining its own retry behavior.
            link Retrying docs, url='https://trigger.dev/docs/errors-retrying#errors-and-retrying'
                image
                image
        image
        heading Advanced filtering
        paragraph
            StaticText Easily
            link sort and find tasks, url='https://trigger.dev/changelog/v3-run-filters'
            StaticText based on status, environment,
            link tags, url='https://trigger.dev/changelog/run-tags'
            StaticText , and creation date. You can filter from the dashboard and programmatically via the SDK using
            code
                StaticText runs.list()
            StaticText .
        image
        heading Bulk replaying
        paragraph
            StaticText Create copies of multiple runs simultaneously, using the same payload but with the latest code version in your environment. This is particularly useful for replaying failed runs or testing updates across lots of tasks.
            link Replaying docs, url='https://trigger.dev/docs/replaying#bulk-replaying'
                image
                image
        image
        heading Real-time alerts
        paragraph
            StaticText Choose your
            link preferred notification method, url='https://trigger.dev/changelog/alerts'
            StaticText – email, Slack, or webhook – to stay updated on run failures, deployment issues, or successful deployments. We attempt runs multiple times based on your retry settings and alert you if an uncaught error occurs in any run.
            link Alerts docs, url='https://trigger.dev/docs/troubleshooting-alerts#alerts'
                image
                image
        image
        heading Tag your tasks
        paragraph
            StaticText Attach up to five
            link tags, url='https://trigger.dev/changelog/run-tags'
            StaticText to each run – strings between 1 and 64 characters – to serve as powerful identifiers. Use them to filter and organize your runs through both the dashboard and SDK.
            link Tags docs, url='https://trigger.dev/docs/tags#tags'
                image
                image
        image
        heading Test your tasks
        paragraph
            StaticText You can test your tasks in every environment using the
            link test page, url='https://trigger.dev/docs/run-tests#run-tests'
            StaticText in the Trigger.dev dashboard. This allows you to make sure everything is working correctly before pushing your tasks live.
        image React
        heading React hooks
        paragraph
            StaticText Interact with the Trigger.dev API using our
            link React hooks, url='https://trigger.dev/docs/frontend/react-hooks#react-hooks'
            StaticText package. You can use these to fetch runs, batches and subscribe to real-time updates.
        image
        heading Runtime schema payloads
        paragraph
            StaticText The
            code
                StaticText schemaTask
            StaticText function allows you to define a task with a
            link runtime payload schema, url='https://trigger.dev/docs/tasks/schemaTask#schematask'
            StaticText . This validates the payload before the task is run, or when a task is triggered directly. If a task is triggered with an invalid payload, the task will fail.
        image
        heading Versioning
        paragraph
            StaticText Atomic
            link versioning, url='https://trigger.dev/docs/versioning#versioning'
            StaticText allows you to deploy new versions of your code without affecting currently running tasks.
        image
        heading Waits
        paragraph
            StaticText You can add
            link waits, url='https://trigger.dev/docs/wait#wait-overview'
            StaticText to your tasks to pause execution for a specified duration. This is useful for writing complex tasks without having to schedule them manually or poll for changes.
        image
        heading Multiple environments
        paragraph
            StaticText Trigger.dev supports
            code
                StaticText DEV
            StaticText ,
            code
                StaticText STAGING
            StaticText , and
            code
                StaticText PROD
            StaticText environments, allowing your team to test and deploy your tasks in different environments without interrupting production.
        image
        heading Build extensions
        paragraph
            link Build extensions, url='https://trigger.dev/docs/config/extensions/overview#build-extensions'
            StaticText allow you to hook into the build system and customize the build process, or the resulting bundle and container image. They can add additional files, dependencies, esbuild plugins, npm dependencies, system packages, commands and environment variables.
        heading Run metadata
        paragraph
            StaticText Attach a small amount of
            link metadata, url='https://trigger.dev/docs/runs/metadata#run-metadata'
            StaticText to a run which updates as the run progresses. This data can be accessed from inside the run function, via the API, and in the dashboard.
        heading Ready to start building?
        paragraph
            StaticText Build and deploy your first task in 3 minutes.
        link Get started now, url='https://cloud.trigger.dev/'
    contentinfo
        link Trigger.dev logo, url='https://trigger.dev/product#top'
            image Trigger.dev logo
        link Discord link, url='https://trigger.dev/discord'
            image
        link GitHub link, url='https://github.com/triggerdotdev/trigger.dev'
            image GitHub
        link X (Twitter) link, url='https://twitter.com/triggerdotdev'
            image X
        link LinkedIn link, url='https://www.linkedin.com/company/triggerdotdev'
            image
        heading Docs
        link Introduction, url='https://trigger.dev/docs/introduction'
            paragraph
        link Quick start guide, url='https://trigger.dev/docs/quick-start'
            paragraph
        link Guides & examples, url='https://trigger.dev/docs/guides/introduction'
            paragraph
                StaticText Examples
        link Creating a task, url='https://trigger.dev/docs/writing-tasks-introduction'
            paragraph
        link Triggeing a task, url='https://trigger.dev/docs/triggering'
            paragraph
                StaticText Triggering a task
        link Self hosting, url='https://trigger.dev/docs/open-source-self-hosting'
            paragraph
        heading Developers
        link Docs, url='https://trigger.dev/docs'
            paragraph
        link Changelog, url='https://trigger.dev/changelog'
            paragraph
        link Contributing, url='https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md'
            paragraph
        link Open source, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            paragraph
        link GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            paragraph
        heading Product
        link Pricing, url='https://trigger.dev/pricing'
            paragraph
        link How it works, url='https://trigger.dev/#how-it-works'
            paragraph
        link Product, url='https://trigger.dev/product'
            paragraph
                StaticText Features
        link Roadmap, url='https://feedback.trigger.dev/roadmap'
            paragraph
        link FAQs, url='https://trigger.dev/pricing#faqs'
            paragraph
        link Uptime status, url='https://status.trigger.dev/'
            paragraph
        heading Company
        link Blog, url='https://trigger.dev/blog'
            paragraph
        link Email, url='https://trigger.dev/contact'
            paragraph
                StaticText Contact
        link Blog, url='https://trigger.dev/jobs'
            paragraph
                StaticText Careers
        link Privacy policy, url='https://trigger.dev/legal/privacy'
            paragraph
        link Terms and conditions, url='https://trigger.dev/legal'
            paragraph
        link OSS friends, url='https://trigger.dev/oss-friends'
            paragraph
        Iframe Uptime status
            RootWebArea, url='https://status.trigger.dev/badge?theme=dark'
                [a4] link All services are online, center=(457,3718), url='https://status.trigger.dev/'
                    image
        paragraph
            StaticText ©
            StaticText 2025
            StaticText Trigger.dev
    StaticText ,
    paragraph
        StaticText We only collect analytics cookies so we can improve your experience.
    [2023] link Privacy policy, center=(84,1037), url='https://trigger.dev/legal/privacy'
    [2027] button Opt-out, center=(209,1037), type=button
    [2030] button Accept, center=(283,1037), type=button
RootWebArea Product | Trigger.dev, focused, url='https://trigger.dev/product'
    banner
        navigation Main
            [25] link Go to homepage, center=(327,30), url='https://trigger.dev/'
                image Trigger.dev logo
Show more
            list
                listitem
                    [32] link How it works, center=(479,30), url='https://trigger.dev/#how-it-works'
                listitem
                    [34] link Features, center=(586,29), url='https://trigger.dev/product'
                        button Features, expanded=True
                        generic
                            heading Product features
                            [2091] link All features, center=(835,80), focused, url='https://trigger.dev/product'
                            [2096] link Trigger.dev Realtime Connect your frontend app to your tasks., center=(711,135), inner_text=Trigger.dev Realtime

Connect your frontend app to your tasks., url='https://trigger.dev/launchweek/0/realtime'
                                image
                                heading Trigger.dev Realtime
                                paragraph
                            [2102] link Concurrency & queues Control how many tasks run at once., center=(711,195), inner_text=Concurrency & queues

Control how many tasks run at once., url='https://trigger.dev/product/concurrency-and-queues'
                                image
                                heading Concurrency & queues
                                paragraph
                            [2108] link Scheduled tasks Durable cron schedules without timeouts., center=(711,255), inner_text=Scheduled tasks

Durable cron schedules without timeouts., url='https://trigger.dev/product/scheduled-tasks'
                                image
                                heading Scheduled tasks
                                paragraph
                            [2114] link Observability & monitoring Real-time monitoring and tracing of tasks., center=(711,315), inner_text=Observability & monitoring

Real-time monitoring and tracing of tasks., url='https://trigger.dev/product/observability-and-monitoring'
                                image
                                heading Observability & monitoring
                                paragraph
                            [2120] link Roadmap See what we're building next., center=(711,375), inner_text=Roadmap

See what we're building next., url='https://feedback.trigger.dev/roadmap'
                                image
                                heading Roadmap
                                paragraph
                                image
                                image
                listitem
                    [80] link Changelog, center=(686,29), url='https://trigger.dev/changelog'
                        button Changelog, expanded=False
                listitem
                    [113] link Blog, center=(771,29), url='https://trigger.dev/blog'
                        button Blog, expanded=False
                listitem
                    [146] link Docs, center=(835,29), url='https://trigger.dev/docs'
                        button Docs, expanded=False
                listitem
                    [255] link Pricing, center=(908,30), url='https://trigger.dev/pricing'
            list
                listitem
                    [259] link Trigger.dev Discord server, center=(1320,30), url='https://trigger.dev/discord'
                        image
                listitem
                    [262] link Trigger.dev GitHub repo, center=(1408,30), inner_text=Star 9.8k, url='https://github.com/triggerdotdev/trigger.dev'
                        image
                        StaticText Star
                        StaticText 9.8k
                listitem
                    [267] link Login, center=(1504,30), url='https://cloud.trigger.dev/'
                listitem
                    [269] link Get started, center=(1607,28), url='https://cloud.trigger.dev/'
    main
        heading Reliable background jobs without the headache of managing servers
        paragraph
            StaticText Trigger.dev has no timeouts, gives you control over concurrency, includes built-in monitoring, and scales to handle an elastic workload. You get all this and more without managing servers yourself.
        image
        heading Observability & monitoring
        image
        heading Concurrency & queues
        image
        heading Durable cron schedules
        image
        heading No infrastructure to manage
        image
        heading Advanced filtering
        image
        heading AI features
        image
        heading Automatic retries
        image
        heading Bulk replaying
        image
        heading Tag your tasks
        image
        heading Real-time alerts
        image
        heading Write normal code
        image
        heading Batch triggers
        image
        heading Long-running tasks
        image
        heading Checkpointing
        image
        heading Real-time alerts
        image
        heading Write normal code
        image
        heading Batch triggers
        image
        heading Long-running tasks
        image
        heading Checkpointing
        image
        heading Observability & monitoring
        image
        heading Concurrency & queues
        image
        heading Durable cron schedules
        image
        heading No infrastructure to manage
        image
        heading Advanced filtering
        image
        heading AI features
        image
        heading Automatic retries
        image
        heading Bulk replaying
        image
        heading Tag your tasks
        heading Feature spotlight
        [2255] link Trigger.dev Realtime Realtime is the bridge between your background tasks running on Trigger.dev and your frontend applications. It allows you to subscribe to runs and get live updates on the run status and more. Learn more, center=(654,932), inner_text=Trigger.dev Realtime

Realtime is the bridge between your background tasks running on Trigger.dev and your frontend applications. It allows you to subscribe to runs and get live updates on the run status and more.

Learn more, url='https://trigger.dev/docs/realtime/overview'
            Canvas
            heading Trigger.dev Realtime
            paragraph
            paragraph
        [2267] link Concurrency & queues Set concurrency rules to manage how multiple tasks execute. Run tasks sequentially or in parallel, and create custom queues for different users or tiers using concurrency keys. Learn more, center=(1265,932), inner_text=Concurrency & queues

Set concurrency rules to manage how multiple tasks execute. Run tasks sequentially or in parallel, and create custom queues for different users or tiers using concurrency keys.

Learn more, url='https://trigger.dev/product/concurrency-and-queues'
            Canvas
            heading Concurrency & queues
            paragraph
            paragraph
        link Durable cron schedules Create and attach recurring schedules of up to a year, which never hit a function timeout. These can be either created or attached in your codebase, or added in our dashboard. Learn more, url='https://trigger.dev/product/scheduled-tasks'
            Canvas
            heading Durable cron schedules
            paragraph
            paragraph
        link Observability & monitoring Our live run page, powered by OpenTelemetry, provides a real-time trace view of each run as it executes. This is great for viewing detailed logs of your task and debuging errors if they occur. Learn more, url='https://trigger.dev/product/observability-and-monitoring'
            Canvas
            heading Observability & monitoring
            paragraph
            paragraph
        heading Explore the full set of powerful features
        image
        heading No infrastructure to manage
        paragraph
            StaticText Your tasks are deployed and automatically scaled on Trigger.dev's long-running servers, which completely eliminates timeouts. This makes development easy without the worry of managing infrastructure.
        image
        heading Long-running tasks
        paragraph
            StaticText Trigger.dev makes it easy to run background jobs that take a long time to complete. So you can handle resource-heavy tasks like video processing, audio manipulation, PDF conversion, or large CSV processing all without timeouts.
        image
        heading AI features
        paragraph
            StaticText Trigger.dev is perfect for AI tasks that often exceed serverless timeouts, like waiting for LLM responses. Our
            link Realtime feature, url='https://trigger.dev/docs/realtime/overview'
            StaticText also lets you stream results directly to your frontend.
        image
        heading Checkpointing
        paragraph
            StaticText Tasks are inherently durable, thanks to our checkpointing feature. It allows the state of your task to be saved and resumed later, ensuring reliability. We also freeze tasks during waits meaning you only pay for task execution time.
        image
        heading Write normal code
        paragraph
            StaticText With Trigger.dev, you just write your usual async code, and it works seamlessly. No need to split your code into chunks to avoid serverless timeouts, as you deploy your tasks to our long-running servers.
            link Tasks docs, url='https://trigger.dev/docs/tasks-overview'
                image
                image
        image
        heading Batch triggering
        paragraph
            StaticText Use
            code
                StaticText batchTrigger()
            StaticText to initiate multiple runs of a task with custom payloads and options. For fanning-out scenarios,
            code
                StaticText batchTriggerAndWait()
            StaticText allows you to trigger multiple task instances and wait for all results before proceeding.
            link Batch triggering docs, url='https://trigger.dev/docs/triggering#task-batchtrigger'
                image
                image
        image
        heading Automatic retries
        paragraph
            StaticText If your task encounters an uncaught error, we automatically attempt to run it again. You can combine and nest tasks, triggering them from one another, with each task maintaining its own retry behavior.
            link Retrying docs, url='https://trigger.dev/docs/errors-retrying#errors-and-retrying'
                image
                image
        image
        heading Advanced filtering
        paragraph
            StaticText Easily
            link sort and find tasks, url='https://trigger.dev/changelog/v3-run-filters'
            StaticText based on status, environment,
            link tags, url='https://trigger.dev/changelog/run-tags'
            StaticText , and creation date. You can filter from the dashboard and programmatically via the SDK using
            code
                StaticText runs.list()
            StaticText .
        image
        heading Bulk replaying
        paragraph
            StaticText Create copies of multiple runs simultaneously, using the same payload but with the latest code version in your environment. This is particularly useful for replaying failed runs or testing updates across lots of tasks.
            link Replaying docs, url='https://trigger.dev/docs/replaying#bulk-replaying'
                image
                image
        image
        heading Real-time alerts
        paragraph
            StaticText Choose your
            link preferred notification method, url='https://trigger.dev/changelog/alerts'
            StaticText – email, Slack, or webhook – to stay updated on run failures, deployment issues, or successful deployments. We attempt runs multiple times based on your retry settings and alert you if an uncaught error occurs in any run.
            link Alerts docs, url='https://trigger.dev/docs/troubleshooting-alerts#alerts'
                image
                image
        image
        heading Tag your tasks
        paragraph
            StaticText Attach up to five
            link tags, url='https://trigger.dev/changelog/run-tags'
            StaticText to each run – strings between 1 and 64 characters – to serve as powerful identifiers. Use them to filter and organize your runs through both the dashboard and SDK.
            link Tags docs, url='https://trigger.dev/docs/tags#tags'
                image
                image
        image
        heading Test your tasks
        paragraph
            StaticText You can test your tasks in every environment using the
            link test page, url='https://trigger.dev/docs/run-tests#run-tests'
            StaticText in the Trigger.dev dashboard. This allows you to make sure everything is working correctly before pushing your tasks live.
        image React
        heading React hooks
        paragraph
            StaticText Interact with the Trigger.dev API using our
            link React hooks, url='https://trigger.dev/docs/frontend/react-hooks#react-hooks'
            StaticText package. You can use these to fetch runs, batches and subscribe to real-time updates.
        image
        heading Runtime schema payloads
        paragraph
            StaticText The
            code
                StaticText schemaTask
            StaticText function allows you to define a task with a
            link runtime payload schema, url='https://trigger.dev/docs/tasks/schemaTask#schematask'
            StaticText . This validates the payload before the task is run, or when a task is triggered directly. If a task is triggered with an invalid payload, the task will fail.
        image
        heading Versioning
        paragraph
            StaticText Atomic
            link versioning, url='https://trigger.dev/docs/versioning#versioning'
            StaticText allows you to deploy new versions of your code without affecting currently running tasks.
        image
        heading Waits
        paragraph
            StaticText You can add
            link waits, url='https://trigger.dev/docs/wait#wait-overview'
            StaticText to your tasks to pause execution for a specified duration. This is useful for writing complex tasks without having to schedule them manually or poll for changes.
        image
        heading Multiple environments
        paragraph
            StaticText Trigger.dev supports
            code
                StaticText DEV
            StaticText ,
            code
                StaticText STAGING
            StaticText , and
            code
                StaticText PROD
            StaticText environments, allowing your team to test and deploy your tasks in different environments without interrupting production.
        image
        heading Build extensions
        paragraph
            link Build extensions, url='https://trigger.dev/docs/config/extensions/overview#build-extensions'
            StaticText allow you to hook into the build system and customize the build process, or the resulting bundle and container image. They can add additional files, dependencies, esbuild plugins, npm dependencies, system packages, commands and environment variables.
        heading Run metadata
        paragraph
            StaticText Attach a small amount of
            link metadata, url='https://trigger.dev/docs/runs/metadata#run-metadata'
            StaticText to a run which updates as the run progresses. This data can be accessed from inside the run function, via the API, and in the dashboard.
        heading Ready to start building?
        paragraph
            StaticText Build and deploy your first task in 3 minutes.
        link Get started now, url='https://cloud.trigger.dev/'
    contentinfo
        link Trigger.dev logo, url='https://trigger.dev/product#top'
            image Trigger.dev logo
        link Discord link, url='https://trigger.dev/discord'
            image
        link GitHub link, url='https://github.com/triggerdotdev/trigger.dev'
            image GitHub
        link X (Twitter) link, url='https://twitter.com/triggerdotdev'
            image X
        link LinkedIn link, url='https://www.linkedin.com/company/triggerdotdev'
            image
        heading Docs
        link Introduction, url='https://trigger.dev/docs/introduction'
            paragraph
        link Quick start guide, url='https://trigger.dev/docs/quick-start'
            paragraph
        link Guides & examples, url='https://trigger.dev/docs/guides/introduction'
            paragraph
                StaticText Examples
        link Creating a task, url='https://trigger.dev/docs/writing-tasks-introduction'
            paragraph
        link Triggeing a task, url='https://trigger.dev/docs/triggering'
            paragraph
                StaticText Triggering a task
        link Self hosting, url='https://trigger.dev/docs/open-source-self-hosting'
            paragraph
        heading Developers
        link Docs, url='https://trigger.dev/docs'
            paragraph
        link Changelog, url='https://trigger.dev/changelog'
            paragraph
        link Contributing, url='https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md'
            paragraph
        link Open source, url='https://github.com/triggerdotdev/trigger.dev?tab=Apache-2.0-1-ov-file#readme'
            paragraph
        link GitHub, url='https://github.com/triggerdotdev/trigger.dev'
            image
            paragraph
        heading Product
        link Pricing, url='https://trigger.dev/pricing'
            paragraph
        link How it works, url='https://trigger.dev/#how-it-works'
            paragraph
        link Product, url='https://trigger.dev/product'
            paragraph
                StaticText Features
        link Roadmap, url='https://feedback.trigger.dev/roadmap'
            paragraph
        link FAQs, url='https://trigger.dev/pricing#faqs'
            paragraph
        link Uptime status, url='https://status.trigger.dev/'
            paragraph
        heading Company
        link Blog, url='https://trigger.dev/blog'
            paragraph
        link Email, url='https://trigger.dev/contact'
            paragraph
                StaticText Contact
        link Blog, url='https://trigger.dev/jobs'
            paragraph
                StaticText Careers
        link Privacy policy, url='https://trigger.dev/legal/privacy'
            paragraph
        link Terms and conditions, url='https://trigger.dev/legal'
            paragraph
        link OSS friends, url='https://trigger.dev/oss-friends'
            paragraph
        Iframe Uptime status
            RootWebArea, url='https://status.trigger.dev/badge?theme=dark'
                [a4] link All services are online, center=(457,3718), url='https://status.trigger.dev/'
                    image
        paragraph
            StaticText ©
            StaticText 2025
            StaticText Trigger.dev
    StaticText ,
    paragraph
        StaticText We only collect analytics cookies so we can improve your experience.
    [2023] link Privacy policy, center=(84,1037), url='https://trigger.dev/legal/privacy'
    [2027] button Opt-out, center=(209,1037), type=button
    [2030] button Accept, center=(283,1037), type=button

Reasoning for action: I chose to click on the 'All features' link because it aligns directly with the user's goal of exploring the features of Trigger.dev. By doing this, I am ensuring that the user is taken to a comprehensive list where they can evaluate whether these features meet their development needs. This action directly fulfills the user's objective of assessing Trigger.dev's offerings.

Action: click(2091) # Click on 'All features' link to see a comprehensive list of all features offered by Trigger.dev.

Change Description: After clicking the 'All features' link, the focus shifted to this link, indicating it is currently selected, while still displaying the information about product features. The button for expanding the Features section is still active and expanded, allowing users to view all features offered by Trigger.dev.

Screenshot before:Screenshot after:---