# Writing tasks: Overview

> Source: https://trigger.dev/docs/writing-tasks-introduction

Before digging deeper into the details of writing tasks, you should read the [fundamentals of tasks](https://trigger.dev/docs/tasks/overview)
 to understand what tasks are and how they work.

[​](https://trigger.dev/docs/writing-tasks-introduction#writing-tasks)

Writing tasks
---------------------------------------------------------------------------------------

| Topic | Description |
| --- | --- |
| [Logging](https://trigger.dev/docs/logging) | View and send logs and traces from your tasks. |
| [Errors & retrying](https://trigger.dev/docs/errors-retrying) | How to deal with errors and write reliable tasks. |
| [Wait](https://trigger.dev/docs/wait) | Wait for periods of time or for external events to occur before continuing. |
| [Concurrency & Queues](https://trigger.dev/docs/queue-concurrency) | Configure what you want to happen when there is more than one run at a time. |
| [Realtime notifications](https://trigger.dev/docs/realtime/overview) | Send realtime notifications from your task that you can subscribe to from your backend or frontend. |
| [Versioning](https://trigger.dev/docs/versioning) | How versioning works. |
| [Machines](https://trigger.dev/docs/machines) | Configure the CPU and RAM of the machine your task runs on |
| [Idempotency](https://trigger.dev/docs/idempotency) | Protect against mutations happening twice. |
| [Replaying](https://trigger.dev/docs/replaying) | You can replay a single task or many at once with a new version of your code. |
| [Max duration](https://trigger.dev/docs/runs/max-duration) | Set a maximum duration for your task to run. |
| [Tags](https://trigger.dev/docs/tags) | Tags allow you to easily filter runs in the dashboard and when using the SDK. |
| [Metadata](https://trigger.dev/docs/runs/metadata) | Attach a small amount of data to a run and update it as the run progresses. |
| [Usage](https://trigger.dev/docs/run-usage) | Get compute duration and cost from inside a run, or for a specific block of code. |
| [Context](https://trigger.dev/docs/context) | Access the context of the task run. |
| [Bulk actions](https://trigger.dev/docs/bulk-actions) | Run actions on many task runs at once. |
| [Priority](https://trigger.dev/docs/runs/priority) | Specify a priority when triggering a task. |
| [Hidden tasks](https://trigger.dev/docs/hidden-tasks) | Create tasks that are not exported from your trigger files but can still be executed. |

[​](https://trigger.dev/docs/writing-tasks-introduction#our-library-of-examples-guides-and-projects)

Our library of examples, guides and projects
----------------------------------------------------------------------------------------------------------------------------------------------------

Walkthrough guides
------------------

Detailed guides for setting up Trigger.dev with popular frameworks and services, including Next.js, Remix, Supabase, Stripe and more.

Example tasks
-------------

Task code you can copy and paste to use in your own projects, including OpenAI, Vercel AI SDK, Deepgram, FFmpeg, Puppeteer, Stripe, Supabase and more.

Webhook guides
--------------

Learn how to trigger tasks from webhooks, including Next.js, Remix, Supabase and Stripe and more.

Example projects
----------------

Full-stack projects demonstrating how to use Trigger.dev. Fork them in GitHub as a starting point for your own projects.

Was this page helpful?

YesNo

[Previous](https://trigger.dev/docs/mcp-agent-rules)
[Logging, tracing & metricsHow to use the built-in logging, tracing, and metrics system.\
\
Next](https://trigger.dev/docs/logging)

⌘I

Assistant

Responses are generated using AI and may contain mistakes.
