# Pagerless: full site text > On-call alerts for apps you built with AI: a phone call when it really breaks, a fix ready to approve. # Your app has a night shift now. > Pagerless watches the app you built and only wakes you when it really needs you. URL: https://pagerless.dev/ Updated: 2026-10-22 ## What wakes you, and what never does | Level | What happens | Used for | | --- | --- | --- | | Wake | iPhone push with **I'm on it**. No tap in 5 minutes: a phone call. Still nothing: the next person. | App down, crash loop, a burst of 5xx errors, payments failing | | Tell | One message (Slack, Telegram, email, push or webhook). No call. Waits for your quiet hours to end. | New errors that hurt a few users, a scheduled job that ran late | | Log | Recorded in the app and counted in your weekly email. Nothing sent. | Noise: a bot hitting a dead URL, one-off timeouts | Four signals are **floors**: app silent, crash loop, a 5xx burst and payments failing always wake someone. The AI can make an alert louder, never quieter, and when it is unsure the answer is tell, never log. [How it decides](https://pagerless.dev/docs/levels). ## Works with what you already run - [Next.js](https://pagerless.dev/integrations/nextjs): One instrumentation file. Errors, 5xx and slow failures from every route. - [Cloudflare Workers](https://pagerless.dev/integrations/cloudflare-workers): Wrap your handler with withPagerless. Undo a bad version deploy. - [Vercel](https://pagerless.dev/integrations/vercel): Roll back to the last good deployment with one tap. - [Go](https://pagerless.dev/integrations/go): Standard library only. net/http middleware, panics, check-ins. - [AWS CloudWatch](https://pagerless.dev/integrations/aws-cloudwatch): Alarms over SNS: ALARM opens a problem, OK closes it. - [Supabase](https://pagerless.dev/integrations/supabase): Restart or add compute when the database is the problem. [See all integrations](https://pagerless.dev/integrations): Node, Python, Go, Next.js, Django, Workers, Vercel, Railway, Render, Fly.io, AWS, Sentry, Datadog, Grafana, Stripe, OpenTelemetry and more. ## Pricing | Plan | Who | Price | | --- | --- | --- | | Free | You and one backup, up to 3 apps | $0, no card | | Team (planned) | More people and apps | Per alert sent, no per-seat price. Not open yet. | Phone calls go through your own Twilio account, so you pay Twilio's price and we never mark it up. [Pricing details](https://pagerless.dev/pricing). ## Questions ### What is Pagerless? Pagerless is an on-call alerting service for apps, built for people who ship with AI tools. It groups errors into problems, decides whether to wake you, tell you or just log it, explains what broke in plain words and gets a fix ready for one-tap approval. ### Is Pagerless a PagerDuty alternative? Yes, for solo developers and small teams. It covers the core of on-call (push, phone calls, escalation to a backup) and adds AI diagnosis and one-tap undo. It has no rotations or schedules yet. [Pagerless vs PagerDuty](https://pagerless.dev/vs/pagerduty). ### How do I set it up? Run `npx pagerless connect` in your repo. It finds your services, scheduled jobs and AWS alarms, shows the exact changes and applies them after you say yes. Or add `import "pagerless/auto"` to a Node app by hand. [Quickstart](https://pagerless.dev/docs/quickstart). ### Does it cost anything? Free covers you and one backup person and up to 3 apps, with no card. Phone calls use your own Twilio account at Twilio's price. --- # How Pagerless works > One real night, minute by minute: what Pagerless sees, what it decides, and the one thing it asks of you. URL: https://pagerless.dev/how-it-works Updated: 2026-10-22 ## The night | Time | What happens | Who does it | | --- | --- | --- | | 3:08 | You (or your AI) shipped an update at dinner. It reaches users now. The deploy marker records release `a41c9e`. | Your host | | 3:09 | Checkout calls to Stripe start failing. The SDK groups them into one problem: same error, same route. | Pagerless SDK | | 3:09 | Payment errors pass the floor: 3 or more, and at least 2% of payment requests. Floors always wake someone. | Pagerless | | 3:10 | The AI helper reads the scrubbed samples and the recent deploys: payments started failing 1 minute after the 3:08 update. | AI helper | | 3:10 | Your iPhone gets a push: "Payments down since the 3:08 update. Undo it?" with **Approve** and **Take over**. | Pagerless | | 3:11 | You tap Approve and confirm with Face ID. Undoing a deploy always needs a passkey. | You, 9 seconds | | 3:11 | Pagerless rolls back to the previous deployment through your host's API. | Pagerless | | 3:16 | It watches the error rate for 5 minutes. Payments are back to normal, so the problem closes. | Pagerless | | 8:00 | The problem page says what broke, what was done and what to fix in the code before you ship again. | AI helper | ``` FIXED. 6 MIN YOU SPENT 9 SEC ``` If you had not tapped within 5 minutes, Pagerless would have called you, then your backup. ## What Pagerless does with every error 1. **Collect** The SDK, OpenTelemetry, CloudWatch alarms or your own HTTP calls send errors, status codes, heartbeats, deploys and job check-ins. Secrets are scrubbed in the SDK and again on the server. 2. **Group** Errors with the same type, stack frames and route become one problem, so 400 identical errors are one alert, not 400. 3. **Decide** Each problem gets a level: **wake**, **tell** or **log**. Floors (app silent, crash loop, 5xx burst, payments failing) always wake. Otherwise the AI helper decides, and when it is unsure or slow the answer is tell, never log. 4. **Explain** The helper writes what broke and why in plain words, from the samples and recent deploys, and proposes a fix: undo the update, restart, add capacity, or a step for you or your coding agent. 5. **Reach you** Wake: push first, a phone call after 5 minutes without a tap, then the next person. Tell: one message, held until your quiet hours end. 6. **Fix and verify** Fixes your rules allow run alone. Risky ones wait for your approval. After any fix Pagerless watches the error rate, and if it did not help, it wakes a person rather than trying something else. ## What it will never do - Play down a floor signal. App silent, crash loop, 5xx burst and payments failing always wake someone. - Change your data. Data changes are always "never" in the rules, whoever asks. - Undo a deploy without a passkey (Face ID, Touch ID or a security key). - Follow instructions found inside error text. App data is treated as untrusted and fenced off from the model. - Read AI-written text aloud in a phone call. Calls use fixed wording. ## Questions ### What if I don't answer? Wake alerts push first. If nobody taps I'm on it within 5 minutes, Pagerless calls. If the call is not answered, it moves to the next person in your order, and so on. ### Does the AI decide everything? No. Floors are fixed rules the AI cannot override, your rules decide which fixes may run alone, and an unsure or failed decision always becomes tell, never log. ### Which AI model is it? Claude by Anthropic. App data sent to it is scrubbed first and is not used for training. --- # Pricing > Free for you and one backup. Phone calls go through your own Twilio account, so you pay Twilio's price and nothing more. URL: https://pagerless.dev/pricing Updated: 2026-10-22 | Plan | Free | Team (planned) | | --- | --- | --- | | Price | $0, no card | Per alert sent, no per-seat price | | People | You + 1 backup | More people | | Apps | Up to 3 | More apps | | Push, Slack, Telegram, email, webhook | Included | Included | | Phone calls | Your own Twilio account, at Twilio's price | Same | | AI helper | Included, with a monthly allowance | Included | | One-tap undo, restart, add capacity | Included | Included | | Scheduled job check-ins | Up to 200 per app | Up to 200 per app | | MCP server for AI agents | Included | Included | | Availability | Open now | Not open yet | [Start free](https://app.pagerless.dev/signup). No card, no trial clock. ## Why calls use your own Twilio account Phone calls cost real money per minute and per country. Instead of bundling a call allowance into a seat price, Pagerless places calls through your Twilio account, so you see the exact cost on Twilio's bill and we never add a margin. Push, Slack, Telegram, email and webhooks cost nothing extra. ## The AI helper allowance Each account has a monthly allowance for AI diagnosis. If it runs out, nothing goes quiet: floors still wake you, and other problems are sent to you as a message without the AI's diagnosis until the month resets. ## Questions ### Is Pagerless really free? Yes. The Free plan covers you and one backup person and up to 3 apps with no card and no time limit. Phone calls are billed by Twilio on your own account. ### How much will the Team plan cost? It is not priced yet. The plan is to charge per alert delivered, with no per-seat price, so a quiet month costs little. Upgrades are not open yet. ### Do I need Twilio? Only for phone calls. Push to the iPhone app, Slack, Telegram, email and webhooks work without it. ### Is there an SMS channel? No. Pagerless sends push, phone calls, Slack, Telegram, email and webhooks. --- # Security > Pagerless can undo your deploys, so it is built to be the safest thing in your stack: least access, loud failures and a record of everything. URL: https://pagerless.dev/security Updated: 2026-10-22 ## Your app's data - **Scrubbed twice.** The SDK removes secrets before anything leaves your server, and the server scrubs again before storing: API keys, bearer tokens and JWTs, key=value secrets, emails, phone numbers, card-like numbers (Luhn checked), long hex or base64 blobs and IP addresses. Query string values are dropped. - **Kept briefly.** At most 5 error samples per problem, kept for 30 days. - **Write-only ingest keys.** An ingest key can send events and nothing else. Only its SHA-256 hash is stored, and a revoked key stops working within 60 seconds. ## Credentials you give us Twilio, Slack and host tokens are stored with envelope encryption: AES-256-GCM with a separate data key per account, wrapped by a master key. Each secret is bound to its own name, so ciphertext cannot be moved to another secret. The public API and the MCP server never read secrets back. ## Approvals - Undoing a deploy, emailing customers and any data change need a passkey with user verification (Face ID, Touch ID or a security key). - Each fix kind is set to alone, ask or never. Data changes are always never; irreversible kinds can be at most ask. - AI agents connected over MCP can only propose fixes. Policy and a person decide. ## Audit log Every action, by a person, the AI helper or an agent, is written to a hash-chained log: each entry's hash covers the previous one, so editing or reordering any entry breaks the chain. The log is exported to storage with a 365-day write-once lock. ## Sign-in Passkeys, single-use email links that expire in 15 minutes, Google or GitHub. ## Where it runs Pagerless runs on Cloudflare Workers with one isolated Durable Object per customer account. A separate watchdog sends a test alert through the whole pipeline every minute and pages the operator if it does not come back. Outgoing webhooks are signed with HMAC-SHA256 (`Pagerless-Signature`). ## The AI helper Diagnosis uses Claude by Anthropic. Only scrubbed data is sent, it is not used for training, and error text is treated as untrusted data: instructions inside it are never followed. --- # MCP server for AI agents > Your coding agent can work production problems with you: read what broke, propose the fix, ask you a yes/no question and check the fix worked. Policy and a person stay in charge. URL: https://pagerless.dev/mcp-server Updated: 2026-10-22 ## Connect Create an API token in the Pagerless app, then add the server to your client. It is stateless Streamable HTTP with a bearer token. ```bash claude mcp add --transport http pagerless https://app.pagerless.dev/mcp --header "Authorization: Bearer plt_your_token" ``` ```json { "mcpServers": { "pagerless": { "url": "https://app.pagerless.dev/mcp", "headers": { "Authorization": "Bearer plt_your_token" } } } } ``` ## Tools | Tool | What it does | | --- | --- | | `problem_list` | Lists problems, open ones by default. | | `problem_get` | One problem in full: the diagnosis, up to 5 scrubbed samples and recent deploys. App text is marked untrusted. | | `action_propose` | Proposes a fix. The answer is runs alone, waiting for a human, or refused, decided by your rules. | | `action_status` | Where a proposed fix stands. | | `action_report` | After the agent carried out an approved fix itself (say, a code change), reports whether it worked. | | `human_ask` | Asks the on-call person one yes/no question. A yes never bypasses policy. | | `human_answer_get` | Reads the answer to a human_ask. | | `verify` | Watches the problem's error rate for 10 to 120 seconds (default 60). | | `problem_resolve` | Closes a problem with a plain-words summary. | ## Limits and safety - 120 requests per minute per token. - Every call is written to the audit log as the agent's token. - Agents never act on production directly: a fix runs only if your rules allow it, or a person approves it. - Discovery file for agents: [/.well-known/mcp.json](https://pagerless.dev/.well-known/mcp.json). ## Questions ### Which agents work with it? Any client that speaks MCP over Streamable HTTP with a bearer header, such as Claude Code, Claude Desktop, Cursor and VS Code. ### Can the agent roll back production on its own? Only if your rules set that fix kind to alone. When a person has to approve an undo, the approval always needs a passkey. --- # About Pagerless > More people than ever ship real apps with AI. Few of them have an on-call team. Pagerless is that team: it watches, explains, fixes what it safely can, and wakes a person only when it must. URL: https://pagerless.dev/about Updated: 2026-10-22 ## What we believe - A failed alert path must get louder, never quieter. Unsure means tell, never log. - Plain words over jargon: "Undo the 3:08 update", not "rollback v142". - Your phone bill is yours: calls go through your own Twilio account, never marked up. - Nothing that watches your app should run only on the cloud it watches. ## What we won't do We publish no customer logos, testimonials, reviews or star ratings. When we have customers who agree to be named, we will link to them. Until then, any quote attributed to Pagerless customers is not from us. ## Who builds it Pagerless is built by Lokesh Basu. The SDKs are open source under the MIT license: [pagerless on npm](https://www.npmjs.com/package/pagerless) and [pagerless-go](https://pkg.go.dev/github.com/lcbasu/pagerless-go). ## Facts - Site: pagerless.dev. App: app.pagerless.dev. Events: events.pagerless.dev. - Runs on Cloudflare Workers. - iPhone app; no Android app yet. --- # Status > An alerting service has to know it is broken before you do. Every minute, a test alert goes through the whole pipeline and must come back. URL: https://pagerless.dev/status Updated: 2026-10-22 ## The canary 1. **Send** Every minute a separate watchdog Worker sends a test event to the public events address, exactly like your app does. 2. **Travel** It goes through ingest, grouping, the decision and delivery, and ends as a signed webhook back to the watchdog. 3. **Page the operator** If the webhook does not arrive, the watchdog calls the operator, then sends SMS and email, backing off on repeats. ## Targets The goal is 99.99% availability and under 30 seconds from an event arriving to the first delivery attempt (p99). These are targets, not published measurements. > A public status page with live history is planned. Until it ships, the app at app.pagerless.dev shows your own account's alert health, including a daily test of every channel. --- # Changelog > The changes you would notice, newest first. URL: https://pagerless.dev/changelog Updated: 2026-10-22 ## October 22, 2026 - **One command setup.** [`npx pagerless connect`](https://pagerless.dev/docs/connect) finds your services, scheduled jobs and AWS alarms, shows every change and applies them after you approve in the browser with your passkey. - **AWS CloudWatch alarms.** Point an SNS topic at Pagerless: ALARM opens a problem, OK closes it. [Set up](https://pagerless.dev/integrations/aws-cloudwatch). - **Scheduled job check-ins.** Cron and interval jobs report each run; a missed or failed run tells you, or wakes you if you choose. [Docs](https://pagerless.dev/docs/check-ins). - **Go SDK v0.1.0.** Standard library only. [Go setup](https://pagerless.dev/integrations/go). - **pagerless on npm v0.1.1.** Node, Workers, Pages, Vercel Edge and the browser. ## October 2026: first release - **One escalation per problem.** A problem never pages you twice in parallel. - **Payments failing wakes at once.** Payment failures are a floor signal. - **Alerts say what to tap.** A push that waits for approval says Approve or Take over, not I'm on it. - **Production on pagerless.dev.** The app, the events address and this site. --- # Docs > Start with the quickstart. Everything else is reference you will rarely need. URL: https://pagerless.dev/docs Updated: 2026-10-22 - [Quickstart](https://pagerless.dev/docs/quickstart): From nothing to your first alert in about five minutes. - [npx pagerless connect](https://pagerless.dev/docs/connect): What the setup command finds, changes and asks. - [Wake, tell, log](https://pagerless.dev/docs/levels): How Pagerless decides how loud to be, and the four floors. - [Alert channels](https://pagerless.dev/docs/alert-channels): iPhone push, phone calls, Slack, Telegram, email, webhooks. - [Fixes and approvals](https://pagerless.dev/docs/fixes-and-approvals): Undo, restart, add capacity; alone, ask or never. - [Events API](https://pagerless.dev/docs/events-api): Send errors and events from any language over HTTP. - [Scheduled job check-ins](https://pagerless.dev/docs/check-ins): Know when a cron job is late, missed or failed. - [OpenTelemetry](https://pagerless.dev/docs/opentelemetry): Send OTLP logs and traces from any language. - [The AI helper](https://pagerless.dev/docs/ai-helper): What it reads, what it writes, what it never does. - [MCP server](https://pagerless.dev/mcp-server): Let your coding agent work production problems with you. --- # Quickstart > Sign up, run one command in your repo, deploy. Your setup screen lights up when the first service checks in. URL: https://pagerless.dev/docs/quickstart Updated: 2026-10-22 1. **Create your account** [Sign up](https://app.pagerless.dev/signup) with a passkey, Google, GitHub or an email link. No card. 2. **Install the iPhone app** Sign in and allow notifications, so wake alerts reach your lock screen. Add your phone number for calls if you use Twilio. 3. **Connect your repo** In your project folder, run the command below. It signs you in through the browser, shows every change it will make, and applies them only after you say yes. ``` npx pagerless connect ``` 4. **Deploy as usual** Your setup screen lights up when the first service sends a heartbeat. Nothing else to configure. 5. **Pick your backup** Add one person to call if you don't answer within 5 minutes. They need their own account and phone. ## Prefer to do it by hand? In a Node app, install the package and import it first thing: ```bash npm i pagerless ``` ```js import "pagerless/auto"; // first line of your server entry ``` Then set `PAGERLESS_KEY` in your host's environment. Other stacks: [all integrations](https://pagerless.dev/integrations). ## Questions ### Does connect change my code without asking? No. It prints the plan and the exact diff first and asks "Apply these changes?". `--dry-run` shows the plan without signing in or changing anything. ### Where does my key go? Into your host's secret store where it can (Wrangler secrets, Vercel env, AWS SSM for ECS), otherwise into `.env.local`, which connect adds to `.gitignore`. --- # npx pagerless connect > One command reads your repo, finds what to watch, and shows the exact changes. Nothing changes until you approve. URL: https://pagerless.dev/docs/connect Updated: 2026-10-22 ```bash npx pagerless connect ``` ## What happens 1. **Sign in** It prints a sign-in link and a code and opens your browser. Check the page shows the same code, then allow with your passkey. 2. **Pick the app** It uses your repo's folder name (or `--project`) and creates the app if needed. 3. **Find what to watch** Services, scheduled jobs and AWS alarms, listed with the files it will touch. 4. **Show the diff** Every edit is an insertion, shown in full. It asks "Apply these changes?" 5. **Apply** Writes the edits, creates one ingest key and stores it in the right place, installs the package, and prints what to run next. ## What it detects | Stack | Found by | Change it makes | | --- | --- | --- | | JavaScript frameworks | Next.js, Nuxt, SvelteKit, Astro, Remix, React Router (Shopify apps too), NestJS, Express, Fastify, Koa, Hono, tRPC | Adds that framework's Pagerless hook (see its [integration page](https://pagerless.dev/integrations)) | | Mobile and desktop | Expo, React Native, Electron | Adds the Pagerless init for that runtime | | Vite single-page apps | react, vue, svelte, solid-js or preact with Vite | Browser init with `VITE_PAGERLESS_KEY` | | Deno | deno.json | `import "npm:pagerless@^0.2.0/auto"` | | Cloudflare Workers | wrangler.toml / .json / .jsonc with `main` | `export default withPagerless(...)` | | Cloudflare Pages | `pages_build_output_dir` or a functions/ folder | Creates or chains `functions/_middleware` | | Go | each `func main` run by a Dockerfile; Gin, Echo, Fiber, chi, gorilla/mux, gRPC, Temporal | `pagerless.Init`, `defer pagerless.Close`, and that framework's adapter or `pagerless.Middleware(h)` | | AWS (Terraform) | SNS topics, CloudWatch alarms, ECS, Lambda, schedulers | SNS subscription to Pagerless, ECS key from SSM | | Scheduled jobs | Wrangler crons, EventBridge, AWS Scheduler, Temporal | A check-in line per job | | Other monitoring tools | Alertmanager (incl. AlertmanagerConfig), Grafana provisioning or Terraform, Datadog Terraform, Sentry | Prints the receiver, contact point or webhook to add; for tools set up in their own UI, points you to the URL in the app | | Python | Lambda runtimes in Terraform | Nothing yet: add the [Python SDK](https://pagerless.dev/integrations/python) by hand | ## Flags | Flag | What it does | | --- | --- | | `--dry-run` | Shows the plan and diff, changes nothing, needs no sign-in. | | `--yes`, `-y` | Skips the confirm prompt (CI). The browser approval is still needed. | | `--project ` | App name. Default: the repo folder name. | | `--aws-profile

` | AWS profile for SNS and SSM commands. | | `--no-install` | Don't run the package install. | | `--no-open` | Print the sign-in link instead of opening a browser. | ## Undo access To let Pagerless undo a bad deploy, connect offers a Cloudflare API token page prefilled with Workers Scripts edit and Pages edit, or an AWS CloudFormation quick-create link for a `pagerless-undo` role with an external ID. You can skip both. --- # Wake, tell, log > Every problem gets one of three levels. The rules are simple, and they only ever fail toward louder. URL: https://pagerless.dev/docs/levels Updated: 2026-10-22 | Level | What is sent | Quiet hours | | --- | --- | --- | | Wake | Push to your phone with I'm on it. No tap in 5 minutes: a phone call. No answer: the next person, push then call. | Ignored: wake always goes through | | Tell | One message to the first person who can be reached (push, Slack, Telegram, email or webhook). No call. | Held until they end | | Log | Nothing. Recorded on the problem and counted in the weekly email. | n/a | ## The four floors These always wake someone. The AI is never asked about them, and they are checked before anything else. | Floor | Fires when | | --- | --- | | App silent | No heartbeat for 5 minutes (the SDK sends one every 60 seconds) | | Crash loop | 3 or more restarts | | 5xx burst | 10 or more server errors, at least 5% of requests and at least 3× your normal rate | | Payments failing | 3 or more payment errors, and at least 2% of payment requests when request counts are known | ## The decision order 1. Floor? Wake. 2. Same as the normal background for this app? Log. 3. AI allowance used up? Tell, without the diagnosis. 4. Otherwise the AI helper (Claude) picks the level from the scrubbed samples and recent deploys. 5. If the AI is unsure, slow or fails: tell. Never log. > A failed alert path gets louder, never quieter. That rule is in the code, not just this page. --- # Alert channels > Wake alerts push first and call second. Tell alerts go to one place. Every channel is tested once a day so a broken one is found before you need it. URL: https://pagerless.dev/docs/alert-channels Updated: 2026-10-22 | Channel | Used for | Notes | | --- | --- | --- | | iPhone app | Wake and tell | Time-Sensitive notifications with Approve, I'm on it, Take over and Open. Approve with Face ID. | | Phone call | Wake, after 5 minutes without a tap | Through your own Twilio account. Reads the problem aloud with fixed wording; press 1 to acknowledge. | | Slack | Tell, and wake's first step | Posts to a channel you choose. | | Telegram | Tell, and wake's first step | Messages from a bot to you. | | Email | Tell and the weekly summary | One email per person per week with what happened. | | Webhook | Anything | Signed with HMAC-SHA256 in `Pagerless-Signature: t=…,v1=…`. | ## Not available - SMS: there is no SMS channel. - Android: no Android app yet. - Silent-mode bypass (Critical Alerts) on iPhone: requested from Apple, not granted yet. Pagerless uses Time-Sensitive notifications, which break through Focus but not the silent switch, and follows up with a phone call. ## Quiet hours Set start, end and time zone for your account. Tell alerts wait until quiet hours end. Wake alerts always go through. Each channel can override the account setting. --- # Fixes and approvals > Pagerless can undo a bad deploy, restart or add capacity through your host's API. Your rules decide which run alone and which wait for you. URL: https://pagerless.dev/docs/fixes-and-approvals Updated: 2026-10-22 ## Kinds of fix | Kind | Who carries it out | | --- | --- | | Undo the update | Pagerless, through the host's API (rollback, older version or revision) | | Restart | Pagerless, through the host's API | | Add capacity | Pagerless, through the host's API (instances, replicas, compute) | | Pause | Guided step, or your coding agent | | Open a pull request | Your coding agent over MCP | | Email customers | Guided step; always needs your approval | | Data change | Never. Not even if you ask. | ## Rules: alone, ask, never Each kind is set to **alone** (runs without asking), **ask** (waits for a person) or **never**. Presets: careful, balanced and hands-off. Irreversible kinds can be at most ask. Data changes are always never. ## Approvals Approving an undo, a customer email or a data-related step needs a passkey with user verification: Face ID, Touch ID or a security key. Other approvals are a signed-in tap. An approval expires after 10 minutes. ## After a fix Pagerless watches the error rate for 5 minutes, up to 4 windows. If the errors stop, the problem closes. If they don't, the fix is left in place (never auto-reverted) and a person is woken. --- # Events API > Any language that can make an HTTPS request can send to Pagerless. The SDKs use this same API. URL: https://pagerless.dev/docs/events-api Updated: 2026-10-22 ```bash curl -X POST https://events.pagerless.dev/v1/events \ -H "Authorization: Bearer $PAGERLESS_KEY" \ -H "Content-Type: application/json" \ -d '{"events":[{"v":1,"id":"evt_2026_10_22_0001","type":"error","ts":'$(date +%s000)',"service":"api","route":"POST /checkout","status":500,"error":{"type":"StripeError","message":"card_declined rate spike"}}]}' ``` A valid batch returns `202`. A missing or wrong key returns `401`. ## Endpoints | Path | Body | | --- | --- | | `POST /v1/events` | `{"events": [...]}`, 1 to 500 events | | `POST /v1/heartbeat` | `{"service", "env", "release"}` or `?service=` | | `POST /v1/checkins/` | Empty means ok. See [check-ins](https://pagerless.dev/docs/check-ins). | | `POST /v1/otlp/v1/logs`, `/v1/otlp/v1/traces`, `/v1/otlp/v1/metrics` | OTLP over HTTP, protobuf or JSON. See [OpenTelemetry](https://pagerless.dev/docs/opentelemetry). | | `POST /v1/hooks//` | Alerts from 14 monitoring tools. See [alert sources](https://pagerless.dev/integrations#alert-sources). | | `POST /v1/aws/sns` | SNS notifications. See [CloudWatch](https://pagerless.dev/integrations/aws-cloudwatch). | ## Event fields | Field | Required | Meaning | | --- | --- | --- | | `v` | yes | Always `1` | | `id` | yes | 8 to 64 characters; the idempotency key (a retry with the same id counts once) | | `type` | yes | `error`, `metric`, `heartbeat`, `deploy`, `custom`, `resolve` or `checkin` | | `ts` | yes | Unix time in milliseconds | | `service` | yes | Which service, for example `api` | | `env` | no | Default `production` | | `release` | no | Commit or version; lets the AI connect errors to a deploy | | `route`, `status` | no | `POST /checkout`, `500` | | `error` | no | `{type, message, stack?}` | | `fingerprint` | no | Your own grouping key; computed if missing | | `count`, `window_s` | no | Pre-aggregated count over a window | | `metric` | no | `{name, value, unit?}` | | `severity`, `title` | no | For `custom` events: `wake`, `tell` or `log` | | `tags` | no | String map | ## Auth and limits - `Authorization: Bearer `. Keys look like `pl_live_` plus 32 hex characters and can only write. - 1 MB per request, 500 events per batch, 600 requests per minute per key (`429` with `retry-after`). - CORS is open, so the browser SDK can send directly. --- # Scheduled job check-ins > Each run of a job pings Pagerless. If a run is late, missed or fails, you hear about it, at the level you choose. URL: https://pagerless.dev/docs/check-ins Updated: 2026-10-22 ## From your code ```js import { monitor } from "pagerless"; await monitor("nightly-backup", { cron: "30 3 * * *", tz: "America/New_York" }, () => backup()); ``` ```go err := pagerless.Monitor(ctx, "nightly-backup", pagerless.Schedule{Cron: "30 3 * * *"}, func(ctx context.Context) error { return backup(ctx) }) ``` ```bash curl -X POST https://events.pagerless.dev/v1/checkins/nightly-backup -H "Authorization: Bearer $PAGERLESS_KEY" ``` `monitor` reports ok with the duration, or failed with the error message and rethrows. An empty POST counts as ok; send `{"status":"failed","message":"..."}` for a failure. ## Schedules | Field | Meaning | | --- | --- | | `cron` | 5 fields (`30 3 * * *`), ranges, steps, lists, names, or `@hourly` `@daily` `@weekly` `@monthly` `@yearly`. Daylight-saving aware. | | `expectEverySeconds` | Instead of cron: an interval from 60 seconds to 400 days. | | `tz` | IANA zone, such as `Europe/Berlin`. Default: your account's zone, else UTC. | | `graceSeconds` | How late a run may be. Default: a tenth of the gap, between 5 minutes and 1 hour. | | `level` | `tell` (default) or `wake`. Never log: a job nobody hears about isn't watched. | Job names are 1 to 64 lowercase letters, digits, dots, dashes or underscores. Up to 200 per app. A job is watched from its first ping; editing it in the app overrides what the code sends. Converting an AWS `cron(...)` or `rate(...)` expression? Use the [cron to check-in tool](https://pagerless.dev/tools/cron-check-in). --- # OpenTelemetry > No SDK for your language? If it speaks OpenTelemetry, Pagerless can listen: OTLP over HTTP, protobuf or JSON. URL: https://pagerless.dev/docs/opentelemetry Updated: 2026-10-22 ## What counts as a problem - Logs with severity ERROR or higher. - Traces with an `exception` span event, or a SERVER span that answered 5xx. - Metrics: `http.server.request.duration` (or `http.server.duration`) histograms with delta temporality become request counts per route and status, so the 5xx floor works. Cumulative points are skipped. ## Exporter settings ```bash OTEL_EXPORTER_OTLP_ENDPOINT=https://events.pagerless.dev/v1/otlp OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer pl_live_..." OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta ``` `http/json` works too, gzip-compressed or not. gRPC is not accepted: use OTLP over HTTP. Paths: `/v1/otlp/v1/logs`, `/v1/otlp/v1/traces`, `/v1/otlp/v1/metrics`. A partly bad batch returns 200 with partial-success counts. ## Through an OpenTelemetry Collector ```yaml receivers: otlp: protocols: grpc: http: exporters: otlphttp/pagerless: endpoint: https://events.pagerless.dev/v1/otlp headers: Authorization: "Bearer ${env:PAGERLESS_KEY}" service: pipelines: logs: receivers: [otlp] exporters: [otlphttp/pagerless] traces: receivers: [otlp] exporters: [otlphttp/pagerless] ``` --- # The AI helper > It reads the scrubbed error samples and recent deploys, explains what broke in plain words and proposes a fix. It cannot make an alert quieter than the rules allow. URL: https://pagerless.dev/docs/ai-helper Updated: 2026-10-22 ## What it does - Picks wake, tell or log for problems that are not floors. - Writes what broke, why, and a plan, with a confidence. - Proposes a fix from the kinds your rules allow. - Writes the plain-words summary you see on the problem page and in the weekly email. ## What it sees Up to 5 scrubbed samples per problem, the route and status, counts over time and recent deploy markers. Never your stored credentials. ## Hard limits - Cannot demote a floor; floors are decided before it runs. - Error text is fenced as untrusted data. Instructions inside it are ignored. - Cannot propose a data change or a kind outside your rules. - Its words are never read aloud in a phone call. - Unsure, slow or failed means tell, never log. ## Model and allowance Claude by Anthropic. Data is scrubbed before it is sent and is not used for training. Each account has a monthly AI allowance; when it runs out, problems are still sent to you, without the diagnosis, until the month resets. --- # Integrations > Pick your language, framework or host. Every page has the real setup line and exactly what Pagerless can fix there. URL: https://pagerless.dev/integrations Updated: 2026-10-22 ## Languages - [Node.js](https://pagerless.dev/integrations/nodejs): One import at the top of your entry file covers any Node server. Framework hooks add the errors your framework catches itself. - [Go](https://pagerless.dev/integrations/go): Standard library only. Init, defer Close, wrap your handler. - [Python](https://pagerless.dev/integrations/python): One package, standard library only. Django, Flask, FastAPI and any ASGI or WSGI app, Celery, AWS Lambda and logging. - [HTTP and curl](https://pagerless.dev/integrations/curl): If it can make an HTTPS request, it can page you. The SDKs use the same API. - [OpenTelemetry](https://pagerless.dev/integrations/opentelemetry): Errors in your OTLP logs and traces become Pagerless problems: grouped, explained and routed to the right person. Any OpenTelemetry SDK, protobuf or JSON. - [Browser apps](https://pagerless.dev/integrations/browser): For dashboards and single-page apps: uncaught errors and promise rejections from the page, grouped by path. ## JavaScript and TypeScript frameworks - [Next.js](https://pagerless.dev/integrations/nextjs): One line in `instrumentation.ts` covers pages, layouts, route handlers, server actions and middleware, on Node and the edge. - [Nuxt](https://pagerless.dev/integrations/nuxt): One server plugin hooks Nitro's `error` hook: API routes, server rendering and middleware. - [SvelteKit](https://pagerless.dev/integrations/sveltekit): Export `handleError` from your hooks. Load functions, form actions, endpoints and rendering are covered; 404s and expected errors are skipped. - [Astro](https://pagerless.dev/integrations/astro): One middleware export, or the integration in `astro.config`. Errors from pages, endpoints and later middleware are reported and re-thrown. - [Remix and React Router](https://pagerless.dev/integrations/remix): Export `handleError` from the server entry. Shopify apps built on the Remix or React Router template work the same way. - [Express](https://pagerless.dev/integrations/express): One error handler after your routes. Routes are grouped by Express's own pattern, so `/orders/:id` is one route, not thousands. - [Fastify](https://pagerless.dev/integrations/fastify): One call registers an `onError` hook. - [Koa](https://pagerless.dev/integrations/koa): Add it as the first middleware. It reports and re-throws, so your error handling is unchanged. - [NestJS](https://pagerless.dev/integrations/nestjs): One line after `NestFactory.create`, or register the exception filter yourself. - [Hono](https://pagerless.dev/integrations/hono): One middleware right after `new Hono()`, on every runtime Hono runs on. - [tRPC](https://pagerless.dev/integrations/trpc): One adapter option. Only `INTERNAL_SERVER_ERROR` is reported; bad input and auth errors are your users' business, not an alert. - [Bun](https://pagerless.dev/integrations/bun): The same one import as Node. Bun gets its own build. - [Deno](https://pagerless.dev/integrations/deno): One import from npm. Deno gets its own build. - [Electron](https://pagerless.dev/integrations/electron): Main-process crashes, crashed renderers and GPU or child processes, grouped into problems you can act on. - [React Native and Expo](https://pagerless.dev/integrations/react-native): JS errors and fatal crashes from your app, sent within 1.5 seconds of a fatal one, with an in-memory queue for when the phone is offline. - [React](https://pagerless.dev/integrations/react): An error boundary, or React's root error options. Start the client first with the browser or React Native SDK. - [Vite (React, Vue, Svelte)](https://pagerless.dev/integrations/vite): For single-page apps built with Vite. The key comes from `VITE_PAGERLESS_KEY`. - [Next.js on Vercel](https://pagerless.dev/integrations/nextjs-vercel): The most common stack for apps built with AI, and the one where Pagerless can do the most: catch it, explain it, roll it back. - [Hono on Cloudflare Workers](https://pagerless.dev/integrations/hono-cloudflare-workers): One middleware reads the key from the Worker's env and sends in waitUntil. On pagerless 0.1, wrap `app.fetch` instead. ## Go frameworks - [Gin](https://pagerless.dev/integrations/gin): One middleware, after Gin's recovery and before your routes. - [Echo](https://pagerless.dev/integrations/echo): One middleware after `middleware.Recover()`. Echo v4 and v5 each have an adapter. - [Fiber](https://pagerless.dev/integrations/fiber): One middleware after `recover.New()`. Fiber v2 and v3 each have an adapter. - [chi and gorilla/mux](https://pagerless.dev/integrations/chi): One middleware each. Routes are reported by their pattern, so `/orders/{id}` is one route. - [gRPC (Go)](https://pagerless.dev/integrations/grpc): Interceptors for both sides. Each method becomes a route like `gRPC /shop.Orders/Get`. - [Temporal](https://pagerless.dev/integrations/temporal): One worker interceptor. Failed activities and workflows are reported, and every Temporal Schedule becomes a check-in. ## Python frameworks - [Django](https://pagerless.dev/integrations/django): Add the app and put the middleware first. Request rate, errors and latency per URL pattern, and every 500. - [Flask](https://pagerless.dev/integrations/flask): Two lines. Metrics per URL rule, and every exception Flask turns into a 500. - [FastAPI and Starlette](https://pagerless.dev/integrations/fastapi): One ASGI middleware for FastAPI, Starlette, Django on ASGI or any ASGI app. - [Celery](https://pagerless.dev/integrations/celery): One call. Task failures are reported, and every `beat_schedule` entry becomes a check-in named after it. ## Hosts and clouds - [Vercel](https://pagerless.dev/integrations/vercel): Undo · Restart - [Netlify](https://pagerless.dev/integrations/netlify): Undo · Restart - [Cloudflare Workers](https://pagerless.dev/integrations/cloudflare-workers): Undo - [Cloudflare Pages](https://pagerless.dev/integrations/cloudflare-pages): Undo - [Railway](https://pagerless.dev/integrations/railway): Undo · Restart · Scale - [Render](https://pagerless.dev/integrations/render): Undo · Restart · Scale - [Fly.io](https://pagerless.dev/integrations/fly-io): Undo · Restart · Scale - [Heroku](https://pagerless.dev/integrations/heroku): Undo · Restart · Scale - [DigitalOcean App Platform](https://pagerless.dev/integrations/digitalocean): Undo · Restart · Scale - [Koyeb](https://pagerless.dev/integrations/koyeb): Undo · Restart · Scale - [Northflank](https://pagerless.dev/integrations/northflank): Undo · Restart · Scale - [Coolify](https://pagerless.dev/integrations/coolify): Undo · Restart - [AWS ECS](https://pagerless.dev/integrations/aws-ecs): Undo · Restart · Scale - [AWS Lambda](https://pagerless.dev/integrations/aws-lambda): Undo · Scale - [AWS Amplify](https://pagerless.dev/integrations/aws-amplify): Undo - [Google Cloud Run](https://pagerless.dev/integrations/google-cloud-run): Undo · Restart · Scale - [Firebase Hosting](https://pagerless.dev/integrations/firebase-hosting): Undo - [Azure App Service](https://pagerless.dev/integrations/azure-app-service): Undo · Restart · Scale - [Azure Container Apps](https://pagerless.dev/integrations/azure-container-apps): Undo · Restart · Scale - [Hugging Face Spaces](https://pagerless.dev/integrations/hugging-face-spaces): Restart · Scale - [Appwrite](https://pagerless.dev/integrations/appwrite): Undo · Restart · Scale ## Databases and backends - [Supabase](https://pagerless.dev/integrations/supabase): Restart · Scale - [Neon](https://pagerless.dev/integrations/neon): Undo · Restart · Scale - [Convex](https://pagerless.dev/integrations/convex): Pause / unpause ## AI app builders - [Lovable](https://pagerless.dev/integrations/lovable): Alerts plus guided undo steps - [Replit](https://pagerless.dev/integrations/replit): Alerts plus guided undo steps - [Bolt](https://pagerless.dev/integrations/bolt): Alerts plus guided undo steps - [Expo (EAS Update)](https://pagerless.dev/integrations/expo): Alerts plus guided undo steps ## Alert sources - [AWS CloudWatch alarms](https://pagerless.dev/integrations/aws-cloudwatch): Subscribe your SNS topic to Pagerless. ALARM opens a problem, OK closes it, and alarm-name rules decide who gets woken. - [AWS EventBridge](https://pagerless.dev/integrations/aws-eventbridge): Send EventBridge events through an SNS topic subscribed to Pagerless. Alarm state changes group with the same alarm's SNS actions. - [Terraform on AWS](https://pagerless.dev/integrations/terraform-aws): If your AWS lives in Terraform, connect reads it and writes one file, `pagerless.tf`, for you to apply. - [Prometheus Alertmanager](https://pagerless.dev/integrations/prometheus-alertmanager): Each alert with status firing (one problem per alert in a group). - [Grafana](https://pagerless.dev/integrations/grafana): Firing alerts (unified alerting), or state alerting (legacy). - [Datadog](https://pagerless.dev/integrations/datadog): Triggered, Warn and No Data transitions. - [New Relic](https://pagerless.dev/integrations/new-relic): Issue state ACTIVATED or CREATED (legacy: open). - [Google Cloud Monitoring](https://pagerless.dev/integrations/google-cloud-monitoring): Incident state open. - [Azure Monitor](https://pagerless.dev/integrations/azure-monitor): MonitorCondition Fired. - [Sentry](https://pagerless.dev/integrations/sentry): Issue alerts, and metric alerts at critical or warning. - [Better Stack](https://pagerless.dev/integrations/better-stack): Incident status started. - [UptimeRobot](https://pagerless.dev/integrations/uptimerobot): Down alerts, and SSL alerts. - [Pingdom](https://pagerless.dev/integrations/pingdom): State DOWN or FAILING. - [Checkly](https://pagerless.dev/integrations/checkly): Failure; degraded and SSL alerts as warnings. - [Stripe](https://pagerless.dev/integrations/stripe): Failed payments, counted as errors on the payments route. - [GitHub Actions](https://pagerless.dev/integrations/github-actions): A workflow run on the default branch that ends in failure, timed out or startup failure. - [Any tool (JSON webhook)](https://pagerless.dev/integrations/generic-webhook): Status firing (title required); up to 100 alerts in `{"alerts": [...]}`. ## Alert channels - [Phone calls through your Twilio](https://pagerless.dev/integrations/twilio): Wake alerts call you after 5 minutes without a tap. Calls go through your Twilio account, so you pay Twilio and nothing more. - [Slack](https://pagerless.dev/integrations/slack): One message per problem in the channel you pick, with what broke and the fix waiting for approval. - [Telegram](https://pagerless.dev/integrations/telegram): Alerts as messages from your own Telegram bot, on any phone, including Android. - [Webhooks](https://pagerless.dev/integrations/webhooks): Every alert as signed JSON to a URL you choose. > Tool not listed? Anything that can POST JSON can use the [generic webhook](https://pagerless.dev/integrations/generic-webhook) or the [events API](https://pagerless.dev/docs/events-api). --- # Pagerless for Node.js > One import at the top of your entry file covers any Node server. Framework hooks add the errors your framework catches itself. URL: https://pagerless.dev/integrations/nodejs Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```js import "pagerless/auto"; // first line of your server entry ``` Set `PAGERLESS_KEY` (your ingest key from the Pagerless app) in your host's environment. Without it the SDK does nothing, so local dev stays quiet. CommonJS: `require("pagerless/auto")`. Or start it in code: `require("pagerless").init({ service: "api" })`. ## What it catches - Uncaught exceptions and unhandled promise rejections (your process still exits as before; Pagerless flushes for up to 2 seconds first). - Status and latency for every route of any `node:http` server, using the route pattern when your framework provides one. - Failing calls to other services: 5xx, 429 and network errors from fetch, axios, got and the Stripe SDK. Stripe, PayPal, OpenAI, Anthropic, Supabase, Neon, Resend, Twilio and others are tagged by name. - A heartbeat every 60 seconds, so a silent app wakes you after 5 minutes. - A deploy marker when the release is known (Vercel, Railway, Render, Heroku, Fly, Cloudflare and GitHub commit variables are read automatically). ## Framework hooks - [Next.js](https://pagerless.dev/integrations/nextjs): One line in `instrumentation.ts` covers pages, layouts, route handlers, server actions and middleware, on Node and the edge. - [Nuxt](https://pagerless.dev/integrations/nuxt): One server plugin hooks Nitro's `error` hook: API routes, server rendering and middleware. - [SvelteKit](https://pagerless.dev/integrations/sveltekit): Export `handleError` from your hooks - [Astro](https://pagerless.dev/integrations/astro): One middleware export, or the integration in `astro.config` - [Remix and React Router](https://pagerless.dev/integrations/remix): Export `handleError` from the server entry - [Express](https://pagerless.dev/integrations/express): One error handler after your routes - [Fastify](https://pagerless.dev/integrations/fastify): One call registers an `onError` hook. - [Koa](https://pagerless.dev/integrations/koa): Add it as the first middleware - [NestJS](https://pagerless.dev/integrations/nestjs): One line after `NestFactory.create`, or register the exception filter yourself. - [Hono](https://pagerless.dev/integrations/hono): One middleware right after `new Hono()`, on every runtime Hono runs on. - [tRPC](https://pagerless.dev/integrations/trpc): One adapter option - [Bun](https://pagerless.dev/integrations/bun): The same one import as Node - [Deno](https://pagerless.dev/integrations/deno): One import from npm - [Electron](https://pagerless.dev/integrations/electron): Main-process crashes, crashed renderers and GPU or child processes, grouped into problems you can act on. - [React Native and Expo](https://pagerless.dev/integrations/react-native): JS errors and fatal crashes from your app, sent within 1.5 seconds of a fatal one, with an in-memory queue for when the phone is offline. ## Report things yourself ```js import { capture, event } from "pagerless"; try { await chargeCard(order); } catch (err) { capture(err, { route: "POST /checkout", tags: { plan: "pro" } }); throw err; } event({ title: "Refund queue backed up", severity: "tell" }); ``` ## Settings | Variable | Default | | --- | --- | | `PAGERLESS_KEY` | Required. Without it the SDK is off. | | `PAGERLESS_SERVICE` | Your host's service name, else package.json name, else `app` | | `PAGERLESS_ENV` | `VERCEL_ENV`, `RAILWAY_ENVIRONMENT_NAME` or `NODE_ENV`, else `production` | | `PAGERLESS_RELEASE` | The commit from your host's variables | | `PAGERLESS_DISABLED=1` | Turns it off | ## Questions ### Which Node versions? Node 18.19 or newer, ESM or CommonJS. ### Will it slow my app? Events are counted and grouped in memory and sent in batches in the background. Requests are never held up waiting for Pagerless. --- # Pagerless for Go > Standard library only. Init, defer Close, wrap your handler. URL: https://pagerless.dev/integrations/go Updated: 2026-10-22 ## Set up ```bash go get github.com/lcbasu/pagerless-go@v0.2.0 ``` ```go import ( "context" "net/http" pagerless "github.com/lcbasu/pagerless-go" ) func main() { pagerless.Init("") // reads PAGERLESS_KEY; without it every call is a no-op defer pagerless.Close(context.Background()) mux := http.NewServeMux() mux.HandleFunc("GET /orders/{id}", getOrder) http.ListenAndServe(":8080", pagerless.Middleware(mux)) } ``` ## What it catches - Panics in handlers, reported and re-panicked so your own recovery still runs. - Status and latency per route, using the Go 1.22+ pattern (`GET /orders/{id}`). - A heartbeat, and a deploy marker from your VCS build info. - Errors you report with `pagerless.Capture(err, pagerless.Route("job sync-orders"))`. ## Scheduled jobs ```go err := pagerless.Monitor(ctx, "nightly-backup", pagerless.Schedule{Cron: "30 3 * * *"}, backup) ``` ## Framework adapters Each is its own module, so the core stays dependency-free: [Gin](https://pagerless.dev/integrations/gin), [Echo](https://pagerless.dev/integrations/echo), [Fiber](https://pagerless.dev/integrations/fiber), [chi and gorilla/mux](https://pagerless.dev/integrations/chi), [gRPC](https://pagerless.dev/integrations/grpc) and [Temporal](https://pagerless.dev/integrations/temporal). Structured logs: `slog.SetDefault(slog.New(pagerless.SlogHandler(slog.NewJSONHandler(os.Stderr, nil))))` reports Error and above. Go 1.24 or newer. `npx pagerless connect` adds all of this to each `func main` your Dockerfiles run, and wires the adapter for the framework it finds. ## Questions ### Does it use OpenTelemetry? No. It is standard library only, with no dependencies. If you already export OpenTelemetry, you can also send that: see [OpenTelemetry](https://pagerless.dev/docs/opentelemetry). ### Where is the source? [pkg.go.dev/github.com/lcbasu/pagerless-go](https://pkg.go.dev/github.com/lcbasu/pagerless-go), MIT licensed. --- # Pagerless for Python > One package, standard library only. Django, Flask, FastAPI and any ASGI or WSGI app, Celery, AWS Lambda and logging. URL: https://pagerless.dev/integrations/python Updated: 2026-10-22 ## Set up ```bash pip install pagerless export PAGERLESS_KEY=pl_live_... ``` ```python import pagerless.auto ``` ```python pagerless.init() pagerless.capture(route="POST /checkout") pagerless.event("Refunds paused", "tell") pagerless.deploy("2026.10.22-2") ``` ```python @pagerless.aws_lambda.handler def handle(event, context): ... ``` ```python logging.getLogger().addHandler(pagerless.logging.PagerlessHandler()) ``` ```python @pagerless.monitor("nightly-backup", pagerless.Schedule(cron="30 3 * * *")) def backup(): ... with pagerless.monitor("sync-prices", 3600): sync() ``` ## What it catches - Uncaught exceptions in the main thread, other threads and unraisable ones (`import pagerless.auto`). - Request rate, errors and latency per route with the [Django](https://pagerless.dev/integrations/django), [Flask](https://pagerless.dev/integrations/flask) or [ASGI](https://pagerless.dev/integrations/fastapi) integrations. - Celery task failures and missed beat runs ([Celery](https://pagerless.dev/integrations/celery)). - Lambda handler exceptions, flushed before return. - ERROR log records, as the exception when there is one, else grouped by call site. Python 3.9 or newer, standard library only. `npx pagerless connect` doesn't edit Python code yet; add these lines by hand. ## Questions ### Which frameworks? [Django](https://pagerless.dev/integrations/django), [Flask](https://pagerless.dev/integrations/flask), [FastAPI and Starlette](https://pagerless.dev/integrations/fastapi) (any ASGI app), any WSGI app, [Celery](https://pagerless.dev/integrations/celery), AWS Lambda and the logging module. ### Does it add dependencies? No. It is standard library only, Python 3.9 or newer. --- # Pagerless for HTTP and curl > If it can make an HTTPS request, it can page you. The SDKs use the same API. URL: https://pagerless.dev/integrations/curl Updated: 2026-10-22 ## Set up ```bash curl -X POST https://events.pagerless.dev/v1/events \ -H "Authorization: Bearer $PAGERLESS_KEY" \ -H "Content-Type: application/json" \ -d '{"events":[{"v":1,"id":"evt_2026_10_22_0001","type":"error","ts":'$(date +%s000)',"service":"api","route":"POST /checkout","status":500,"error":{"type":"StripeError","message":"card_declined rate spike"}}]}' ``` ```bash curl -X POST "https://events.pagerless.dev/v1/heartbeat?service=worker" -H "Authorization: Bearer $PAGERLESS_KEY" ``` ```bash ./backup.sh && curl -X POST https://events.pagerless.dev/v1/checkins/nightly-backup -H "Authorization: Bearer $PAGERLESS_KEY" ``` ## What it catches - Errors you send, grouped into problems. - Silence, when heartbeats stop for 5 minutes. - Late, missed or failed scheduled jobs. ## Questions ### How do I make a custom event wake me? Send `"type":"custom"` with `"severity":"wake"` and a `"title"`. Use `tell` for a message without a call. --- # Pagerless for OpenTelemetry > Errors in your OTLP logs and traces become Pagerless problems: grouped, explained and routed to the right person. Any OpenTelemetry SDK, protobuf or JSON. URL: https://pagerless.dev/integrations/opentelemetry Updated: 2026-10-22 ## Set up ```bash OTEL_EXPORTER_OTLP_ENDPOINT=https://events.pagerless.dev/v1/otlp OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer pl_live_..." OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta ``` `http/json` works too, and gzip. gRPC is not accepted; use OTLP over HTTP. More: [OpenTelemetry docs](https://pagerless.dev/docs/opentelemetry). ## What it catches - Log records with severity ERROR or higher. - Spans with an `exception` event, and SERVER spans that answered 5xx. - HTTP server request-duration histograms (delta temporality), as request counts per route and status, so the 5xx floor works. ## Questions ### Does Pagerless store my traces? No. It reads them for errors and keeps at most 5 scrubbed samples per problem for 30 days. --- # Pagerless for Browser apps > For dashboards and single-page apps: uncaught errors and promise rejections from the page, grouped by path. URL: https://pagerless.dev/integrations/browser Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```js import { init } from "pagerless/browser"; init({ key: import.meta.env.VITE_PAGERLESS_KEY, service: "dashboard" }); ``` ## What it catches - Uncaught errors and unhandled promise rejections from `window`, with the page path as the route. - Failing fetch calls (5xx, 429, network errors; not aborts or offline), from pagerless 0.2.0. - Sent when the tab is hidden, so nothing is lost on close. - Cross-origin "Script error." and browser-extension errors are ignored. No heartbeats (a closed tab is not an outage) and no deploy markers. Ingest keys are write-only, so a key in your bundle cannot read anything; use a separate key for the browser so you can revoke it on its own. ## Questions ### Will a frontend error wake me at night? Not by itself. Browser errors are rarely floor signals, so they are usually tell or log. Server-side floors are what wake you. --- # Pagerless for Next.js > One line in instrumentation.ts covers pages, layouts, route handlers, server actions and middleware, on Node and the edge. URL: https://pagerless.dev/integrations/nextjs Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts export { register, onRequestError } from "pagerless/next"; ``` Works with the app router and the pages router. `onRequestError` needs Next.js 15 or newer. Edge route handlers can also be wrapped: `export const GET = withPagerless(handler)`. `npx pagerless connect` writes this file for you when it finds `next` in package.json. ## What it catches - Errors in pages, layouts, route handlers, server actions and middleware. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. - On Node it also starts the SDK: uncaught errors and unhandled rejections, status and latency per route, failing outbound calls (Stripe, OpenAI, Supabase and others named), a heartbeat every 60 seconds and a deploy marker. ## Questions ### Does it catch errors in React components in the browser? Add [pagerless/browser](https://pagerless.dev/integrations/browser) and, if you like, the [React error boundary](https://pagerless.dev/integrations/react). ### Can Pagerless roll back a bad Next.js deploy? On Vercel and Netlify, yes, after your approval. See [Next.js on Vercel](https://pagerless.dev/integrations/nextjs-vercel). --- # Pagerless for Nuxt > One server plugin hooks Nitro's error hook: API routes, server rendering and middleware. URL: https://pagerless.dev/integrations/nuxt Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts export { default } from "pagerless/nuxt"; ``` Vue errors in the browser: `export default defineNuxtPlugin(nuxtAppPlugin)`, with `nuxtAppPlugin` from `pagerless/nuxt`. On edge presets the send runs in `waitUntil`. ## What it catches - API route, SSR and middleware errors from Nitro. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. - On Node it also starts the SDK: uncaught errors and unhandled rejections, status and latency per route, failing outbound calls (Stripe, OpenAI, Supabase and others named), a heartbeat every 60 seconds and a deploy marker. ## Questions ### Does it work on Nuxt's edge presets? Yes. On edge presets it sends in waitUntil, so responses are not held up. --- # Pagerless for SvelteKit > Export handleError from your hooks. Load functions, form actions, endpoints and rendering are covered; 404s and expected errors are skipped. URL: https://pagerless.dev/integrations/sveltekit Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts export { handleError } from "pagerless/sveltekit"; ``` Already have a `handleError`? Wrap it: `export const handleError = handleErrorWithPagerless(myHandler)`. In the browser, also start the client with `init` from `pagerless/browser`. ## What it catches - Errors in load functions, actions, endpoints and rendering. - Skips 404s and expected errors. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. ## Questions ### Will a 404 page alert me? No. Not-found and expected errors are skipped. --- # Pagerless for Astro > One middleware export, or the integration in astro.config. Errors from pages, endpoints and later middleware are reported and re-thrown. URL: https://pagerless.dev/integrations/astro Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts export { onRequest } from "pagerless/astro"; ``` ```ts import pagerless from "pagerless/astro"; export default defineConfig({ integrations: [pagerless()] }); ``` ## What it catches - Errors from pages, endpoints and middleware that runs after it. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. ## Questions ### Middleware or integration? Either. The integration adds the same middleware first in the chain for you. --- # Pagerless for Remix and React Router > Export handleError from the server entry. Shopify apps built on the Remix or React Router template work the same way. URL: https://pagerless.dev/integrations/remix Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts export { handleError } from "pagerless/remix"; ``` ```ts export { handleError } from "pagerless/react-router"; ``` ## What it catches - Errors in loaders, actions and rendering. - Skips aborted requests and thrown 4xx responses. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. - On Node it also starts the SDK: uncaught errors and unhandled rejections, status and latency per route, failing outbound calls (Stripe, OpenAI, Supabase and others named), a heartbeat every 60 seconds and a deploy marker. ## Questions ### Does connect recognise Shopify apps? Yes. When it finds `@shopify/shopify-app-*` it labels the service a Shopify app and makes the same change. --- # Pagerless for Express > One error handler after your routes. Routes are grouped by Express's own pattern, so /orders/:id is one route, not thousands. URL: https://pagerless.dev/integrations/express Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```js import { pagerlessErrorHandler } from "pagerless/express"; // after your routes, before your own error handler app.use(pagerlessErrorHandler()); ``` It passes every error on with `next(err)`, so your own handler still runs. ## What it catches - 5xx and unknown errors from your routes. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. - On Node it also starts the SDK: uncaught errors and unhandled rejections, status and latency per route, failing outbound calls (Stripe, OpenAI, Supabase and others named), a heartbeat every 60 seconds and a deploy marker. ## Questions ### Is import "pagerless/auto" still enough? It still reports crashes, 5xx counts and failing calls. The error handler adds the errors Express catches itself, with their stack. --- # Pagerless for Fastify > One call registers an onError hook. URL: https://pagerless.dev/integrations/fastify Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```js import { pagerlessFastify } from "pagerless/fastify"; pagerlessFastify(app); ``` ## What it catches - 5xx and unknown errors through Fastify's onError hook. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. - On Node it also starts the SDK: uncaught errors and unhandled rejections, status and latency per route, failing outbound calls (Stripe, OpenAI, Supabase and others named), a heartbeat every 60 seconds and a deploy marker. ## Questions ### Does it change Fastify's error replies? No. It only listens; your error handler and replies are unchanged. --- # Pagerless for Koa > Add it as the first middleware. It reports and re-throws, so your error handling is unchanged. URL: https://pagerless.dev/integrations/koa Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```js import { pagerlessKoa } from "pagerless/koa"; app.use(pagerlessKoa()); // first ``` ## What it catches - 5xx and unknown errors, re-thrown unchanged. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. - On Node it also starts the SDK: uncaught errors and unhandled rejections, status and latency per route, failing outbound calls (Stripe, OpenAI, Supabase and others named), a heartbeat every 60 seconds and a deploy marker. ## Questions ### Why first? So it sees errors from every middleware after it. --- # Pagerless for NestJS > One line after NestFactory.create, or register the exception filter yourself. URL: https://pagerless.dev/integrations/nestjs Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts import { usePagerless } from "pagerless/nestjs"; const app = await NestFactory.create(AppModule); usePagerless(app); ``` Or as a provider: `{ provide: APP_FILTER, useClass: PagerlessExceptionFilter }`. Needs `@nestjs/core` 9 or newer. ## What it catches - 5xx and unknown errors, then handed to Nest's own exception filter. - Outside HTTP (GraphQL), errors are reported and re-thrown. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. - On Node it also starts the SDK: uncaught errors and unhandled rejections, status and latency per route, failing outbound calls (Stripe, OpenAI, Supabase and others named), a heartbeat every 60 seconds and a deploy marker. ## Questions ### Does it replace my exception filters? No. It reports, then hands off to Nest's BaseExceptionFilter as usual. --- # Pagerless for Hono > One middleware right after new Hono(), on every runtime Hono runs on. URL: https://pagerless.dev/integrations/hono Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts import { Hono } from "hono"; import { pagerlessMiddleware } from "pagerless/hono"; const app = new Hono(); app.use(pagerlessMiddleware()); ``` ## What it catches - Errors your handlers throw (it reads `c.error` after the handler). - On Workers it starts from `c.env` and sends in `executionCtx.waitUntil`. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. ## Questions ### Where does the key go on Workers? `npx wrangler secret put PAGERLESS_KEY`. The middleware reads it from the Worker's env. --- # Pagerless for tRPC > One adapter option. Only INTERNAL_SERVER_ERROR is reported; bad input and auth errors are your users' business, not an alert. URL: https://pagerless.dev/integrations/trpc Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts import { pagerlessTrpcOnError } from "pagerless/trpc"; // in your adapter options onError: pagerlessTrpcOnError, ``` Keep your own handler too: `onError: trpcOnError(yourHandler)`. ## What it catches - Procedures that fail with INTERNAL_SERVER_ERROR. - Reports 5xx and crashes only, never 4xx, and leaves the response, logs and error exactly as they were. ## Questions ### Will a validation error page me? No. Only INTERNAL_SERVER_ERROR is reported. --- # Pagerless for Bun > The same one import as Node. Bun gets its own build. URL: https://pagerless.dev/integrations/bun Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts import "pagerless/auto"; ``` ## What it catches - Uncaught errors and unhandled rejections. - Errors from `Bun.serve` handlers, re-thrown unchanged. - Failing `fetch` calls. - Sends before the process exits. ## Questions ### Do I need a different package for Bun? No. The pagerless package has a Bun build that `pagerless/auto` picks automatically. --- # Pagerless for Deno > One import from npm. Deno gets its own build. URL: https://pagerless.dev/integrations/deno Updated: 2026-10-22 ## Set up ```ts import "npm:pagerless/auto"; ``` With a package.json, `import "pagerless/auto"` works too. ## What it catches - Uncaught errors and unhandled rejections. - Errors from `Deno.serve` handlers, re-thrown unchanged. - Failing `fetch` calls. - Sends before the process exits. ## Questions ### Does it work on Deno Deploy? It uses the same Deno APIs; set `PAGERLESS_KEY` in the project's environment variables. --- # Pagerless for Electron > Main-process crashes, crashed renderers and GPU or child processes, grouped into problems you can act on. URL: https://pagerless.dev/integrations/electron Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts import { app } from "electron"; import { init as initPagerless } from "pagerless/electron"; initPagerless({ app }); ``` ```ts import { init } from "pagerless/electron/renderer"; init({ key }); ``` ## What it catches - Main-process crashes. - Crashed renderers, GPU and child processes. - Failing outbound calls from the main process. - Renderer errors tagged `process: renderer`. ## Questions ### Does a closed app count as down? No. Desktop apps send no heartbeats, so quitting never alerts. --- # Pagerless for React Native and Expo > JS errors and fatal crashes from your app, sent within 1.5 seconds of a fatal one, with an in-memory queue for when the phone is offline. URL: https://pagerless.dev/integrations/react-native Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts import { AppState } from "react-native"; import { init as initPagerless } from "pagerless/react-native"; initPagerless({ key: process.env.EXPO_PUBLIC_PAGERLESS_KEY, AppState }); ``` Rolling back an EAS update is a guided step: see [Expo](https://pagerless.dev/integrations/expo). ## What it catches - JS errors through ErrorUtils; fatal ones are sent within 1.5 seconds. - Unhandled promise rejections on Hermes. - An in-memory queue while offline. ## Questions ### Can a crash wake me? Crashes are grouped into problems and usually tell you. Your app's backend floors (silence, 5xx, payments) are what wake you. --- # Pagerless for React > An error boundary, or React's root error options. Start the client first with the browser or React Native SDK. URL: https://pagerless.dev/integrations/react Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```tsx import { PagerlessErrorBoundary } from "pagerless/react"; Something went wrong.

}> ``` ```tsx createRoot(el, { onUncaughtError: reactErrorHandler(), onCaughtError: reactErrorHandler() }); ``` ## What it catches - Errors thrown while rendering components. - Uncaught errors and failing fetch calls from [pagerless/browser](https://pagerless.dev/integrations/browser). ## Questions ### Which React versions? The boundary needs React 16.8 or newer. The root options are React 19's. --- # Pagerless for Vite (React, Vue, Svelte) > For single-page apps built with Vite. The key comes from VITE_PAGERLESS_KEY. URL: https://pagerless.dev/integrations/vite Updated: 2026-10-22 ## Set up ```bash npm i pagerless ``` ```ts import { init } from "pagerless/browser"; init({ key: import.meta.env.VITE_PAGERLESS_KEY, service: "web" }); ``` ## What it catches - Uncaught errors and unhandled rejections in the page, grouped by path. - Failing fetch calls (5xx, 429, network) from pagerless 0.2.0. - Sent when the tab is hidden. ## Questions ### Is it safe to ship the key? Yes. Ingest keys can only send events. Use a separate key for the browser so you can revoke it alone. --- # Pagerless for Gin > One middleware, after Gin's recovery and before your routes. URL: https://pagerless.dev/integrations/gin Updated: 2026-10-22 ## Set up ```bash go get github.com/lcbasu/pagerless-go/gin@v0.2.0 ``` ```go import pagerlessgin "github.com/lcbasu/pagerless-go/gin" pagerless.Init("") defer pagerless.Close(context.Background()) r := gin.New() r.Use(gin.Recovery(), pagerlessgin.Middleware()) ``` ## What it catches - Panics and 5xx responses, per Gin route. - A heartbeat and a deploy marker from the core SDK. ## Questions ### Is the core still dependency-free? Yes. Each adapter is its own module, so you only download Gin's adapter if you use Gin. --- # Pagerless for Echo > One middleware after middleware.Recover(). Echo v4 and v5 each have an adapter. URL: https://pagerless.dev/integrations/echo Updated: 2026-10-22 ## Set up ```bash go get github.com/lcbasu/pagerless-go/echo@v0.2.0 ``` ```go import pagerlessecho "github.com/lcbasu/pagerless-go/echo" e.Use(middleware.Recover(), pagerlessecho.Middleware()) ``` ```go import pagerlessechov5 "github.com/lcbasu/pagerless-go/echov5" e.Use(pagerlessechov5.Middleware()) ``` ## What it catches - Panics and 5xx responses, per Echo route. - A heartbeat and a deploy marker from the core SDK. ## Questions ### Which Go version? Go 1.24 for Echo v4; Echo v5's adapter needs Go 1.25. --- # Pagerless for Fiber > One middleware after recover.New(). Fiber v2 and v3 each have an adapter. URL: https://pagerless.dev/integrations/fiber Updated: 2026-10-22 ## Set up ```bash go get github.com/lcbasu/pagerless-go/fiber@v0.2.0 ``` ```go import pagerlessfiber "github.com/lcbasu/pagerless-go/fiber" app.Use(recover.New(), pagerlessfiber.Middleware()) ``` ```go import pagerlessfiberv3 "github.com/lcbasu/pagerless-go/fiberv3" app.Use(pagerlessfiberv3.Middleware()) ``` ## What it catches - Panics and 5xx responses, per Fiber route. - A heartbeat and a deploy marker from the core SDK. ## Questions ### Fiber doesn't use net/http. Does that matter? No. The adapter is written for Fiber's own handler chain. --- # Pagerless for chi and gorilla/mux > One middleware each. Routes are reported by their pattern, so /orders/{id} is one route. URL: https://pagerless.dev/integrations/chi Updated: 2026-10-22 ## Set up ```bash go get github.com/lcbasu/pagerless-go/chi@v0.2.0 ``` ```go import pagerlesschi "github.com/lcbasu/pagerless-go/chi" r.Use(middleware.Recoverer, pagerlesschi.Middleware) ``` ```go import pagerlessmux "github.com/lcbasu/pagerless-go/gorillamux" r.Use(pagerlessmux.Middleware) ``` ## What it catches - Panics and 5xx responses, per route pattern. - A heartbeat and a deploy marker from the core SDK. ## Questions ### Plain net/http? Use `pagerless.Middleware(mux)` from the core module. See [the Go SDK](https://pagerless.dev/integrations/go). --- # Pagerless for gRPC (Go) > Interceptors for both sides. Each method becomes a route like gRPC /shop.Orders/Get. URL: https://pagerless.dev/integrations/grpc Updated: 2026-10-22 ## Set up ```bash go get github.com/lcbasu/pagerless-go/grpc@v0.2.0 ``` ```go import pagerlessgrpc "github.com/lcbasu/pagerless-go/grpc" srv := grpc.NewServer(pagerlessgrpc.ServerOptions()...) conn, err := grpc.NewClient(addr, pagerlessgrpc.DialOptions()...) ``` ## What it catches - Server errors with code Unknown, Internal or DataLoss. - Client calls that fail with Unavailable, DeadlineExceeded, Internal and similar. - Status codes mapped to HTTP (Internal is 500), so floors like a 5xx burst apply. ## Questions ### Will NotFound or InvalidArgument alert? No. Only server-side failures are reported. --- # Pagerless for Temporal > One worker interceptor. Failed activities and workflows are reported, and every Temporal Schedule becomes a check-in. URL: https://pagerless.dev/integrations/temporal Updated: 2026-10-22 ## Set up ```bash go get github.com/lcbasu/pagerless-go/temporal@v0.2.0 ``` ```go import pagerlesstemporal "github.com/lcbasu/pagerless-go/temporal" w := worker.New(c, "orders", worker.Options{ Interceptors: []interceptor.WorkerInterceptor{pagerlesstemporal.New(c)}, }) ``` ## What it catches - Activity and workflow failures, named by their ApplicationError type, and panics. - Every Schedule as a check-in at `/v1/checkins/`, so a missed run is noticed. - Skip per-customer schedules with `pagerlesstemporal.SkipSchedules("agent-run-")`. ## Questions ### Does connect find my schedules? Yes. `npx pagerless connect` finds Temporal Schedules in Go code and wires the interceptor. --- # Pagerless for Django > Add the app and put the middleware first. Request rate, errors and latency per URL pattern, and every 500. URL: https://pagerless.dev/integrations/django Updated: 2026-10-22 ## Set up ```bash pip install pagerless export PAGERLESS_KEY=pl_live_... ``` ```python INSTALLED_APPS = [..., "pagerless.django"] MIDDLEWARE = ["pagerless.django.PagerlessMiddleware", ...] ``` Options can also live in `settings.PAGERLESS` (a dict). Django on ASGI works with the [ASGI middleware](https://pagerless.dev/integrations/fastapi) too. ## What it catches - 500s, with the exception. - Request rate, errors and latency per URL pattern. - Uncaught exceptions anywhere in the process. ## Questions ### Why first in MIDDLEWARE? So it times and sees every request, including ones other middleware turns into errors. --- # Pagerless for Flask > Two lines. Metrics per URL rule, and every exception Flask turns into a 500. URL: https://pagerless.dev/integrations/flask Updated: 2026-10-22 ## Set up ```bash pip install pagerless export PAGERLESS_KEY=pl_live_... ``` ```python import pagerless.flask pagerless.flask.init_app(app) ``` ## What it catches - Exceptions Flask turns into 500s. - Request rate, errors and latency per URL rule. ## Questions ### Other WSGI apps? `from pagerless.wsgi import PagerlessMiddleware` and `application = PagerlessMiddleware(application)`. --- # Pagerless for FastAPI and Starlette > One ASGI middleware for FastAPI, Starlette, Django on ASGI or any ASGI app. URL: https://pagerless.dev/integrations/fastapi Updated: 2026-10-22 ## Set up ```bash pip install pagerless export PAGERLESS_KEY=pl_live_... ``` ```python from pagerless.asgi import PagerlessMiddleware app.add_middleware(PagerlessMiddleware) ``` ## What it catches - Exceptions that escape the app. - Request rate, errors and latency per route. ## Questions ### Does it slow requests? No. It counts in memory and sends in the background; it is standard library only. --- # Pagerless for Celery > One call. Task failures are reported, and every beat_schedule entry becomes a check-in named after it. URL: https://pagerless.dev/integrations/celery Updated: 2026-10-22 ## Set up ```bash pip install pagerless export PAGERLESS_KEY=pl_live_... ``` ```python import pagerless.celery pagerless.celery.install(app) ``` Failures only, no check-ins: `pagerless.celery.install(app, beat=False)`. ## What it catches - Task failures, with the exception. - Missed or late beat runs, one check-in per schedule entry. ## Questions ### How loud is a missed beat run? Tell by default. Set the check-in to wake in the app for jobs that matter. --- # Next.js on Vercel > The most common stack for apps built with AI, and the one where Pagerless can do the most: catch it, explain it, roll it back. URL: https://pagerless.dev/integrations/nextjs-vercel Updated: 2026-10-22 1. **Install** In your Next.js project: ``` npm i pagerless ``` 2. **Add the instrumentation file** Pages, route handlers, server actions and middleware, on Node and the edge. onRequestError needs Next.js 15 or newer (pagerless 0.2.0). ``` // instrumentation.ts export { register, onRequestError } from "pagerless/next"; ``` 3. **Add the key** Set it for production only, so previews stay quiet. ``` vercel env add PAGERLESS_KEY production ``` 4. **Allow rollback** In the Pagerless app, connect Vercel with an access token. Rolling back then takes one approval. Or run `npx pagerless connect` and it does steps 1 to 3. ## What Pagerless reads from Vercel `VERCEL_ENV` and `VERCEL_GIT_COMMIT_SHA` become the environment and release, so a spike right after a deploy is tied to that deploy. Vercel's deploy webhooks, signed with your secret, are accepted too. --- # Hono on Cloudflare Workers > One middleware reads the key from the Worker's env and sends in waitUntil. On pagerless 0.1, wrap app.fetch instead. URL: https://pagerless.dev/integrations/hono-cloudflare-workers Updated: 2026-10-22 ```ts import { Hono } from "hono"; import { pagerlessMiddleware } from "pagerless/hono"; const app = new Hono(); app.use(pagerlessMiddleware()); app.get("/", (c) => c.text("ok")); export default app; ``` ```ts import { withPagerless } from "pagerless"; export default withPagerless({ fetch: app.fetch }); ``` ```bash npx wrangler secret put PAGERLESS_KEY ``` To allow undo, create a Cloudflare API token with Workers Scripts edit and paste it into Pagerless. Undo deploys the previous Worker version. --- # Pagerless for Vercel > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back to the previous deployment. URL: https://pagerless.dev/integrations/vercel Updated: 2026-10-22 ## Set up Next.js and Node functions use `pagerless/auto`; Edge functions use `withPagerless`. Store the key with `vercel env add PAGERLESS_KEY production`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Vercel | Fix | On Vercel | | --- | --- | | Undo the update | Rolls back to the previous deployment | | Restart | Redeploys the live deployment | | Add capacity | Not available | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a Vercel access token | ## Questions ### Can Pagerless roll back Vercel automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back to the previous deployment. ### Does Pagerless need admin access to Vercel? It needs a Vercel access token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Netlify > Woken only when it matters, and one tap undoes a bad deploy: Pagerless restores the previous deploy. URL: https://pagerless.dev/integrations/netlify Updated: 2026-10-22 ## Set up Netlify Functions run Node: `import "pagerless/auto"`. Static sites: [pagerless/browser](https://pagerless.dev/integrations/browser). Store the key with `netlify env:set PAGERLESS_KEY pl_live_...`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Netlify | Fix | On Netlify | | --- | --- | | Undo the update | Restores the previous deploy | | Restart | Rebuilds | | Add capacity | Not available | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a Netlify personal access token | ## Questions ### Can Pagerless roll back Netlify automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then restores the previous deploy. ### Does Pagerless need admin access to Netlify? It needs a Netlify personal access token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Cloudflare Workers > Woken only when it matters, and one tap undoes a bad deploy: Pagerless deploys the previous Worker version. URL: https://pagerless.dev/integrations/cloudflare-workers Updated: 2026-10-22 ## Set up Wrap the default export with `withPagerless`; cron triggers become job check-ins. ```js import { withPagerless } from "pagerless"; export default withPagerless({ async fetch(request, env, ctx) { return new Response("ok"); }, async scheduled(event, env, ctx) { await nightly(env); }, }); ``` Store the key with `npx wrangler secret put PAGERLESS_KEY`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Cloudflare Workers | Fix | On Cloudflare Workers | | --- | --- | | Undo the update | Deploys the previous Worker version | | Restart | Not available | | Add capacity | Not available | | Deploy events | From the SDK's deploy marker | | Access it needs | a Cloudflare API token with Workers Scripts edit (connect opens the token page prefilled) | ## Questions ### Can Pagerless roll back Cloudflare Workers automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then deploys the previous Worker version. ### Does Pagerless need admin access to Cloudflare Workers? It needs a Cloudflare API token with Workers Scripts edit (connect opens the token page prefilled). It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Cloudflare Pages > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back to the previous Pages deployment. URL: https://pagerless.dev/integrations/cloudflare-pages Updated: 2026-10-22 ## Set up Pages Functions: one middleware file. ```js import { withPagerless } from "pagerless"; export const onRequest = withPagerless((context) => context.next()); ``` Store the key with `npx wrangler pages secret put PAGERLESS_KEY`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Cloudflare Pages | Fix | On Cloudflare Pages | | --- | --- | | Undo the update | Rolls back to the previous Pages deployment | | Restart | Not available | | Add capacity | Not available | | Deploy events | From the SDK's deploy marker | | Access it needs | a Cloudflare API token with Pages edit | ## Questions ### Can Pagerless roll back Cloudflare Pages automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back to the previous Pages deployment. ### Does Pagerless need admin access to Cloudflare Pages? It needs a Cloudflare API token with Pages edit. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Railway > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back to the previous deployment. URL: https://pagerless.dev/integrations/railway Updated: 2026-10-22 ## Set up Node: `import "pagerless/auto"`. Go: `pagerless.Middleware`. The service name and release are read from Railway's variables. Store the key with `railway variables --set "PAGERLESS_KEY=pl_live_..."`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Railway | Fix | On Railway | | --- | --- | | Undo the update | Rolls back to the previous deployment | | Restart | Restarts the deployment | | Add capacity | Adds replicas | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a Railway API token | ## Questions ### Can Pagerless roll back Railway automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back to the previous deployment. ### Does Pagerless need admin access to Railway? It needs a Railway API token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Render > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back to the previous deploy. URL: https://pagerless.dev/integrations/render Updated: 2026-10-22 ## Set up Node: `import "pagerless/auto"`. Go: `pagerless.Middleware`. `RENDER_SERVICE_NAME` and `RENDER_GIT_COMMIT` are read automatically. Store the key with the service's Environment tab. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Render | Fix | On Render | | --- | --- | | Undo the update | Rolls back to the previous deploy | | Restart | Restarts the service | | Add capacity | Changes instance count or autoscaling | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a Render API key | ## Questions ### Can Pagerless roll back Render automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back to the previous deploy. ### Does Pagerless need admin access to Render? It needs a Render API key. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Fly.io > Woken only when it matters, and one tap undoes a bad deploy: Pagerless moves Machines back to the previous image. URL: https://pagerless.dev/integrations/fly-io Updated: 2026-10-22 ## Set up Node, Go or Python SDK. `FLY_APP_NAME` and `FLY_IMAGE_REF` are read automatically. Store the key with `fly secrets set PAGERLESS_KEY=pl_live_...`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Fly.io | Fix | On Fly.io | | --- | --- | | Undo the update | Moves Machines back to the previous image | | Restart | Restarts Machines | | Add capacity | Clones or stops Machines | | Deploy events | From the SDK's deploy marker | | Access it needs | a Fly deploy token | ## Questions ### Can Pagerless roll back Fly.io automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then moves Machines back to the previous image. ### Does Pagerless need admin access to Fly.io? It needs a Fly deploy token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Heroku > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back to the previous release. URL: https://pagerless.dev/integrations/heroku Updated: 2026-10-22 ## Set up Node, Go or Python SDK. The app name and release come from Heroku's dyno metadata. Store the key with `heroku config:set PAGERLESS_KEY=pl_live_...`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Heroku | Fix | On Heroku | | --- | --- | | Undo the update | Rolls back to the previous release | | Restart | Restarts dynos | | Add capacity | Changes the dyno formation | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a Heroku API key | ## Questions ### Can Pagerless roll back Heroku automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back to the previous release. ### Does Pagerless need admin access to Heroku? It needs a Heroku API key. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for DigitalOcean App Platform > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back to the previous deployment (pins the app). URL: https://pagerless.dev/integrations/digitalocean Updated: 2026-10-22 ## Set up Node, Go or Python SDK. Store the key with the app's environment variables in the control panel. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on DigitalOcean App Platform | Fix | On DigitalOcean App Platform | | --- | --- | | Undo the update | Rolls back to the previous deployment (pins the app) | | Restart | Restarts the app | | Add capacity | Changes instance count | | Deploy events | From the SDK's deploy marker | | Access it needs | a DigitalOcean API token | ## Questions ### Can Pagerless roll back DigitalOcean App Platform automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back to the previous deployment (pins the app). ### Does Pagerless need admin access to DigitalOcean App Platform? It needs a DigitalOcean API token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Koyeb > Woken only when it matters, and one tap undoes a bad deploy: Pagerless redeploys the previous commit or definition. URL: https://pagerless.dev/integrations/koyeb Updated: 2026-10-22 ## Set up Node, Go or Python SDK. Store the key with the service's environment settings. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Koyeb | Fix | On Koyeb | | --- | --- | | Undo the update | Redeploys the previous commit or definition | | Restart | Redeploys | | Add capacity | Changes scaling | | Deploy events | From the SDK's deploy marker | | Access it needs | a Koyeb API token | ## Questions ### Can Pagerless roll back Koyeb automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then redeploys the previous commit or definition. ### Does Pagerless need admin access to Koyeb? It needs a Koyeb API token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Northflank > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back the service. URL: https://pagerless.dev/integrations/northflank Updated: 2026-10-22 ## Set up Node, Go or Python SDK. Store the key with the service's runtime variables. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Northflank | Fix | On Northflank | | --- | --- | | Undo the update | Rolls back the service | | Restart | Restarts | | Add capacity | Changes instances | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a Northflank API token | ## Questions ### Can Pagerless roll back Northflank automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back the service. ### Does Pagerless need admin access to Northflank? It needs a Northflank API token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Coolify > Woken only when it matters, and one tap undoes a bad deploy: Pagerless rolls back to the previous image (Coolify v4.3 or newer). URL: https://pagerless.dev/integrations/coolify Updated: 2026-10-22 ## Set up Node, Go or Python SDK. Store the key with the application's environment variables. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Coolify | Fix | On Coolify | | --- | --- | | Undo the update | Rolls back to the previous image (Coolify v4.3 or newer) | | Restart | Restarts | | Add capacity | Not available | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a team API token and your Coolify URL | ## Questions ### Can Pagerless roll back Coolify automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then rolls back to the previous image (Coolify v4.3 or newer). ### Does Pagerless need admin access to Coolify? It needs a team API token and your Coolify URL. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for AWS ECS > Woken only when it matters, and one tap undoes a bad deploy: Pagerless deploys the previous task definition. URL: https://pagerless.dev/integrations/aws-ecs Updated: 2026-10-22 ## Set up Node, Go or Python SDK in the container. Store the key with SSM Parameter Store: connect writes `pagerless.tf` so ECS reads `/pagerless//key`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on AWS ECS | Fix | On AWS ECS | | --- | --- | | Undo the update | Deploys the previous task definition | | Restart | Forces a new deployment | | Add capacity | Changes desired count | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | an IAM role you create with a CloudFormation link, with an external ID | ## Questions ### Can Pagerless roll back AWS ECS automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then deploys the previous task definition. ### Does Pagerless need admin access to AWS ECS? It needs an IAM role you create with a CloudFormation link, with an external ID. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for AWS Lambda > Woken only when it matters, and one tap undoes a bad deploy: Pagerless points the alias at the previous version. URL: https://pagerless.dev/integrations/aws-lambda Updated: 2026-10-22 ## Set up Node functions: `import "pagerless/auto"`. Python: `@pagerless.aws_lambda.handler` ([Python SDK](https://pagerless.dev/integrations/python)). Any runtime, no code: [CloudWatch alarms over SNS](https://pagerless.dev/integrations/aws-cloudwatch). Store the key with the function's environment variables. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on AWS Lambda | Fix | On AWS Lambda | | --- | --- | | Undo the update | Points the alias at the previous version | | Restart | Not available | | Add capacity | Changes reserved concurrency | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | an IAM role with an external ID | ## Questions ### Can Pagerless roll back AWS Lambda automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then points the alias at the previous version. ### Does Pagerless need admin access to AWS Lambda? It needs an IAM role with an external ID. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for AWS Amplify > Woken only when it matters, and one tap undoes a bad deploy: Pagerless re-runs the last good build. URL: https://pagerless.dev/integrations/aws-amplify Updated: 2026-10-22 ## Set up Node SSR: `pagerless/auto`. Static: `pagerless/browser`. Store the key with Amplify environment variables. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on AWS Amplify | Fix | On AWS Amplify | | --- | --- | | Undo the update | Re-runs the last good build | | Restart | Not available | | Add capacity | Not available | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | an IAM role with an external ID | ## Questions ### Can Pagerless roll back AWS Amplify automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then re-runs the last good build. ### Does Pagerless need admin access to AWS Amplify? It needs an IAM role with an external ID. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Google Cloud Run > Woken only when it matters, and one tap undoes a bad deploy: Pagerless sends traffic to the previous revision. URL: https://pagerless.dev/integrations/google-cloud-run Updated: 2026-10-22 ## Set up Node, Go or Python SDK. `K_SERVICE` and `K_REVISION` are read automatically. Store the key with `gcloud run services update SERVICE --update-env-vars PAGERLESS_KEY=pl_live_...`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Google Cloud Run | Fix | On Google Cloud Run | | --- | --- | | Undo the update | Sends traffic to the previous revision | | Restart | Creates a new revision | | Add capacity | Changes max instances | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | Google OAuth or an IAM service account | ## Questions ### Can Pagerless roll back Google Cloud Run automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then sends traffic to the previous revision. ### Does Pagerless need admin access to Google Cloud Run? It needs Google OAuth or an IAM service account. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Firebase Hosting > Woken only when it matters, and one tap undoes a bad deploy: Pagerless releases the previous version. URL: https://pagerless.dev/integrations/firebase-hosting Updated: 2026-10-22 ## Set up Static sites: `pagerless/browser`. Cloud Functions on Node: `pagerless/auto`. Store the key with your functions' environment. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Firebase Hosting | Fix | On Firebase Hosting | | --- | --- | | Undo the update | Releases the previous version | | Restart | Not available | | Add capacity | Not available | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | Google OAuth or an IAM service account | ## Questions ### Can Pagerless roll back Firebase Hosting automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then releases the previous version. ### Does Pagerless need admin access to Firebase Hosting? It needs Google OAuth or an IAM service account. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Azure App Service > Woken only when it matters, and one tap undoes a bad deploy: Pagerless swaps deployment slots back. URL: https://pagerless.dev/integrations/azure-app-service Updated: 2026-10-22 ## Set up Node, Go or Python SDK. Store the key with `az webapp config appsettings set --name APP --resource-group RG --settings PAGERLESS_KEY=pl_live_...`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Azure App Service | Fix | On Azure App Service | | --- | --- | | Undo the update | Swaps deployment slots back | | Restart | Restarts the app | | Add capacity | Changes plan capacity | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | an Entra app with an RBAC role | ## Questions ### Can Pagerless roll back Azure App Service automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then swaps deployment slots back. ### Does Pagerless need admin access to Azure App Service? It needs an Entra app with an RBAC role. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Azure Container Apps > Woken only when it matters, and one tap undoes a bad deploy: Pagerless moves to the previous revision. URL: https://pagerless.dev/integrations/azure-container-apps Updated: 2026-10-22 ## Set up Node, Go or Python SDK. Store the key with `az containerapp update -n APP -g RG --set-env-vars PAGERLESS_KEY=pl_live_...`. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Azure Container Apps | Fix | On Azure Container Apps | | --- | --- | | Undo the update | Moves to the previous revision | | Restart | Restarts revisions | | Add capacity | Changes min and max replicas | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | an Entra app with an RBAC role | ## Questions ### Can Pagerless roll back Azure Container Apps automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then moves to the previous revision. ### Does Pagerless need admin access to Azure Container Apps? It needs an Entra app with an RBAC role. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Hugging Face Spaces > Know when Hugging Face Spaces is the problem, and restart or add capacity with one tap. URL: https://pagerless.dev/integrations/hugging-face-spaces Updated: 2026-10-22 ## Set up Node Spaces: `pagerless/auto`. Others: the [events API](https://pagerless.dev/docs/events-api). Store the key with the Space's secrets. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Hugging Face Spaces | Fix | On Hugging Face Spaces | | --- | --- | | Undo the update | Not available | | Restart | Restarts the Space | | Add capacity | Moves to larger hardware | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | a Hugging Face token | ## Questions ### Can Pagerless roll back Hugging Face Spaces automatically? Not on Hugging Face Spaces. It alerts you and, where available, restarts or adds capacity. ### Does Pagerless need admin access to Hugging Face Spaces? It needs a Hugging Face token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Appwrite > Woken only when it matters, and one tap undoes a bad deploy: Pagerless activates the previous deployment. URL: https://pagerless.dev/integrations/appwrite Updated: 2026-10-22 ## Set up Node functions: `pagerless/auto`. Store the key with the function's variables. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Appwrite | Fix | On Appwrite | | --- | --- | | Undo the update | Activates the previous deployment | | Restart | Redeploys | | Add capacity | Moves to a larger spec | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | an Appwrite API key with functions and sites scopes | ## Questions ### Can Pagerless roll back Appwrite automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then activates the previous deployment. ### Does Pagerless need admin access to Appwrite? It needs an Appwrite API key with functions and sites scopes. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Supabase > Know when Supabase is the problem, and restart or add capacity with one tap. URL: https://pagerless.dev/integrations/supabase Updated: 2026-10-22 ## Set up Your app's calls to Supabase are tagged by name, so a failing database shows up as Supabase failing, not as a mystery 500. Store the key with where your app runs. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Supabase | Fix | On Supabase | | --- | --- | | Undo the update | Not available | | Restart | Restarts the project | | Add capacity | Adds compute (a billed add-on, so it always asks) | | Deploy events | From the SDK's deploy marker | | Access it needs | a Supabase access token | Pagerless never undoes anything on a database host: going back in time on live data is not a safe one-tap action. ## Questions ### Can Pagerless roll back Supabase automatically? Not on Supabase. It alerts you and, where available, restarts or adds capacity. ### Does Pagerless need admin access to Supabase? It needs a Supabase access token. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Neon > Woken only when it matters, and one tap undoes a bad change: Pagerless restores a branch to a snapshot or a point in time. URL: https://pagerless.dev/integrations/neon Updated: 2026-10-22 ## Set up Calls to Neon are tagged by name in the Node SDK. Store the key with where your app runs. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Neon | Fix | On Neon | | --- | --- | | Undo the update | Restores a branch to a snapshot or a point in time | | Restart | Restarts the compute endpoint | | Add capacity | Raises autoscaling compute | | Deploy events | From the SDK's deploy marker | | Access it needs | a Neon API key | A point-in-time restore changes data, so it always waits for your passkey approval. ## Questions ### Can Pagerless roll back Neon automatically? Yes, if your rules set undo to alone. By default it asks first, and approving an undo needs your passkey (Face ID or Touch ID). It then restores a branch to a snapshot or a point in time. ### Does Pagerless need admin access to Neon? It needs a Neon API key. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Convex > Know when Convex is the problem, and act with one tap. URL: https://pagerless.dev/integrations/convex Updated: 2026-10-22 ## Set up Pagerless can pause and unpause a Convex deployment as a kill switch when something is running away. Store the key with where your frontend or server runs. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Convex | Fix | On Convex | | --- | --- | | Undo the update | Not available | | Restart | Not available | | Add capacity | Not available | | Deploy events | Yes: errors right after a deploy are tied to it | | Access it needs | Convex OAuth | ## Questions ### Can Pagerless roll back Convex automatically? Not on Convex. It alerts you and, where available, restarts or adds capacity. ### Does Pagerless need admin access to Convex? It needs Convex OAuth. It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Lovable > Know the moment your Lovable app breaks, with the exact steps to put it back. URL: https://pagerless.dev/integrations/lovable Updated: 2026-10-22 ## Set up Ask Lovable to "add Pagerless" and paste the setup line, or use [pagerless/browser](https://pagerless.dev/integrations/browser). Store the key with your project's secrets, or the browser key for the frontend. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Lovable | Fix | On Lovable | | --- | --- | | Undo the update | Guided steps (below) | | Restart | Guided steps | | Add capacity | Not available | | Deploy events | From the SDK's deploy marker | | Access it needs | Lovable OAuth (publish only) | Revert brings back code only; your database data stays as it is. ## Guided undo Lovable has no API to undo a release, so the problem page shows these steps, plus a prompt you can paste into the AI tool you built with: 1. Open History in your project. 2. Find the version from just before the problem and click Revert. 3. Publish, then Update, so the live site gets it. 4. Pagerless checks that the errors stop. ## Questions ### Can Pagerless roll back Lovable automatically? No. Lovable has no API for it, so Pagerless shows the exact steps and checks that the errors stop after you follow them. ### Does Pagerless need admin access to Lovable? It needs Lovable OAuth (publish only). It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Replit > Know the moment your Replit app breaks, with the exact steps to put it back. URL: https://pagerless.dev/integrations/replit Updated: 2026-10-22 ## Set up Node: `import "pagerless/auto"`. Python: the [HTTP reporter](https://pagerless.dev/integrations/python). Store the key with Replit Secrets. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Replit | Fix | On Replit | | --- | --- | | Undo the update | Guided steps (below) | | Restart | Guided steps | | Add capacity | Not available | | Deploy events | From the SDK's deploy marker | | Access it needs | none (guided steps) | ## Guided undo Replit has no API to undo a release, so the problem page shows these steps, plus a prompt you can paste into the AI tool you built with: 1. Open the Deployments tab. 2. Pick the deployment from before the problem and roll back to it. 3. Pagerless checks that the errors stop. ## Questions ### Can Pagerless roll back Replit automatically? No. Replit has no API for it, so Pagerless shows the exact steps and checks that the errors stop after you follow them. ### Does Pagerless need admin access to Replit? It needs none (guided steps). It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Bolt > Know the moment your Bolt app breaks, with the exact steps to put it back. URL: https://pagerless.dev/integrations/bolt Updated: 2026-10-22 ## Set up Ask Bolt to add Pagerless, or add [pagerless/browser](https://pagerless.dev/integrations/browser). Store the key with your host's environment (Bolt apps usually deploy to Netlify). Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Bolt | Fix | On Bolt | | --- | --- | | Undo the update | Guided steps (below) | | Restart | Guided steps | | Add capacity | Not available | | Deploy events | From the SDK's deploy marker | | Access it needs | none (guided steps) | ## Guided undo Bolt has no API to undo a release, so the problem page shows these steps, plus a prompt you can paste into the AI tool you built with: 1. Open View history in your Bolt project. 2. Restore the version from before the problem. 3. Deploy again. 4. Pagerless checks that the errors stop. ## Questions ### Can Pagerless roll back Bolt automatically? No. Bolt has no API for it, so Pagerless shows the exact steps and checks that the errors stop after you follow them. ### Does Pagerless need admin access to Bolt? It needs none (guided steps). It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # Pagerless for Expo (EAS Update) > Know the moment your Expo (EAS Update) app breaks, with the exact steps to put it back. URL: https://pagerless.dev/integrations/expo Updated: 2026-10-22 ## Set up Watch the API your app calls with the Node, Go or Python SDK. Store the key with your server's environment. Or run `npx pagerless connect` and it finds your services and places the key for you. ## Fixes on Expo (EAS Update) | Fix | On Expo (EAS Update) | | --- | --- | | Undo the update | Guided steps (below) | | Restart | Guided steps | | Add capacity | Not available | | Deploy events | From the SDK's deploy marker | | Access it needs | an Expo token (guided fix only) | ## Guided undo Expo (EAS Update) has no API to undo a release, so the problem page shows these steps, plus a prompt you can paste into the AI tool you built with: 1. Run `eas update:rollback`. 2. Choose the earlier update, or the build's embedded update. 3. Pagerless checks that the errors stop. ## Questions ### Can Pagerless roll back Expo (EAS Update) automatically? No. Expo (EAS Update) has no API for it, so Pagerless shows the exact steps and checks that the errors stop after you follow them. ### Does Pagerless need admin access to Expo (EAS Update)? It needs an Expo token (guided fix only). It is stored encrypted and used only for the fixes listed above. You can skip it: alerts work without it. --- # AWS CloudWatch alarms > Subscribe your SNS topic to Pagerless. ALARM opens a problem, OK closes it, and alarm-name rules decide who gets woken. URL: https://pagerless.dev/integrations/aws-cloudwatch Updated: 2026-10-22 ## Set up ```bash aws sns subscribe \ --topic-arn arn:aws:sns:us-east-1:123456789012:alarms \ --protocol https \ --notification-endpoint "https://pagerless:$PAGERLESS_KEY@events.pagerless.dev/v1/aws/sns?wake=prod-*&log=*-dev" ``` Pagerless confirms the subscription itself. Leave raw message delivery off. Every message's AWS signature is checked; unsigned or altered ones are refused. ## Loudness rules | Parameter | Meaning | | --- | --- | | `level=` | Default for every alarm: `wake`, `tell` (default) or `log`. `page` means wake. | | `wake=`, `tell=`, `log=` | Comma-separated alarm-name globs (`*` matches anything, case-insensitive). The loudest match wins. | | `service=`, `env=` | Override the service and environment Pagerless shows. | ## What maps to what - `ALARM` opens a problem at the matched level. - `OK` closes it. - `INSUFFICIENT_DATA` is ignored. - The same alarm always groups as the same problem, whether it arrives as an SNS alarm action or an EventBridge state change. Using Terraform? `npx pagerless connect` writes the `aws_sns_topic_subscription` for each topic. See [Terraform on AWS](https://pagerless.dev/integrations/terraform-aws). --- # AWS EventBridge > Send EventBridge events through an SNS topic subscribed to Pagerless. Alarm state changes group with the same alarm's SNS actions. URL: https://pagerless.dev/integrations/aws-eventbridge Updated: 2026-10-22 1. **Subscribe a topic** Subscribe an SNS topic to Pagerless as in [CloudWatch alarms](https://pagerless.dev/integrations/aws-cloudwatch). 2. **Add a rule** Create an EventBridge rule for the events you care about with that topic as the target. 3. **Set loudness** Use `level=` and the name globs on the subscription URL. "CloudWatch Alarm State Change" events are treated exactly like alarm actions. Other events are grouped by detail type and source. --- # Terraform on AWS > If your AWS lives in Terraform, connect reads it and writes one file, pagerless.tf, for you to apply. URL: https://pagerless.dev/integrations/terraform-aws Updated: 2026-10-22 ## What it reads - `aws_sns_topic` and `aws_cloudwatch_metric_alarm` (counting `count` and `for_each`) - `aws_scheduler_schedule` and `aws_cloudwatch_event_rule` with a `schedule_expression` - `aws_ecs_task_definition` and `aws_ecs_service` - `aws_lambda_function`, including Python runtimes ## What it writes - An `aws_sns_topic_subscription` per topic, pointed at Pagerless. - A `data "aws_ssm_parameter"` for `/pagerless//key`, the ECS container secret, and an IAM policy allowing `ssm:GetParameters` on it. - A check-in line for each scheduled job. ```bash npx pagerless connect terraform apply ``` --- # Prometheus Alertmanager to Pagerless > Paste one URL into Prometheus Alertmanager. Pagerless decides who to wake, explains it in plain words and closes the problem when Prometheus Alertmanager says it's fixed. URL: https://pagerless.dev/integrations/prometheus-alertmanager Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/alertmanager/ ``` 1. **Open alertmanager.yml, a webhook receiver** In Prometheus Alertmanager. 2. **Add a receiver pointing at your Pagerless URL.** 3. **Route your alerts to it, with send_resolved: true.** ```yaml receivers: - name: pagerless webhook_configs: - url: https://events.pagerless.dev/v1/hooks/alertmanager/ send_resolved: true ``` ## What happens | When | Pagerless | | --- | --- | | Fires | Each alert with status firing (one problem per alert in a group) | | Clears | Status resolved | | How loud | The `severity`, `priority` or `level` label | | Proof it's you | The key in the URL is the proof. `npx pagerless connect` can write a receiver that reads the key from a credentials file instead. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Grafana to Pagerless > Paste one URL into Grafana. Pagerless decides who to wake, explains it in plain words and closes the problem when Grafana says it's fixed. URL: https://pagerless.dev/integrations/grafana Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/grafana/ ``` 1. **Open Alerting, Contact points, Webhook** In Grafana. 2. **Create a Webhook contact point with your Pagerless URL.** 3. **Optional: set the HMAC secret to your ingest key.** 4. **Use the contact point in a notification policy.** ## What happens | When | Pagerless | | --- | --- | | Fires | Firing alerts (unified alerting), or state alerting (legacy) | | Clears | Resolved, or ok (legacy) | | How loud | The `severity` label (legacy: the severity tag) | | Proof it's you | Optional HMAC signature (`X-Grafana-Alerting-Signature`), checked when sent. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Datadog to Pagerless > Paste one URL into Datadog. Pagerless decides who to wake, explains it in plain words and closes the problem when Datadog says it's fixed. URL: https://pagerless.dev/integrations/datadog Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/datadog/ ``` 1. **Open Integrations, Webhooks** In Datadog. 2. **Create a webhook named pagerless with your Pagerless URL and the payload Pagerless shows you.** 3. **Add @webhook-pagerless to each monitor's message.** ## What happens | When | Pagerless | | --- | --- | | Fires | Triggered, Warn and No Data transitions | | Clears | Recovered | | How loud | The monitor's priority (Warn and No Data count as warning) | | Proof it's you | The key in the URL. With Terraform, `npx pagerless connect` writes the `datadog_webhook` with the key in a header instead. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # New Relic to Pagerless > Paste one URL into New Relic. Pagerless decides who to wake, explains it in plain words and closes the problem when New Relic says it's fixed. URL: https://pagerless.dev/integrations/new-relic Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/newrelic/ ``` 1. **Open Alerts, Workflows, Webhook destination** In New Relic. 2. **Add a Webhook destination with your Pagerless URL.** 3. **Keep the default payload template.** 4. **Notify it from a workflow.** ## What happens | When | Pagerless | | --- | --- | | Fires | Issue state ACTIVATED or CREATED (legacy: open) | | Clears | CLOSED | | How loud | The issue priority | | Proof it's you | The key in the URL. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Google Cloud Monitoring to Pagerless > Paste one URL into Google Cloud Monitoring. Pagerless decides who to wake, explains it in plain words and closes the problem when Google Cloud Monitoring says it's fixed. URL: https://pagerless.dev/integrations/google-cloud-monitoring Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/gcp/ ``` 1. **Open Monitoring, Notification channels** In Google Cloud Monitoring. 2. **Add a Webhook notification channel with your Pagerless URL, or a Pub/Sub push subscription to it.** 3. **Attach the channel to your alerting policies.** ## What happens | When | Pagerless | | --- | --- | | Fires | Incident state open | | Clears | Closed | | How loud | The incident severity | | Proof it's you | The key in the URL. A Pub/Sub push with an OIDC token is also verified against Google's certificates. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Azure Monitor to Pagerless > Paste one URL into Azure Monitor. Pagerless decides who to wake, explains it in plain words and closes the problem when Azure Monitor says it's fixed. URL: https://pagerless.dev/integrations/azure-monitor Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/azure/ ``` 1. **Open Action group, Webhook** In Azure Monitor. 2. **Add a Webhook action to an action group with your Pagerless URL.** 3. **Turn on the common alert schema (other payloads are refused).** ## What happens | When | Pagerless | | --- | --- | | Fires | MonitorCondition Fired | | Clears | Resolved | | How loud | Sev0 critical, Sev1 error, Sev2 warning, Sev3 info, Sev4 verbose | | Proof it's you | The key in the URL. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Sentry to Pagerless > Paste one URL into Sentry. Pagerless decides who to wake, explains it in plain words and closes the problem when Sentry says it's fixed. URL: https://pagerless.dev/integrations/sentry Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/sentry/ ``` 1. **Open Settings, Developer settings, Internal integration** In Sentry. 2. **Create an internal integration with your Pagerless URL as the webhook.** 3. **Turn on Alert Rule Action and Issue webhooks.** 4. **Save the integration's client secret in Pagerless; unsigned deliveries are refused from then on.** 5. **Add the integration as an action on your alert rules.** ## What happens | When | Pagerless | | --- | --- | | Fires | Issue alerts, and metric alerts at critical or warning | | Clears | The issue resolved, or the metric alert resolved | | How loud | Fatal wakes; error and warning tell; info and debug log | | Proof it's you | `Sentry-Hook-Signature` HMAC with the client secret, required once saved. | Keep Sentry for debugging; let Pagerless decide who to wake and how. See [Pagerless vs Sentry alerts](https://pagerless.dev/vs/sentry). ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Better Stack to Pagerless > Paste one URL into Better Stack. Pagerless decides who to wake, explains it in plain words and closes the problem when Better Stack says it's fixed. URL: https://pagerless.dev/integrations/better-stack Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/betterstack/ ``` 1. **Open Integrations, Webhook** In Better Stack. 2. **Add a Webhook integration with your Pagerless URL** Nothing else to set. ## What happens | When | Pagerless | | --- | --- | | Fires | Incident status started | | Clears | Resolved (acknowledged is ignored) | | How loud | Set with `?level=` on the URL | | Proof it's you | The key in the URL. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # UptimeRobot to Pagerless > Paste one URL into UptimeRobot. Pagerless decides who to wake, explains it in plain words and closes the problem when UptimeRobot says it's fixed. URL: https://pagerless.dev/integrations/uptimerobot Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/uptimerobot/ ``` 1. **Open Alert contacts, Webhook** In UptimeRobot. 2. **Add a Webhook alert contact with your Pagerless URL.** 3. **POST, send as JSON, with the payload Pagerless shows you.** 4. **Attach it to your monitors.** ## What happens | When | Pagerless | | --- | --- | | Fires | Down alerts, and SSL alerts | | Clears | Up alerts | | How loud | Set with `?level=` on the URL | | Proof it's you | The key in the URL. JSON, form or query parameters are all accepted. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Pingdom to Pagerless > Paste one URL into Pingdom. Pagerless decides who to wake, explains it in plain words and closes the problem when Pingdom says it's fixed. URL: https://pagerless.dev/integrations/pingdom Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/pingdom/ ``` 1. **Open Integrations, Webhook** In Pingdom. 2. **Add a Webhook integration with your Pagerless URL** Nothing else to set. 3. **Attach it to your checks.** ## What happens | When | Pagerless | | --- | --- | | Fires | State DOWN or FAILING | | Clears | UP or SUCCESSFUL | | How loud | The check's importance level | | Proof it's you | The key in the URL. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Checkly to Pagerless > Paste one URL into Checkly. Pagerless decides who to wake, explains it in plain words and closes the problem when Checkly says it's fixed. URL: https://pagerless.dev/integrations/checkly Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/checkly/ ``` 1. **Open Alert channels, Webhook** In Checkly. 2. **Add a Webhook alert channel with your Pagerless URL.** 3. **Keep the default template.** 4. **Optional: set the secret to your ingest key.** ## What happens | When | Pagerless | | --- | --- | | Fires | Failure; degraded and SSL alerts as warnings | | Clears | Recovery and degraded recovery | | How loud | Failure is an alert; degraded and SSL are warnings | | Proof it's you | Optional `x-checkly-signature`, checked when sent. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Stripe to Pagerless > Paste one URL into Stripe. Pagerless decides who to wake, explains it in plain words and closes the problem when Stripe says it's fixed. URL: https://pagerless.dev/integrations/stripe Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/stripe/ ``` 1. **Open Developers, Webhooks, endpoint** In Stripe. 2. **Add an endpoint with your Pagerless URL.** 3. **Events: payment_intent.payment_failed, payment_intent.succeeded, charge.failed (invoice.payment_failed and checkout.session.async_payment_failed also count).** 4. **Save the signing secret (whsec_…) in Pagerless; unsigned deliveries are refused from then on.** ## What happens | When | Pagerless | | --- | --- | | Fires | Failed payments, counted as errors on the payments route | | Clears | Not an alert: successes are the denominator | | How loud | Not mapped: several failures within 5 minutes trip the payments floor and wake someone; one decline does not | | Proof it's you | `Stripe-Signature`, 5-minute tolerance, required once saved. | Test-mode events are ignored unless the URL ends with `?test=1`. This works with or without the SDK; see [payments down alerts](https://pagerless.dev/solutions/payments-down-alerts). ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # GitHub Actions to Pagerless > Paste one URL into GitHub Actions. Pagerless decides who to wake, explains it in plain words and closes the problem when GitHub Actions says it's fixed. URL: https://pagerless.dev/integrations/github-actions Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/github/ ``` 1. **Open Repository settings, Webhooks** In GitHub Actions. 2. **Add a webhook with your Pagerless URL, content type JSON.** 3. **Secret: your ingest key.** 4. **Events: Workflow runs.** ## What happens | When | Pagerless | | --- | --- | | Fires | A workflow run on the default branch that ends in failure, timed out or startup failure | | Clears | The next successful run | | How loud | Set with `?level=` on the URL | | Proof it's you | `X-Hub-Signature-256`, checked when sent. | Other branches, pull requests and cancelled runs are ignored, so only a broken main reaches you. ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Any tool (JSON webhook) to Pagerless > Paste one URL into Any tool (JSON webhook). Pagerless decides who to wake, explains it in plain words and closes the problem when Any tool (JSON webhook) says it's fixed. URL: https://pagerless.dev/integrations/generic-webhook Updated: 2026-10-22 ## Set up Your URL is in the Pagerless app under Other tools, with the key filled in: ```text https://events.pagerless.dev/v1/hooks/generic/ ``` 1. **Open your tool's webhook or HTTP action** In Any tool (JSON webhook). 2. **POST JSON to your Pagerless URL when an alert fires.** 3. **POST the same id with status resolved when it clears.** ```json {"id": "disk-db1", "status": "firing", "title": "Disk almost full on db-1", "severity": "critical"} {"id": "disk-db1", "status": "resolved"} ``` ## What happens | When | Pagerless | | --- | --- | | Fires | Status firing (title required); up to 100 alerts in `{"alerts": [...]}` | | Clears | The same id with status resolved | | How loud | Wake, tell or log, or the tool's own word (critical, warning, info…) | | Proof it's you | Optional `X-Pagerless-Signature: sha256=`. | ## Choosing who gets woken | Rule | Example | | --- | --- | | Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) | | The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log | | A default on the URL | `?level=wake` (or tell, log). Without one: tell. | `?service=` and `?env=` set the service and environment shown on the problem. --- # Phone calls through your Twilio > Wake alerts call you after 5 minutes without a tap. Calls go through your Twilio account, so you pay Twilio and nothing more. URL: https://pagerless.dev/integrations/twilio Updated: 2026-10-22 1. **Get a Twilio number** Any voice-capable number in your Twilio account. 2. **Add it to Pagerless** Paste your Account SID, auth token and the number in Alerts. They are stored encrypted. 3. **Add your phone** Each person adds their own number. Pagerless sends a test call. The call reads a fixed sentence about the problem (never AI-written text) and asks you to press 1. Pressing 1 acknowledges, like tapping I'm on it. ## Questions ### Why not include calls in the price? Call prices vary a lot by country. Using your own account means you see the exact cost and we never add a margin. --- # Slack > One message per problem in the channel you pick, with what broke and the fix waiting for approval. URL: https://pagerless.dev/integrations/slack Updated: 2026-10-22 In the app's Alerts screen, paste a Slack incoming-webhook URL, or a bot token and a channel. Messages carry Approve and Open buttons that link to the problem. Tell alerts go there; wake alerts post there as well as pushing and calling. Slack is never the only path for a wake alert, because a muted channel cannot wake anyone. --- # Telegram > Alerts as messages from your own Telegram bot, on any phone, including Android. URL: https://pagerless.dev/integrations/telegram Updated: 2026-10-22 Create a bot with @BotFather, then paste its token and your chat id in the app's Alerts screen. Messages carry link buttons to the problem. Tell alerts arrive as messages; wake alerts message you too, then call through Twilio if you don't respond. --- # Webhooks > Every alert as signed JSON to a URL you choose. URL: https://pagerless.dev/integrations/webhooks Updated: 2026-10-22 Each request carries `Pagerless-Signature: t=,v1=`. Compute the HMAC of `t + "." + body` with your webhook secret and compare it in constant time; reject old timestamps. ```js import { createHmac, timingSafeEqual } from "node:crypto"; function verify(header, body, secret) { const { t, v1 } = Object.fromEntries(header.split(",").map((p) => p.split("="))); const mac = createHmac("sha256", secret).update(`${t}.${body}`).digest("hex"); return Math.abs(Date.now() / 1000 - Number(t)) < 300 && timingSafeEqual(Buffer.from(mac), Buffer.from(v1)); } ``` --- # Compare > Side-by-side pages with every number linked to the vendor's own page, checked October 22, 2026. Where another tool fits you better, the page says so. URL: https://pagerless.dev/compare Updated: 2026-10-22 ## Pagerless vs - [Pagerless vs PagerDuty](https://pagerless.dev/vs/pagerduty): Engineering and operations teams, from small teams to large enterprises. - [Pagerless vs Opsgenie](https://pagerless.dev/vs/opsgenie): End of sale June 4, 2025. End of support and shutdown April 5, 2027; data not migrated by then is deleted. - [Pagerless vs incident.io](https://pagerless.dev/vs/incident-io): Software teams from startups to enterprises. - [Pagerless vs Better Stack](https://pagerless.dev/vs/better-stack): Developers and small-to-mid engineering teams. - [Pagerless vs Rootly](https://pagerless.dev/vs/rootly): Engineering and SRE teams at startups to enterprises. - [Pagerless vs FireHydrant](https://pagerless.dev/vs/firehydrant): Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). - [Pagerless vs Grafana OnCall](https://pagerless.dev/vs/grafana-oncall): OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. - [Pagerless vs Squadcast](https://pagerless.dev/vs/squadcast): Acquired by SolarWinds (announced March 3, 2025). - [Pagerless vs Splunk On-Call](https://pagerless.dev/vs/splunk-on-call): Still sold. Cisco completed its acquisition of Splunk on March 18, 2024. - [Pagerless vs Zenduty](https://pagerless.dev/vs/zenduty): Acquired by Xurrent (announced February 27, 2025). - [Pagerless vs Sentry](https://pagerless.dev/vs/sentry): Developers from solo to enterprise. ## Status changes to know about | Tool | What changed | | --- | --- | | [Opsgenie](https://pagerless.dev/vs/opsgenie) | End of sale June 4, 2025. End of support and shutdown April 5, 2027; data not migrated by then is deleted. | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. | | [Squadcast](https://pagerless.dev/vs/squadcast) | Acquired by SolarWinds (announced March 3, 2025). | | [Splunk On-Call](https://pagerless.dev/vs/splunk-on-call) | Still sold. Cisco completed its acquisition of Splunk on March 18, 2024. | | [Zenduty](https://pagerless.dev/vs/zenduty) | Acquired by Xurrent (announced February 27, 2025). | --- # Pagerless vs PagerDuty > An honest side-by-side, with sources. Where PagerDuty is the better fit, we say so. URL: https://pagerless.dev/vs/pagerduty Updated: 2026-10-22 PagerDuty is an incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. It is built for engineering and operations teams, from small teams to large enterprises. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. ## Side by side | Feature | Pagerless | PagerDuty | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Professional: $21 per user per month billed annually, $25 monthly | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose PagerDuty if - You need on-call rotations and schedules across many people. - You run a large team with formal incident roles and a big integration catalog. - You want SMS paging. ## Choose Pagerless if - You are one person or a small team and want to sleep, not manage schedules. - You want the alert to say what broke and why, in plain words, with the fix ready. - You want one-tap undo of a bad deploy on your host. - You'd rather pay Twilio's call price than per seat. ## Moving from PagerDuty to Pagerless 1. **Step 1** List the services that page you today and who is in each escalation policy. 2. **Step 2** Run `npx pagerless connect` in each repo, or add the SDK by hand. 3. **Step 3** Recreate the escalation order in Pagerless: you first, then your backup. 4. **Step 4** Run both side by side for a week; Pagerless's weekly email shows what it would have woken you for. 5. **Step 5** Turn off PagerDuty paging for those services. ## Questions ### Is Pagerless a good PagerDuty alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, PagerDuty fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every PagerDuty fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) --- # Pagerless vs Opsgenie > An honest side-by-side, with sources. Where Opsgenie is the better fit, we say so. URL: https://pagerless.dev/vs/opsgenie Updated: 2026-10-22 Opsgenie is Atlassian's alerting and on-call tool. Its sale ended on June 4, 2025, and it shuts down on April 5, 2027; Atlassian moves customers to Jira Service Management or Compass. It is built for existing Atlassian customers only; new sign-ups are closed. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. > **Status:** End of sale June 4, 2025. End of support and shutdown April 5, 2027; data not migrated by then is deleted. ## Side by side | Feature | Pagerless | Opsgenie | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | Listed but closed to new customers: up to 5 users, 100 SMS for the account, no voice | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Essentials: $9.45 per user per month billed annually (existing customers only) | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Essentials: 100 SMS or voice per user in the US and Canada, 25 elsewhere | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Opsgenie if - You are moving to Jira Service Management anyway and want alerting inside it. - You still have time on a contract and need nothing new before April 2027. ## Choose Pagerless if - You need a replacement that isn't tied to Jira. - You are a solo developer or small team that used Opsgenie's free plan. - You want AI diagnosis and one-tap undo, not just routing. ## Moving from Opsgenie to Pagerless 1. **Step 1** Export your Opsgenie teams, escalations and integrations before April 5, 2027. 2. **Step 2** Run `npx pagerless connect` in each repo; CloudWatch alarms move by pointing their SNS topic at Pagerless. 3. **Step 3** Set the escalation order: you, then your backup. 4. **Step 4** Run both for a week, then remove the Opsgenie integrations. ## Questions ### Is Pagerless a good Opsgenie alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Opsgenie fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Opsgenie fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [Atlassian: Opsgenie pricing and end of sales notice](https://www.atlassian.com/software/opsgenie/pricing) 2. [Atlassian: Opsgenie migration](https://www.atlassian.com/software/opsgenie/migration) --- # Pagerless vs incident.io > An honest side-by-side, with sources. Where incident.io is the better fit, we say so. URL: https://pagerless.dev/vs/incident-io Updated: 2026-10-22 incident.io is a Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. It is built for software teams from startups to enterprises. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. ## Side by side | Feature | Pagerless | incident.io | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Team: $15 per user per month billed annually, plus $10 per user for on-call | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose incident.io if - Your incidents run in Slack with roles, channels and post-incident reviews. - You need schedules, status pages and incident workflows in one tool. ## Choose Pagerless if - You don't run incidents as a team process; you want to be woken only when it matters. - You want AI diagnosis and one-tap undo on your host. - You want setup in one command and no per-seat price. ## Moving from incident.io to Pagerless 1. **Step 1** Run `npx pagerless connect` in each repo. 2. **Step 2** Point alerts that page you today at Pagerless instead. 3. **Step 3** Keep incident.io for incident write-ups if you like it; Pagerless doesn't replace that. ## Questions ### Is Pagerless a good incident.io alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, incident.io fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every incident.io fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [incident.io pricing](https://incident.io/pricing) 2. [incident.io on-call notification channels](https://docs.incident.io/on-call/ios-notifications) --- # Pagerless vs Better Stack > An honest side-by-side, with sources. Where Better Stack is the better fit, we say so. URL: https://pagerless.dev/vs/better-stack Updated: 2026-10-22 Better Stack is an observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. It is built for developers and small-to-mid engineering teams. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. ## Side by side | Feature | Pagerless | Better Stack | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | 10 monitors and heartbeats, 1 status page, Slack and email alerts | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Responder license: $29 a month billed yearly, $34 monthly | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Better Stack if - You want outside-in uptime checks and a public status page. - You also want logs and traces from the same vendor. ## Choose Pagerless if - You want alerts from inside the app (errors, failing payments, crash loops), not only from outside pings. - You want AI diagnosis and one-tap undo. - You want phone calls without a paid responder license (calls bill on your own Twilio). ## Moving from Better Stack to Pagerless 1. **Step 1** Keep Better Stack uptime checks if you like them, and point a [Better Stack webhook](https://pagerless.dev/integrations/better-stack) at Pagerless. 2. **Step 2** Add Pagerless to the app with `npx pagerless connect` for in-app errors and floors. 3. **Step 3** Move phone paging to Pagerless. ## Questions ### Is Pagerless a good Better Stack alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Better Stack fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Better Stack fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [Better Stack pricing](https://betterstack.com/pricing) --- # Pagerless vs Rootly > An honest side-by-side, with sources. Where Rootly is the better fit, we say so. URL: https://pagerless.dev/vs/rootly Updated: 2026-10-22 Rootly is a Slack-native incident response and on-call platform, sold as separate per-user products. It is built for engineering and SRE teams at startups to enterprises. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. ## Side by side | Feature | Pagerless | Rootly | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | No free plan; a trial, and a startup program with discounts | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | On-Call: $20 per user per month (billing basis not stated) | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Rootly if - You run structured incidents in Slack with retrospectives and roles. - You want a mature on-call product with schedules for a larger team. ## Choose Pagerless if - You want a free plan for you and a backup. - You want the alert itself to explain what broke and offer the fix. ## Moving from Rootly to Pagerless 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Route the alerts that page you to Pagerless. 3. **Step 3** Keep Rootly for incident process if you use it. ## Questions ### Is Pagerless a good Rootly alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Rootly fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Rootly fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [Rootly pricing](https://rootly.com/pricing) 2. [Rootly on-call notifications](https://docs.rootly.com/on-call/on-call-notifications) --- # Pagerless vs FireHydrant > An honest side-by-side, with sources. Where FireHydrant is the better fit, we say so. URL: https://pagerless.dev/vs/firehydrant Updated: 2026-10-22 FireHydrant is an incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. It is built for engineering and SRE teams, with an enterprise focus. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. > **Status:** Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## Side by side | Feature | Pagerless | FireHydrant | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Pro: $25 per responder per month billed annually | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | SMS and voice available for purchase on Pro; prices not listed | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose FireHydrant if - You want runbooks, a service catalog and incident process in one place. - You already use Freshworks products. ## Choose Pagerless if - You want on-call that works on a free plan. - You want AI diagnosis and one-tap undo, with calls on your own Twilio. ## Moving from FireHydrant to Pagerless 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move paging for each service to Pagerless. 3. **Step 3** Keep runbooks where they are; Pagerless links fixes to the problem. ## Questions ### Is Pagerless a good FireHydrant alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, FireHydrant fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every FireHydrant fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [FireHydrant pricing](https://firehydrant.com/pricing/) 2. [Freshworks: agreement to acquire FireHydrant](https://www.freshworks.com/press-releases/freshworks-to-deepen-its-it-service-and-operations-portfolio-with-acquisition-of-firehydrants-ai-native-incident-management-and-reliability-platform/) 3. [Freshworks: acquisition closed](https://www.freshworks.com/theworks/company-news/freshworks-firehydrant-acquisition/) --- # Pagerless vs Grafana OnCall > An honest side-by-side, with sources. Where Grafana OnCall is the better fit, we say so. URL: https://pagerless.dev/vs/grafana-oncall Updated: 2026-10-22 Grafana OnCall is Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. It is built for teams already on Grafana or Grafana Cloud. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. > **Status:** OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## Side by side | Feature | Pagerless | Grafana OnCall | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | Grafana Cloud Free: IRM limited to 3 active users a month | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Grafana OnCall if - Your alerts already live in Grafana and you want on-call next to your dashboards. - You are on Grafana Cloud and within the free 3 users. ## Choose Pagerless if - You self-hosted OnCall OSS and lost phone and SMS when Cloud Connection ended. - You want alerts from inside your app without running Grafana. - You want AI diagnosis and one-tap undo. ## Moving from Grafana OnCall to Pagerless 1. **Step 1** Run `npx pagerless connect` in each repo. 2. **Step 2** Point a Grafana webhook contact point at Pagerless: firing alerts open problems, resolved ones close them. See [Grafana](https://pagerless.dev/integrations/grafana). 3. **Step 3** Set the escalation order and turn off the old OnCall. ## Questions ### Is Pagerless a good Grafana OnCall alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Grafana OnCall fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Grafana OnCall fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) 2. [Grafana OnCall OSS docs (archived)](https://grafana.com/docs/oncall/latest/set-up/open-source/) 3. [Grafana pricing](https://grafana.com/pricing/) 4. [Grafana IRM phone and SMS](https://grafana.com/docs/grafana-cloud/alerting-and-irm/irm/notify-responders/phone-and-sms/) --- # Pagerless vs Squadcast > An honest side-by-side, with sources. Where Squadcast is the better fit, we say so. URL: https://pagerless.dev/vs/squadcast Updated: 2026-10-22 Squadcast is an on-call and incident response platform acquired by SolarWinds in March 2025; its pricing page now redirects to SolarWinds Incident Response. It is built for SRE, DevOps and IT operations teams. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. > **Status:** Acquired by SolarWinds (announced March 3, 2025). ## Side by side | Feature | Pagerless | Squadcast | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | No free plan on the current SolarWinds page; a 14-day trial | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Pro: from $15 per user per month billed annually | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Pro: 100 SMS and voice per user in the US, India and Brazil, 25 elsewhere | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Squadcast if - You use SolarWinds observability and want incident response in the same suite. ## Choose Pagerless if - You used Squadcast's free plan and need a free replacement. - You want AI diagnosis and one-tap undo for an app you built. ## Moving from Squadcast to Pagerless 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move each alert source that pages you. 3. **Step 3** Set the escalation order. ## Questions ### Is Pagerless a good Squadcast alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Squadcast fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Squadcast fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) 2. [SolarWinds acquires Squadcast](https://solarwinds.com/company/newsroom/press-releases/solarwinds-acquires-squadcast-unifying-observability-and-incident-response) --- # Pagerless vs Splunk On-Call > An honest side-by-side, with sources. Where Splunk On-Call is the better fit, we say so. URL: https://pagerless.dev/vs/splunk-on-call Updated: 2026-10-22 Splunk On-Call is the on-call and incident alerting tool formerly called VictorOps, now part of Cisco through the Splunk acquisition. It is built for IT and DevOps teams, mostly existing Splunk and Cisco customers. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. > **Status:** Still sold. Cisco completed its acquisition of Splunk on March 18, 2024. ## Side by side | Feature | Pagerless | Splunk On-Call | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | No free plan; a free trial | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | From $5 per user per month billed annually, for up to 10 seats | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Not stated on the pricing page | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Splunk On-Call if - You already run Splunk and want on-call alongside it. - You want a low per-seat price for a team of up to 10. ## Choose Pagerless if - You want a free plan for you and a backup. - You want the alert to explain what broke and offer the fix. ## Moving from Splunk On-Call to Pagerless 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move each routing key's alerts to Pagerless. 3. **Step 3** Set the escalation order. ## Questions ### Is Pagerless a good Splunk On-Call alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Splunk On-Call fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Splunk On-Call fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [Splunk On-Call pricing](https://www.splunk.com/en_us/products/pricing/devops.html) 2. [Cisco completes acquisition of Splunk](https://investor.cisco.com/files/doc_news/Cisco-Completes-Acquisition-of-Splunk-2024.pdf) --- # Pagerless vs Zenduty > An honest side-by-side, with sources. Where Zenduty is the better fit, we say so. URL: https://pagerless.dev/vs/zenduty Updated: 2026-10-22 Zenduty is an incident and alert management platform with on-call and escalations, acquired by Xurrent in 2025. It is built for small-to-mid DevOps and SRE teams. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. > **Status:** Acquired by Xurrent (announced February 27, 2025). ## Side by side | Feature | Pagerless | Zenduty | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | No free plan; a 14-day trial | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Starter: $6 per user per month (up to 5 users), apparently billed yearly | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | Starter appears to include 100 calls or SMS per user a month in the US, Canada and India, 25 elsewhere | | Schedules and rotations | No: an escalation order (you, then your backup) | Yes | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Zenduty if - You want low-cost on-call with schedules for a small team. - You want SMS paging. ## Choose Pagerless if - You want it free for you and a backup. - You want AI diagnosis and one-tap undo. ## Moving from Zenduty to Pagerless 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move each integration's alerts. 3. **Step 3** Set the escalation order. ## Questions ### Is Pagerless a good Zenduty alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Zenduty fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Zenduty fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [Zenduty pricing](https://zenduty.com/pricing/) 2. [Xurrent acquires Zenduty](https://www.businesswire.com/news/home/20250227806255/en/Xurrent-Acquires-Zenduty-Completing-the-Incident-Response-and-Remediation-Loop) --- # Pagerless vs Sentry > An honest side-by-side, with sources. Where Sentry is the better fit, we say so. URL: https://pagerless.dev/vs/sentry Updated: 2026-10-22 Sentry alerts is application error and performance monitoring; its alerts notify by email or through integrations and it has no built-in phone paging. It is built for developers from solo to enterprise. Pagerless is on-call for people who build apps, often with AI: it decides whether a problem should wake you, explains what broke in plain words, and gets the fix ready for one tap. ## Side by side | Feature | Pagerless | Sentry | | --- | --- | --- | | Free plan | You + 1 backup, 3 apps, no card | Developer: 1 user, 5,000 errors, alerts by email only | | Paid | Team planned: per alert sent, no per-seat price (not open yet) | Team: $26 a month billed annually ($29 monthly), a flat plan price | | Phone and SMS | Phone calls through your own Twilio at Twilio's price; no SMS | No native phone paging; it needs a paging integration on Team and above | | Schedules and rotations | No: an escalation order (you, then your backup) | Not an on-call tool | ## What Pagerless does differently - **Decides how loud to be.** Wake, tell or log for every problem; four floors (app silent, crash loop, 5xx burst, payments failing) always wake someone, and an unsure decision is never quieter than tell. - **Explains what broke.** Every problem gets a plain-words diagnosis from the scrubbed samples and recent deploys. - **Gets the fix ready.** Undo the update, restart or add capacity on 20+ hosts with one tap and Face ID. - **Sets up in one command.** `npx pagerless connect` finds services, jobs and AWS alarms in your repo. ## Choose Sentry if - You need deep error tracking: stack traces, releases, performance, session replay. - Your team triages errors daily in an issue list. ## Choose Pagerless if - You need someone woken when it really matters, by phone, not an email. - You want fewer, louder-when-needed alerts with the fix ready. - Use both: keep Sentry for debugging, let Pagerless decide who to wake. ## Moving from Sentry to Pagerless 1. **Step 1** Keep Sentry, and send its alerts to Pagerless with an [internal integration](https://pagerless.dev/integrations/sentry): fatal errors wake, resolved issues close the problem. 2. **Step 2** Add Pagerless with `npx pagerless connect` for floors, phone calls and one-tap undo. 3. **Step 3** Turn down Sentry's email alerts so you aren't told twice. ## Questions ### Is Pagerless a good Sentry alternative? For one person or a small team that wants to be woken only when it matters, yes: it is free for you and a backup, calls through your own Twilio and offers one-tap undo. For large teams that need rotations and schedules, Sentry fits better today. ### Does Pagerless have on-call schedules? Not yet. Each app has an escalation order: you first, then your backup after 5 minutes without an answer. ### How current is this comparison? Every Sentry fact on this page comes from the sources below, checked on October 22, 2026. Prices change; check their page before deciding. Sources: 1. [Sentry pricing](https://sentry.io/pricing/) 2. [Sentry alerts docs](https://docs.sentry.io/product/alerts/) --- # Alternatives > Each page lists the realistic options, their free plans and prices from their own pages, and how to move. URL: https://pagerless.dev/alternatives Updated: 2026-10-22 - [PagerDuty alternatives](https://pagerless.dev/alternatives/pagerduty): Options if PagerDuty doesn't fit. - [Opsgenie alternatives](https://pagerless.dev/alternatives/opsgenie): End of sale June 4, 2025. End of support and shutdown April 5, 2027; data not migrated by then is deleted. - [incident.io alternatives](https://pagerless.dev/alternatives/incident-io): Options if incident.io doesn't fit. - [Better Stack alternatives](https://pagerless.dev/alternatives/better-stack): Options if Better Stack doesn't fit. - [Rootly alternatives](https://pagerless.dev/alternatives/rootly): Options if Rootly doesn't fit. - [FireHydrant alternatives](https://pagerless.dev/alternatives/firehydrant): Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). - [Grafana OnCall alternatives](https://pagerless.dev/alternatives/grafana-oncall): OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. - [Squadcast alternatives](https://pagerless.dev/alternatives/squadcast): Acquired by SolarWinds (announced March 3, 2025). - [Splunk On-Call alternatives](https://pagerless.dev/alternatives/splunk-on-call): Still sold. Cisco completed its acquisition of Splunk on March 18, 2024. - [Zenduty alternatives](https://pagerless.dev/alternatives/zenduty): Acquired by Xurrent (announced February 27, 2025). --- # PagerDuty alternatives > What else to look at if PagerDuty is too much, too expensive or not the right shape, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/pagerduty Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/pagerduty) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | | [Squadcast](https://pagerless.dev/vs/squadcast) | No free plan on the current SolarWinds page; a 14-day trial | Pro: from $15 per user per month billed annually | Pro: 100 SMS and voice per user in the US, India and Brazil, 25 elsewhere | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 3. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 4. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 5. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 6. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## 7. Squadcast An on-call and incident response platform acquired by SolarWinds in March 2025; its pricing page now redirects to SolarWinds Incident Response. Best for SRE, DevOps and IT operations teams. Acquired by SolarWinds (announced March 3, 2025). ## Moving from PagerDuty 1. **Step 1** List the services that page you today and who is in each escalation policy. 2. **Step 2** Run `npx pagerless connect` in each repo, or add the SDK by hand. 3. **Step 3** Recreate the escalation order in Pagerless: you first, then your backup. 4. **Step 4** Run both side by side for a week; Pagerless's weekly email shows what it would have woken you for. 5. **Step 5** Turn off PagerDuty paging for those services. ## Questions ### What is the best free PagerDuty alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which PagerDuty alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 2. [incident.io pricing](https://incident.io/pricing) 3. [Better Stack pricing](https://betterstack.com/pricing) 4. [Rootly pricing](https://rootly.com/pricing) 5. [FireHydrant pricing](https://firehydrant.com/pricing/) 6. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) 7. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) --- # Opsgenie alternatives > End of sale June 4, 2025. End of support and shutdown April 5, 2027; data not migrated by then is deleted. Here is what to move to, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/opsgenie Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/opsgenie) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 5. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 6. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 7. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## Moving from Opsgenie 1. **Step 1** Export your Opsgenie teams, escalations and integrations before April 5, 2027. 2. **Step 2** Run `npx pagerless connect` in each repo; CloudWatch alarms move by pointing their SNS topic at Pagerless. 3. **Step 3** Set the escalation order: you, then your backup. 4. **Step 4** Run both for a week, then remove the Opsgenie integrations. ## Questions ### What is the best free Opsgenie alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which Opsgenie alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [Atlassian: Opsgenie pricing and end of sales notice](https://www.atlassian.com/software/opsgenie/pricing) 2. [Atlassian: Opsgenie migration](https://www.atlassian.com/software/opsgenie/migration) 3. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 4. [incident.io pricing](https://incident.io/pricing) 5. [Better Stack pricing](https://betterstack.com/pricing) 6. [Rootly pricing](https://rootly.com/pricing) 7. [FireHydrant pricing](https://firehydrant.com/pricing/) 8. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) --- # incident.io alternatives > What else to look at if incident.io is too much, too expensive or not the right shape, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/incident-io Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/incident-io) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | | [Squadcast](https://pagerless.dev/vs/squadcast) | No free plan on the current SolarWinds page; a 14-day trial | Pro: from $15 per user per month billed annually | Pro: 100 SMS and voice per user in the US, India and Brazil, 25 elsewhere | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 4. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 5. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 6. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## 7. Squadcast An on-call and incident response platform acquired by SolarWinds in March 2025; its pricing page now redirects to SolarWinds Incident Response. Best for SRE, DevOps and IT operations teams. Acquired by SolarWinds (announced March 3, 2025). ## Moving from incident.io 1. **Step 1** Run `npx pagerless connect` in each repo. 2. **Step 2** Point alerts that page you today at Pagerless instead. 3. **Step 3** Keep incident.io for incident write-ups if you like it; Pagerless doesn't replace that. ## Questions ### What is the best free incident.io alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which incident.io alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [incident.io pricing](https://incident.io/pricing) 2. [incident.io on-call notification channels](https://docs.incident.io/on-call/ios-notifications) 3. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 4. [Better Stack pricing](https://betterstack.com/pricing) 5. [Rootly pricing](https://rootly.com/pricing) 6. [FireHydrant pricing](https://firehydrant.com/pricing/) 7. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) 8. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) --- # Better Stack alternatives > What else to look at if Better Stack is too much, too expensive or not the right shape, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/better-stack Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/better-stack) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | | [Squadcast](https://pagerless.dev/vs/squadcast) | No free plan on the current SolarWinds page; a 14-day trial | Pro: from $15 per user per month billed annually | Pro: 100 SMS and voice per user in the US, India and Brazil, 25 elsewhere | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 5. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 6. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## 7. Squadcast An on-call and incident response platform acquired by SolarWinds in March 2025; its pricing page now redirects to SolarWinds Incident Response. Best for SRE, DevOps and IT operations teams. Acquired by SolarWinds (announced March 3, 2025). ## Moving from Better Stack 1. **Step 1** Keep Better Stack uptime checks if you like them, and point a [Better Stack webhook](https://pagerless.dev/integrations/better-stack) at Pagerless. 2. **Step 2** Add Pagerless to the app with `npx pagerless connect` for in-app errors and floors. 3. **Step 3** Move phone paging to Pagerless. ## Questions ### What is the best free Better Stack alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which Better Stack alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [Better Stack pricing](https://betterstack.com/pricing) 2. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 3. [incident.io pricing](https://incident.io/pricing) 4. [Rootly pricing](https://rootly.com/pricing) 5. [FireHydrant pricing](https://firehydrant.com/pricing/) 6. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) 7. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) --- # Rootly alternatives > What else to look at if Rootly is too much, too expensive or not the right shape, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/rootly Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/rootly) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | | [Squadcast](https://pagerless.dev/vs/squadcast) | No free plan on the current SolarWinds page; a 14-day trial | Pro: from $15 per user per month billed annually | Pro: 100 SMS and voice per user in the US, India and Brazil, 25 elsewhere | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 5. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 6. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## 7. Squadcast An on-call and incident response platform acquired by SolarWinds in March 2025; its pricing page now redirects to SolarWinds Incident Response. Best for SRE, DevOps and IT operations teams. Acquired by SolarWinds (announced March 3, 2025). ## Moving from Rootly 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Route the alerts that page you to Pagerless. 3. **Step 3** Keep Rootly for incident process if you use it. ## Questions ### What is the best free Rootly alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which Rootly alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [Rootly pricing](https://rootly.com/pricing) 2. [Rootly on-call notifications](https://docs.rootly.com/on-call/on-call-notifications) 3. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 4. [incident.io pricing](https://incident.io/pricing) 5. [Better Stack pricing](https://betterstack.com/pricing) 6. [FireHydrant pricing](https://firehydrant.com/pricing/) 7. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) 8. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) --- # FireHydrant alternatives > Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). Here is what to move to, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/firehydrant Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/firehydrant) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | | [Squadcast](https://pagerless.dev/vs/squadcast) | No free plan on the current SolarWinds page; a 14-day trial | Pro: from $15 per user per month billed annually | Pro: 100 SMS and voice per user in the US, India and Brazil, 25 elsewhere | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 5. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 6. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## 7. Squadcast An on-call and incident response platform acquired by SolarWinds in March 2025; its pricing page now redirects to SolarWinds Incident Response. Best for SRE, DevOps and IT operations teams. Acquired by SolarWinds (announced March 3, 2025). ## Moving from FireHydrant 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move paging for each service to Pagerless. 3. **Step 3** Keep runbooks where they are; Pagerless links fixes to the problem. ## Questions ### What is the best free FireHydrant alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which FireHydrant alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [FireHydrant pricing](https://firehydrant.com/pricing/) 2. [Freshworks: agreement to acquire FireHydrant](https://www.freshworks.com/press-releases/freshworks-to-deepen-its-it-service-and-operations-portfolio-with-acquisition-of-firehydrants-ai-native-incident-management-and-reliability-platform/) 3. [Freshworks: acquisition closed](https://www.freshworks.com/theworks/company-news/freshworks-firehydrant-acquisition/) 4. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 5. [incident.io pricing](https://incident.io/pricing) 6. [Better Stack pricing](https://betterstack.com/pricing) 7. [Rootly pricing](https://rootly.com/pricing) 8. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) 9. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) --- # Grafana OnCall alternatives > OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. Here is what to move to, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/grafana-oncall Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/grafana-oncall) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Squadcast](https://pagerless.dev/vs/squadcast) | No free plan on the current SolarWinds page; a 14-day trial | Pro: from $15 per user per month billed annually | Pro: 100 SMS and voice per user in the US, India and Brazil, 25 elsewhere | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 5. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 6. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 7. Squadcast An on-call and incident response platform acquired by SolarWinds in March 2025; its pricing page now redirects to SolarWinds Incident Response. Best for SRE, DevOps and IT operations teams. Acquired by SolarWinds (announced March 3, 2025). ## Moving from Grafana OnCall 1. **Step 1** Run `npx pagerless connect` in each repo. 2. **Step 2** Point a Grafana webhook contact point at Pagerless: firing alerts open problems, resolved ones close them. See [Grafana](https://pagerless.dev/integrations/grafana). 3. **Step 3** Set the escalation order and turn off the old OnCall. ## Questions ### What is the best free Grafana OnCall alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which Grafana OnCall alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) 2. [Grafana OnCall OSS docs (archived)](https://grafana.com/docs/oncall/latest/set-up/open-source/) 3. [Grafana pricing](https://grafana.com/pricing/) 4. [Grafana IRM phone and SMS](https://grafana.com/docs/grafana-cloud/alerting-and-irm/irm/notify-responders/phone-and-sms/) 5. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 6. [incident.io pricing](https://incident.io/pricing) 7. [Better Stack pricing](https://betterstack.com/pricing) 8. [Rootly pricing](https://rootly.com/pricing) 9. [FireHydrant pricing](https://firehydrant.com/pricing/) 10. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) --- # Squadcast alternatives > Acquired by SolarWinds (announced March 3, 2025). Here is what to move to, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/squadcast Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/squadcast) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 5. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 6. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 7. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## Moving from Squadcast 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move each alert source that pages you. 3. **Step 3** Set the escalation order. ## Questions ### What is the best free Squadcast alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which Squadcast alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [SolarWinds Incident Response pricing](https://www.solarwinds.com/it-incident-response-software/pricing) 2. [SolarWinds acquires Squadcast](https://solarwinds.com/company/newsroom/press-releases/solarwinds-acquires-squadcast-unifying-observability-and-incident-response) 3. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 4. [incident.io pricing](https://incident.io/pricing) 5. [Better Stack pricing](https://betterstack.com/pricing) 6. [Rootly pricing](https://rootly.com/pricing) 7. [FireHydrant pricing](https://firehydrant.com/pricing/) 8. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) --- # Splunk On-Call alternatives > Still sold. Cisco completed its acquisition of Splunk on March 18, 2024. Here is what to move to, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/splunk-on-call Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/splunk-on-call) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 5. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 6. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 7. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## Moving from Splunk On-Call 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move each routing key's alerts to Pagerless. 3. **Step 3** Set the escalation order. ## Questions ### What is the best free Splunk On-Call alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which Splunk On-Call alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [Splunk On-Call pricing](https://www.splunk.com/en_us/products/pricing/devops.html) 2. [Cisco completes acquisition of Splunk](https://investor.cisco.com/files/doc_news/Cisco-Completes-Acquisition-of-Splunk-2024.pdf) 3. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 4. [incident.io pricing](https://incident.io/pricing) 5. [Better Stack pricing](https://betterstack.com/pricing) 6. [Rootly pricing](https://rootly.com/pricing) 7. [FireHydrant pricing](https://firehydrant.com/pricing/) 8. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) --- # Zenduty alternatives > Acquired by Xurrent (announced February 27, 2025). Here is what to move to, with prices from each vendor's own page. URL: https://pagerless.dev/alternatives/zenduty Updated: 2026-10-22 > Pagerless makes this page, and lists itself first. Every other vendor's facts come from their own pages, linked below. ## At a glance | Tool | Free plan | Lowest paid | Phone and SMS | | --- | --- | --- | --- | | [Pagerless](https://pagerless.dev/vs/zenduty) | You + 1 backup, 3 apps, no card | Team planned: per alert sent, no per-seat price (not open yet) | Phone calls through your own Twilio at Twilio's price; no SMS | | [PagerDuty](https://pagerless.dev/vs/pagerduty) | Up to 5 users, 1 on-call schedule, 1 escalation policy, 3 months of history | Professional: $21 per user per month billed annually, $25 monthly | Free: 100 SMS or phone notifications a month. Professional: included, no monthly cap stated | | [incident.io](https://pagerless.dev/vs/incident-io) | Basic: free, with 1 schedule, single-team on-call, 2 integrations and 1 status page | Team: $15 per user per month billed annually, plus $10 per user for on-call | Push, phone, SMS, email, Slack and WhatsApp paging; free-plan limits not stated | | [Better Stack](https://pagerless.dev/vs/better-stack) | 10 monitors and heartbeats, 1 status page, Slack and email alerts | Responder license: $29 a month billed yearly, $34 monthly | Unlimited phone and SMS on paid responder licenses; not listed on the free tier | | [Rootly](https://pagerless.dev/vs/rootly) | No free plan; a trial, and a startup program with discounts | On-Call: $20 per user per month (billing basis not stated) | Push, phone, SMS, email, Slack and Teams; per-plan limits not stated | | [FireHydrant](https://pagerless.dev/vs/firehydrant) | Up to 10 responders and 2 runbooks; Signals on-call is listed on Pro and above | Pro: $25 per responder per month billed annually | SMS and voice available for purchase on Pro; prices not listed | | [Grafana OnCall](https://pagerless.dev/vs/grafana-oncall) | Grafana Cloud Free: IRM limited to 3 active users a month | Pro: $19 a month platform fee including 3 active IRM users, then from $20 per active user | IRM: no extra cost for outgoing calls or SMS; whether the free tier includes them is not stated | ## 1. Pagerless Best for one person or a small team running an app, often built with AI. It wakes you only for what matters (four floors always do), explains what broke, and undoes a bad deploy with one tap on 20+ hosts. No schedules or rotations yet. ## 2. PagerDuty An incident management and on-call platform with schedules, escalation policies and phone, SMS and push paging, plus a larger reliability platform sold in annual packages. Best for engineering and operations teams, from small teams to large enterprises. ## 3. incident.io A Slack- and Teams-native incident response platform with an on-call product (schedules, escalations, mobile app, phone and SMS paging) and status pages. Best for software teams from startups to enterprises. ## 4. Better Stack An observability suite with uptime monitoring, heartbeats, status pages, on-call scheduling and logs. Best for developers and small-to-mid engineering teams. ## 5. Rootly A Slack-native incident response and on-call platform, sold as separate per-user products. Best for engineering and SRE teams at startups to enterprises. ## 6. FireHydrant An incident management and reliability platform with Signals for on-call; Freshworks closed its acquisition of FireHydrant in January 2026. Best for engineering and SRE teams, with an enterprise focus. Acquired by Freshworks (agreement December 15, 2025; closed January 5, 2026). ## 7. Grafana OnCall Grafana's on-call tool. The open-source edition was archived on March 24, 2026, and its cloud phone, SMS and push stopped; Grafana Cloud IRM is the hosted successor. Best for teams already on Grafana or Grafana Cloud. OnCall OSS: maintenance mode from March 11, 2025, archived March 24, 2026. ## Moving from Zenduty 1. **Step 1** Run `npx pagerless connect`. 2. **Step 2** Move each integration's alerts. 3. **Step 3** Set the escalation order. ## Questions ### What is the best free Zenduty alternative? For a solo developer or a pair, Pagerless is free for you and one backup with up to 3 apps, and phone calls cost only Twilio's price on your own account. For bigger teams that need free schedules, compare the free plans in the table above. ### Which Zenduty alternative has phone calls? Most on-call tools do. Pagerless calls through your own Twilio account; the table shows each vendor's phone and SMS terms from their pricing page. Sources: 1. [Zenduty pricing](https://zenduty.com/pricing/) 2. [Xurrent acquires Zenduty](https://www.businesswire.com/news/home/20250227806255/en/Xurrent-Acquires-Zenduty-Completing-the-Incident-Response-and-Remediation-Loop) 3. [PagerDuty pricing (incident management)](https://www.pagerduty.com/pricing/incident-management/) 4. [incident.io pricing](https://incident.io/pricing) 5. [Better Stack pricing](https://betterstack.com/pricing) 6. [Rootly pricing](https://rootly.com/pricing) 7. [FireHydrant pricing](https://firehydrant.com/pricing/) 8. [Grafana: OnCall OSS maintenance mode](https://grafana.com/blog/2025/03/11/grafana-oncall-maintenance-mode) --- # Use cases > Pagerless is built for people who run apps without an ops team. Here is how it fits each situation. URL: https://pagerless.dev/solutions Updated: 2026-10-22 - [On-call for apps you built with AI](https://pagerless.dev/solutions/vibe-coded-apps): You shipped a real app without being an ops team - [On-call for solo founders](https://pagerless.dev/solutions/solo-founders): You are the whole on-call rotation - [On-call for small teams](https://pagerless.dev/solutions/small-teams): Small teams don't need an incident command system - [On-call for Shopify apps](https://pagerless.dev/solutions/shopify-apps): Merchants notice before you do when a Shopify app breaks - [SaaS on Vercel and Supabase](https://pagerless.dev/solutions/saas-on-vercel-supabase): The most common stack for new SaaS - [On-call for AWS](https://pagerless.dev/solutions/aws): Your alarms already exist - [Payments down alerts](https://pagerless.dev/solutions/payments-down-alerts): Failing payments are one of four floors in Pagerless: the AI is never allowed to call them noise - [Cron job monitoring](https://pagerless.dev/solutions/cron-job-monitoring): The job that silently stopped three weeks ago is the most expensive bug there is - [Less alert noise, nothing missed](https://pagerless.dev/solutions/alert-noise-reduction): Alert fatigue comes from treating every error as an alert - [Alerts for side projects](https://pagerless.dev/solutions/side-projects): Three apps, free --- # On-call for apps you built with AI > You shipped a real app without being an ops team. Pagerless is the ops team: it watches, explains in plain words, and wakes you only when it must. URL: https://pagerless.dev/solutions/vibe-coded-apps Updated: 2026-10-22 ## Why apps built with AI need this - Changes ship fast and in big pieces, so a break is usually caused by the last change. Pagerless ties errors to the deploy right before them. - Error messages are written for engineers. Pagerless says what broke in plain words: "Signups fail since the 9:40 change: the email service rejects the new sender." - You may not know how to roll back. On hosts with an API, Pagerless does it with one tap; on Lovable, Bolt and Replit it shows the exact clicks. ## Set it up by asking your AI In Cursor, Claude Code or any coding agent, say: ```text Run npx pagerless connect in this repo and follow what it asks. ``` On Lovable or Bolt, ask it to add Pagerless's browser snippet and paste your key; see [Lovable](https://pagerless.dev/integrations/lovable) and [Bolt](https://pagerless.dev/integrations/bolt). ## Let your coding agent fix it Connect your agent to the [Pagerless MCP server](https://pagerless.dev/mcp-server). It can read the problem, propose a fix and check it worked. Your rules and your Face ID stay in charge. --- # On-call for solo founders > You are the whole on-call rotation. Pagerless makes that survivable: quiet by default, loud for the four things that really matter, and one tap to fix. URL: https://pagerless.dev/solutions/solo-founders Updated: 2026-10-22 ## What a week looks like | Problem | Level | What you get | | --- | --- | --- | | A bot hits a dead URL 300 times | Log | Nothing. It appears in Sunday's email. | | A new error on the settings page | Tell | One message in the morning, after quiet hours. | | Stripe calls failing after a deploy | Wake | A push now, a call in 5 minutes, undo ready. | ## Your backup Free includes one backup: a co-founder, a friend, a contractor. If you don't answer a wake alert within 5 minutes of the call, they get it. On holiday, put them first. ## Cost Free for you and one backup, up to 3 apps. Phone calls bill on your own Twilio account at Twilio's price. --- # On-call for small teams > Small teams don't need an incident command system. They need the right person woken, with enough context to fix it in minutes. URL: https://pagerless.dev/solutions/small-teams Updated: 2026-10-22 ## How it works for a team - Each person has a place in the escalation order (0 to 10). Wake goes to the first, then the next after 5 minutes without an answer. - Tell alerts go to the first person who can be reached, or to a Slack or Telegram channel. - Anyone signed in can approve a fix; undoing a deploy needs their passkey. - Everyone gets a weekly email: problems, what the helper fixed, and how many seconds people spent. > Pagerless has no rotation schedules yet. If you need weekly rotations across many people, [PagerDuty](https://pagerless.dev/vs/pagerduty) or [incident.io](https://pagerless.dev/vs/incident-io) fit better today. ## Plans Free covers two people. A Team plan for more people is planned, priced per alert sent rather than per seat; it is not open yet. --- # On-call for Shopify apps > Merchants notice before you do when a Shopify app breaks. Pagerless notices first. URL: https://pagerless.dev/solutions/shopify-apps Updated: 2026-10-22 ## Set up `npx pagerless connect` recognises apps built on Shopify's Remix or React Router template and adds one import to the server entry. Or do it by hand: ```ts import "pagerless/auto"; // app/entry.server.tsx ``` ## What it watches - 5xx bursts on your webhook and app routes (a floor: always wakes). - Failing outbound calls, tagged by service, so "Stripe failing" reads differently from "your database is down". - Silence: no heartbeat for 5 minutes wakes you. - Crash loops after a deploy, with one-tap undo on hosts like Railway, Render, Fly.io and Heroku. --- # SaaS on Vercel and Supabase > The most common stack for new SaaS. Pagerless covers both halves: roll back the deploy on Vercel, restart or add compute on Supabase. URL: https://pagerless.dev/solutions/saas-on-vercel-supabase Updated: 2026-10-22 ## Set up ```bash npx pagerless connect ``` It adds the Next.js instrumentation file and puts the key in Vercel. Then connect Vercel and Supabase in the app with access tokens so fixes can run. ## Who's to blame, in plain words Calls to Supabase are tagged by name in the SDK, so the diagnosis can say "Supabase is timing out" instead of "500 on /api/projects", and offer a restart rather than a rollback that wouldn't help. | Where | Fixes | | --- | --- | | Vercel | Roll back to the previous deployment; redeploy | | Supabase | Restart the project; add compute (billed, so it always asks) | --- # On-call for AWS > Your alarms already exist. Pagerless decides which ones should wake someone, explains them, and can roll back ECS or Lambda through a least-privilege role. URL: https://pagerless.dev/solutions/aws Updated: 2026-10-22 ## Three ways in | Source | How | | --- | --- | | CloudWatch alarms | [SNS subscription](https://pagerless.dev/integrations/aws-cloudwatch); ALARM opens, OK closes | | Your services | Node, Go or Python SDK in the container or function | | Terraform | [`npx pagerless connect`](https://pagerless.dev/integrations/terraform-aws) writes `pagerless.tf` | ## Fixes Through an IAM role you create from a CloudFormation link, with an external ID: ECS back to the previous task definition, force a new deployment or change desired count; Lambda alias back to the previous version or change reserved concurrency; Amplify re-runs the last good build. --- # Payments down alerts > Failing payments are one of four floors in Pagerless: the AI is never allowed to call them noise. If checkout breaks at 3 a.m., someone gets a call. URL: https://pagerless.dev/solutions/payments-down-alerts Updated: 2026-10-22 ## What counts as payments failing 3 or more payment errors, and at least 2% of payment requests when request counts are known. An error counts as a payment error when its route or tags mention payment, checkout, billing, pay, Stripe, PayPal, Braintree, Adyen, Razorpay or Paddle. Failing calls to Stripe and PayPal are tagged by name by the Node SDK, so they count with no extra code. ## What happens 1. **Wake** Push to your phone at once, then a call after 5 minutes without a tap. 2. **Explain** "Payments failing since the 3:08 update" or "Stripe is returning errors; nothing changed on your side." 3. **Fix** If your deploy caused it, undo with one tap. If Stripe is down, there is nothing to undo, and the alert says so. ## Or straight from Stripe Add a [Stripe webhook](https://pagerless.dev/integrations/stripe) to Pagerless: failed payments count toward the floor and successes are the baseline, with or without the SDK. One decline never wakes anyone. ## Report your own payment errors ```js import { capture } from "pagerless"; capture(err, { route: "POST /checkout", tags: { dependency: "stripe" } }); ``` --- # Cron job monitoring > The job that silently stopped three weeks ago is the most expensive bug there is. One ping per run, and Pagerless tells you when a run is late, missed or failed. URL: https://pagerless.dev/solutions/cron-job-monitoring Updated: 2026-10-22 ## One line per job ```js await monitor("nightly-backup", { cron: "30 3 * * *" }, () => backup()); ``` ```bash 0 3 * * * /usr/local/bin/backup.sh && curl -fsS -X POST https://events.pagerless.dev/v1/checkins/nightly-backup -H "Authorization: Bearer $PAGERLESS_KEY" ``` ## Found for you `npx pagerless connect` finds Wrangler cron triggers, EventBridge rules, AWS Scheduler schedules and Temporal schedules, and suggests the check-in line for each. ## How loud Missed or failed runs tell you by default. Set a job to wake for the ones that matter, like billing runs or backups. --- # Less alert noise, nothing missed > Alert fatigue comes from treating every error as an alert. Pagerless treats every error as evidence and decides, per problem, whether anyone needs to know. URL: https://pagerless.dev/solutions/alert-noise-reduction Updated: 2026-10-22 ## Four ways it stays quiet 1. **Grouping.** 400 identical errors are one problem. 2. **Baselines.** An error rate that is normal for your app is logged, not sent. 3. **Levels.** Most problems are tell (one message, after quiet hours) or log (weekly email only). 4. **One escalation per problem.** A problem never pages twice in parallel. ## And the one way it never does Floors: app silent, crash loop, 5xx burst, payments failing. They always wake someone, and a failed or unsure decision is never quieter than tell. --- # Alerts for side projects > Three apps, free. You hear about a side project once a week in an email, unless it is really down. URL: https://pagerless.dev/solutions/side-projects Updated: 2026-10-22 - Free: you plus one backup, 3 apps, no card. - Silence for 5 minutes wakes you, so a crashed server doesn't sit dead for a week. - Everything else waits for the weekly email. ```bash npx pagerless connect ``` --- # Answers > Each page answers one question in a paragraph, then shows the detail. URL: https://pagerless.dev/answers Updated: 2026-10-22 - [What is the best on-call tool for a solo developer?](https://pagerless.dev/answers/best-on-call-tool-for-solo-developer): Best on-call tool for a solo developer (2026) - [How do I get a phone call when my app is down?](https://pagerless.dev/answers/get-a-phone-call-when-app-is-down): How to get a phone call when your app is down - [Is there a free PagerDuty alternative?](https://pagerless.dev/answers/free-pagerduty-alternative): Free PagerDuty alternatives in 2026, with limits - [What should I replace Opsgenie with?](https://pagerless.dev/answers/opsgenie-replacement): Opsgenie replacement before the April 2027 shutdown - [How do I monitor an app I built with Lovable or Bolt?](https://pagerless.dev/answers/monitor-app-built-with-lovable): How to monitor an app built with Lovable or Bolt - [How do I know when my Vercel app is down?](https://pagerless.dev/answers/know-when-vercel-app-is-down): How to know when your Vercel app is down - [How do I get alerted when Stripe payments fail in my app?](https://pagerless.dev/answers/alert-when-stripe-payments-fail): Get alerted when Stripe payments fail in your app - [How can I monitor cron jobs for free?](https://pagerless.dev/answers/monitor-cron-jobs-free): How to monitor cron jobs for free (with alerts) - [How do I roll back a bad deploy quickly at night?](https://pagerless.dev/answers/roll-back-bad-deploy-at-night): How to roll back a bad deploy quickly at night - [What does being on call mean for a software developer?](https://pagerless.dev/answers/what-is-on-call): What does being on call mean for developers? - [How do I set up on-call when I'm the only developer?](https://pagerless.dev/answers/on-call-for-one-person): How to set up on-call when you're the only developer - [How do I reduce alert fatigue?](https://pagerless.dev/answers/reduce-alert-fatigue): How to reduce alert fatigue without missing outages - [How do I get a phone call from an AWS CloudWatch alarm?](https://pagerless.dev/answers/cloudwatch-alarm-phone-call): Get a phone call from an AWS CloudWatch alarm - [Do I need PagerDuty for a small app?](https://pagerless.dev/answers/do-i-need-pagerduty): Do you need PagerDuty for a small app? - [Do I need Sentry or an on-call tool like PagerDuty?](https://pagerless.dev/answers/sentry-or-pagerduty): Sentry or an on-call tool: which do you need? - [How do I get alerted when my app stops responding entirely?](https://pagerless.dev/answers/alert-when-app-goes-silent): Alert when your app goes silent (heartbeats) - [Are there AI tools that diagnose production incidents?](https://pagerless.dev/answers/ai-incident-response-tools): AI tools that diagnose production incidents - [Can my AI coding agent fix production errors?](https://pagerless.dev/answers/let-ai-agent-fix-production): Can an AI coding agent fix production errors? - [How do I get alerts for Cloudflare Workers errors?](https://pagerless.dev/answers/monitor-cloudflare-workers-errors): How to get alerts for Cloudflare Workers errors - [Can I do on-call without a rotation schedule?](https://pagerless.dev/answers/on-call-without-rotation): On-call without a rotation schedule: does it work? - [Is uptime monitoring enough, or do I need error alerting?](https://pagerless.dev/answers/uptime-vs-error-alerting): Uptime monitoring vs error alerting: do you need both? --- # What is the best on-call tool for a solo developer? > For one person, pick a tool that is free for you plus a backup, calls your phone only for real outages, and explains what broke. Pagerless does that: free for you and one backup, a call after 5 minutes without a tap, and a one-tap undo for bad deploys. URL: https://pagerless.dev/answers/best-on-call-tool-for-solo-developer Updated: 2026-10-22 ## What matters for one person - Quiet by default: most errors should never reach your phone. - Loud for outages: a phone call, not just an email. - A backup for when you're on a plane. - Context: what broke and the fix, so 3 a.m. takes minutes. PagerDuty's free plan (up to 5 users, 1 schedule) also works for one person; it pages but doesn't diagnose or roll back. See [Pagerless vs PagerDuty](https://pagerless.dev/vs/pagerduty) and [all comparisons](https://pagerless.dev/compare). ## Questions ### What is the best on-call tool for a solo developer? For one person, pick a tool that is free for you plus a backup, calls your phone only for real outages, and explains what broke. Pagerless does that: free for you and one backup, a call after 5 minutes without a tap, and a one-tap undo for bad deploys. --- # How do I get a phone call when my app is down? > Use an on-call service that calls you. With Pagerless, add the SDK (or run npx pagerless connect), add your Twilio number, and install the iPhone app. If your app goes silent, crash-loops, returns a burst of 5xx errors or payments fail, you get a push, then a call after 5 minutes. URL: https://pagerless.dev/answers/get-a-phone-call-when-app-is-down Updated: 2026-10-22 1. **Add Pagerless to the app** Run it in your repo: ``` npx pagerless connect ``` 2. **Add Twilio** Paste your Twilio account SID, auth token and number in Alerts. Calls bill on your Twilio account. 3. **Add your phone** Your number for calls, and the iPhone app for the push that comes first. The call reads a fixed sentence about the problem and asks you to press 1 to acknowledge. If you don't, your backup is next. ## Questions ### How do I get a phone call when my app is down? Use an on-call service that calls you. With Pagerless, add the SDK (or run npx pagerless connect), add your Twilio number, and install the iPhone app. If your app goes silent, crash-loops, returns a burst of 5xx errors or payments fail, you get a push, then a call after 5 minutes. --- # Is there a free PagerDuty alternative? > Yes. Pagerless is free for you and one backup with up to 3 apps, and calls you through your own Twilio account at Twilio's price. PagerDuty itself has a free plan for up to 5 users with one schedule. Grafana Cloud IRM is free for 3 active users. URL: https://pagerless.dev/answers/free-pagerduty-alternative Updated: 2026-10-22 | Tool | Free tier | | --- | --- | | Pagerless | You + 1 backup, 3 apps; calls on your own Twilio | | PagerDuty Free | Up to 5 users, 1 schedule, 100 SMS or calls a month | | Grafana Cloud IRM | Up to 3 active users a month | | incident.io Basic | 1 schedule, single-team on-call | | FireHydrant | Up to 10 responders; on-call (Signals) on paid plans | | Better Stack | 10 monitors, Slack and email alerts | Details and sources: [PagerDuty alternatives](https://pagerless.dev/alternatives/pagerduty). ## Questions ### Is there a free PagerDuty alternative? Yes. Pagerless is free for you and one backup with up to 3 apps, and calls you through your own Twilio account at Twilio's price. PagerDuty itself has a free plan for up to 5 users with one schedule. Grafana Cloud IRM is free for 3 active users. --- # What should I replace Opsgenie with? > Atlassian ended Opsgenie sales on June 4, 2025 and shuts it down on April 5, 2027. Atlassian points customers to Jira Service Management or Compass. If you want something not tied to Jira, Pagerless is free for you and a backup, and PagerDuty, incident.io and Grafana Cloud IRM also have free tiers. URL: https://pagerless.dev/answers/opsgenie-replacement Updated: 2026-10-22 Data not migrated by April 5, 2027 is deleted, per Atlassian's migration page. Full list and steps: [Opsgenie alternatives](https://pagerless.dev/alternatives/opsgenie). Sources: 1. [Atlassian: Opsgenie migration](https://www.atlassian.com/software/opsgenie/migration) ## Questions ### What should I replace Opsgenie with? Atlassian ended Opsgenie sales on June 4, 2025 and shuts it down on April 5, 2027. Atlassian points customers to Jira Service Management or Compass. If you want something not tied to Jira, Pagerless is free for you and a backup, and PagerDuty, incident.io and Grafana Cloud IRM also have free tiers. --- # How do I monitor an app I built with Lovable or Bolt? > Add a small error-reporting snippet and an on-call service that explains problems in plain words. With Pagerless, ask your AI builder to add the pagerless/browser snippet with your key. When errors spike, you get a plain-words alert and the exact steps to revert in Lovable or Bolt. URL: https://pagerless.dev/answers/monitor-app-built-with-lovable Updated: 2026-10-22 ```js import { init } from "pagerless/browser"; init({ key: import.meta.env.VITE_PAGERLESS_KEY, service: "web" }); ``` Lovable and Bolt have no public API to roll back, so Pagerless shows the clicks instead and checks the errors stop. See [Lovable](https://pagerless.dev/integrations/lovable) and [Bolt](https://pagerless.dev/integrations/bolt). ## Questions ### How do I monitor an app I built with Lovable or Bolt? Add a small error-reporting snippet and an on-call service that explains problems in plain words. With Pagerless, ask your AI builder to add the pagerless/browser snippet with your key. When errors spike, you get a plain-words alert and the exact steps to revert in Lovable or Bolt. --- # How do I know when my Vercel app is down? > Vercel does not page you when your app breaks. Add an error and heartbeat reporter plus an on-call service. With Pagerless, one Next.js instrumentation file reports errors and 5xx per route; a 5xx burst or silence wakes you, and you can roll back to the previous deployment with one tap. URL: https://pagerless.dev/answers/know-when-vercel-app-is-down Updated: 2026-10-22 Setup: [Next.js on Vercel](https://pagerless.dev/integrations/nextjs-vercel). ## Questions ### How do I know when my Vercel app is down? Vercel does not page you when your app breaks. Add an error and heartbeat reporter plus an on-call service. With Pagerless, one Next.js instrumentation file reports errors and 5xx per route; a 5xx burst or silence wakes you, and you can roll back to the previous deployment with one tap. --- # How do I get alerted when Stripe payments fail in my app? > Report errors from your checkout code and treat payment failures as an outage. Pagerless does this by default: failing Stripe calls are tagged automatically by the Node SDK, and 3 or more payment errors that are at least 2% of payment requests always wake someone with a push, then a call. URL: https://pagerless.dev/answers/alert-when-stripe-payments-fail Updated: 2026-10-22 No SDK? Point a [Stripe webhook](https://pagerless.dev/integrations/stripe) at Pagerless instead: several failed payments within 5 minutes wake someone. Details: [payments down alerts](https://pagerless.dev/solutions/payments-down-alerts). ## Questions ### How do I get alerted when Stripe payments fail in my app? Report errors from your checkout code and treat payment failures as an outage. Pagerless does this by default: failing Stripe calls are tagged automatically by the Node SDK, and 3 or more payment errors that are at least 2% of payment requests always wake someone with a push, then a call. --- # How can I monitor cron jobs for free? > Have each run ping a check-in URL, and alert when a ping is late, missing or reports failure. Pagerless check-ins are free on its free plan: up to 200 jobs per app, cron or interval schedules in any time zone, with a message by default or a phone call for critical jobs. URL: https://pagerless.dev/answers/monitor-cron-jobs-free Updated: 2026-10-22 ```bash curl -X POST https://events.pagerless.dev/v1/checkins/nightly-backup -H "Authorization: Bearer $PAGERLESS_KEY" ``` More: [check-ins](https://pagerless.dev/docs/check-ins), [cron to check-in tool](https://pagerless.dev/tools/cron-check-in). ## Questions ### How can I monitor cron jobs for free? Have each run ping a check-in URL, and alert when a ping is late, missing or reports failure. Pagerless check-ins are free on its free plan: up to 200 jobs per app, cron or interval schedules in any time zone, with a message by default or a phone call for critical jobs. --- # How do I roll back a bad deploy quickly at night? > Have the alert carry the rollback. Pagerless links each error spike to the deploy before it and offers to undo it: tap Approve on your phone, confirm with Face ID, and it rolls back through your host's API on Vercel, Netlify, Cloudflare, Railway, Render, Fly.io, Heroku, AWS, Google Cloud and Azure. URL: https://pagerless.dev/answers/roll-back-bad-deploy-at-night Updated: 2026-10-22 Which hosts support what: [fixes and approvals](https://pagerless.dev/docs/fixes-and-approvals) and [integrations](https://pagerless.dev/integrations). ## Questions ### How do I roll back a bad deploy quickly at night? Have the alert carry the rollback. Pagerless links each error spike to the deploy before it and offers to undo it: tap Approve on your phone, confirm with Face ID, and it rolls back through your host's API on Vercel, Netlify, Cloudflare, Railway, Render, Fly.io, Heroku, AWS, Google Cloud and Azure. --- # What does being on call mean for a software developer? > Being on call means you are the person who responds if a production system breaks during a set period, including nights and weekends. An alerting tool reaches you by push, call or message; you acknowledge, fix or escalate. Good on-call wakes people only for problems that need a human now. URL: https://pagerless.dev/answers/what-is-on-call Updated: 2026-10-22 Related terms: [escalation policy](https://pagerless.dev/glossary/escalation-policy), [acknowledgement](https://pagerless.dev/glossary/acknowledgement), [alert fatigue](https://pagerless.dev/glossary/alert-fatigue). ## Questions ### What does being on call mean for a software developer? Being on call means you are the person who responds if a production system breaks during a set period, including nights and weekends. An alerting tool reaches you by push, call or message; you acknowledge, fix or escalate. Good on-call wakes people only for problems that need a human now. --- # How do I set up on-call when I'm the only developer? > Decide what deserves a call (app down, crash loop, error burst, payments failing), make everything else a message or a weekly summary, name one backup, and use a tool that calls your phone. Pagerless sets this up with one command and ships with those four rules built in. URL: https://pagerless.dev/answers/on-call-for-one-person Updated: 2026-10-22 Guide: [on-call for small teams](https://pagerless.dev/guides/on-call-for-small-teams). ## Questions ### How do I set up on-call when I'm the only developer? Decide what deserves a call (app down, crash loop, error burst, payments failing), make everything else a message or a weekly summary, name one backup, and use a tool that calls your phone. Pagerless sets this up with one command and ships with those four rules built in. --- # How do I reduce alert fatigue? > Alert on symptoms users feel, not every error; group duplicates into one problem; send non-urgent things as messages during the day; and review every page that woke someone. Pagerless automates the first three: grouping, baselines, and wake, tell or log levels, with four floors that always wake. URL: https://pagerless.dev/answers/reduce-alert-fatigue Updated: 2026-10-22 More: [alert noise reduction](https://pagerless.dev/solutions/alert-noise-reduction), [alert fatigue](https://pagerless.dev/glossary/alert-fatigue). ## Questions ### How do I reduce alert fatigue? Alert on symptoms users feel, not every error; group duplicates into one problem; send non-urgent things as messages during the day; and review every page that woke someone. Pagerless automates the first three: grouping, baselines, and wake, tell or log levels, with four floors that always wake. --- # How do I get a phone call from an AWS CloudWatch alarm? > CloudWatch alarms publish to SNS, which can't call you by itself. Subscribe the SNS topic to an on-call service. With Pagerless, add the HTTPS subscription with ?wake= and your alarm-name pattern: matching alarms push, then call you after 5 minutes, and the alarm's OK state closes the problem. URL: https://pagerless.dev/answers/cloudwatch-alarm-phone-call Updated: 2026-10-22 Setup: [AWS CloudWatch alarms](https://pagerless.dev/integrations/aws-cloudwatch). ## Questions ### How do I get a phone call from an AWS CloudWatch alarm? CloudWatch alarms publish to SNS, which can't call you by itself. Subscribe the SNS topic to an on-call service. With Pagerless, add the HTTPS subscription with ?wake= and your alarm-name pattern: matching alarms push, then call you after 5 minutes, and the alarm's OK state closes the problem. --- # Do I need PagerDuty for a small app? > Usually not. PagerDuty is built for teams with rotations, schedules and formal incident roles. A small app with one or two people needs reliable alerts, a phone call for real outages and a backup. Pagerless covers that for free; PagerDuty's own free plan is another option. URL: https://pagerless.dev/answers/do-i-need-pagerduty Updated: 2026-10-22 Compare: [Pagerless vs PagerDuty](https://pagerless.dev/vs/pagerduty). ## Questions ### Do I need PagerDuty for a small app? Usually not. PagerDuty is built for teams with rotations, schedules and formal incident roles. A small app with one or two people needs reliable alerts, a phone call for real outages and a backup. Pagerless covers that for free; PagerDuty's own free plan is another option. --- # Do I need Sentry or an on-call tool like PagerDuty? > They do different jobs. Sentry tracks and helps debug errors; its free plan alerts by email only and it doesn't call your phone. On-call tools decide who to wake and reach them by push and phone. Many teams use both; Pagerless adds diagnosis and one-tap undo to the on-call side. URL: https://pagerless.dev/answers/sentry-or-pagerduty Updated: 2026-10-22 You can also send Sentry's alerts into Pagerless: [Sentry to Pagerless](https://pagerless.dev/integrations/sentry). Compare: [Pagerless vs Sentry alerts](https://pagerless.dev/vs/sentry). ## Questions ### Do I need Sentry or an on-call tool like PagerDuty? They do different jobs. Sentry tracks and helps debug errors; its free plan alerts by email only and it doesn't call your phone. On-call tools decide who to wake and reach them by push and phone. Many teams use both; Pagerless adds diagnosis and one-tap undo to the on-call side. --- # How do I get alerted when my app stops responding entirely? > Use heartbeats: the app sends a small signal every minute, and an alert fires when they stop. Pagerless SDKs send one every 60 seconds automatically, and 5 minutes without one is a floor: it always wakes someone, with a push and then a phone call. URL: https://pagerless.dev/answers/alert-when-app-goes-silent Updated: 2026-10-22 More: [heartbeat monitoring](https://pagerless.dev/glossary/heartbeat-monitoring), [levels and floors](https://pagerless.dev/docs/levels). ## Questions ### How do I get alerted when my app stops responding entirely? Use heartbeats: the app sends a small signal every minute, and an alert fires when they stop. Pagerless SDKs send one every 60 seconds automatically, and 5 minutes without one is a floor: it always wakes someone, with a push and then a phone call. --- # Are there AI tools that diagnose production incidents? > Yes. Several incident tools now add AI. Pagerless uses Claude to explain each problem in plain words from scrubbed samples and recent deploys, pick how loud the alert should be within fixed rules, and propose a fix such as undoing the last deploy, which waits for your approval. URL: https://pagerless.dev/answers/ai-incident-response-tools Updated: 2026-10-22 Guardrails: [the AI helper](https://pagerless.dev/docs/ai-helper). ## Questions ### Are there AI tools that diagnose production incidents? Yes. Several incident tools now add AI. Pagerless uses Claude to explain each problem in plain words from scrubbed samples and recent deploys, pick how loud the alert should be within fixed rules, and propose a fix such as undoing the last deploy, which waits for your approval. --- # Can my AI coding agent fix production errors? > It can help, with guardrails. Through the Pagerless MCP server, an agent like Claude Code or Cursor can read a production problem, propose a fix, ask you a yes/no question and verify the result. It never acts on production directly: your rules and a passkey approval decide. URL: https://pagerless.dev/answers/let-ai-agent-fix-production Updated: 2026-10-22 Setup: [MCP server](https://pagerless.dev/mcp-server). ## Questions ### Can my AI coding agent fix production errors? It can help, with guardrails. Through the Pagerless MCP server, an agent like Claude Code or Cursor can read a production problem, propose a fix, ask you a yes/no question and verify the result. It never acts on production directly: your rules and a passkey approval decide. --- # How do I get alerts for Cloudflare Workers errors? > Wrap your Worker's default export with withPagerless from the pagerless npm package and store the key with wrangler secret put. Errors from fetch, scheduled and queue handlers are reported and re-thrown unchanged, and Pagerless can undo a bad Worker version with one tap. URL: https://pagerless.dev/answers/monitor-cloudflare-workers-errors Updated: 2026-10-22 Setup: [Cloudflare Workers](https://pagerless.dev/integrations/cloudflare-workers). ## Questions ### How do I get alerts for Cloudflare Workers errors? Wrap your Worker's default export with withPagerless from the pagerless npm package and store the key with wrangler secret put. Errors from fetch, scheduled and queue handlers are reported and re-thrown unchanged, and Pagerless can undo a bad Worker version with one tap. --- # Can I do on-call without a rotation schedule? > Yes, for small teams. Use an escalation order instead: the first person gets the alert, and if they don't answer within a few minutes, the next person does. Pagerless works this way, with the first person called after 5 minutes without a tap and the next person after that. URL: https://pagerless.dev/answers/on-call-without-rotation Updated: 2026-10-22 When you need rotations: [Pagerless vs PagerDuty](https://pagerless.dev/vs/pagerduty). ## Questions ### Can I do on-call without a rotation schedule? Yes, for small teams. Use an escalation order instead: the first person gets the alert, and if they don't answer within a few minutes, the next person does. Pagerless works this way, with the first person called after 5 minutes without a tap and the next person after that. --- # Is uptime monitoring enough, or do I need error alerting? > Uptime monitoring checks from outside that a URL answers. It misses failing checkouts, broken background jobs and errors behind login. Error alerting watches from inside the app. Most apps need both signals; Pagerless covers the inside, plus heartbeats that catch a dead app. URL: https://pagerless.dev/answers/uptime-vs-error-alerting Updated: 2026-10-22 Compare: [Pagerless vs Better Stack](https://pagerless.dev/vs/better-stack). ## Questions ### Is uptime monitoring enough, or do I need error alerting? Uptime monitoring checks from outside that a URL answers. It misses failing checkouts, broken background jobs and errors behind login. Error alerting watches from inside the app. Most apps need both signals; Pagerless covers the inside, plus heartbeats that catch a dead app. --- # Guides > Short, practical guides for people running apps without an ops team. URL: https://pagerless.dev/guides Updated: 2026-10-22 - [On-call for small teams](https://pagerless.dev/guides/on-call-for-small-teams): A practical setup for one to ten people, in the order you'd do it. - [Designing an escalation policy](https://pagerless.dev/guides/escalation-policies): Who gets the alert, by what channel, how long before the next person, and what never escalates. - [Writing a blameless postmortem](https://pagerless.dev/guides/postmortems): A postmortem is for the next incident, not the last one. Keep it short, specific and blameless. - [SLOs for small apps](https://pagerless.dev/guides/slos-for-small-apps): You don't need a reliability team to use SLOs. Two indicators and one honest target are enough to start. - [Alerting checklist for apps built with AI](https://pagerless.dev/guides/alerting-for-ai-built-apps): Ten minutes of setup that saves your first bad night. - [Monitoring scheduled jobs](https://pagerless.dev/guides/cron-monitoring): Jobs fail silently. Here is how to make them fail loudly, without a pager for every hiccup. --- # On-call for small teams > A practical setup for one to ten people, in the order you'd do it. URL: https://pagerless.dev/guides/on-call-for-small-teams Updated: 2026-10-22 1. **Decide what wakes someone** Only what users feel right now: the app down, crash loops, a burst of server errors, payments failing. Everything else is a message or a weekly summary. 2. **Choose the order** One person first, one backup. Five minutes is a reasonable wait before moving on. 3. **Give the alert context** What broke, since when, what changed. An alert that says only "error rate high" costs 20 minutes at 3 a.m. 4. **Set quiet hours for everything else** Non-urgent messages wait for the morning. 5. **Review every page** Weekly: did it need a human? If not, make it quieter. If something was missed, make it louder. 6. **Rotate fairly** With more than two people, rotate who is first each week. Use the [on-call schedule maker](https://pagerless.dev/tools/on-call-schedule) to draft it. > Pagerless does steps 1 to 5 out of the box; it has no rotation schedules yet, so rotate the first person by hand. --- # Designing an escalation policy > Who gets the alert, by what channel, how long before the next person, and what never escalates. URL: https://pagerless.dev/guides/escalation-policies Updated: 2026-10-22 ## The parts | Decision | A good default | | --- | --- | | First channel | A push to a phone app with an acknowledge button | | Wait before calling | 5 minutes | | Second channel | A phone call, because pushes get missed in sleep | | Wait before the next person | One more step (5 minutes) after the call | | Who is last | Someone senior who would rather be woken than not | ## Common mistakes - Paging a whole channel: everyone assumes someone else has it. - Escalating noise: if it shouldn't wake person one, it shouldn't wake person two. - No floor: a rule that can turn off alerts for a dead app will, eventually. Pagerless's defaults are the table above. See [levels](https://pagerless.dev/docs/levels). --- # Writing a blameless postmortem > A postmortem is for the next incident, not the last one. Keep it short, specific and blameless. URL: https://pagerless.dev/guides/postmortems Updated: 2026-10-22 ## The sections 1. **Summary**: two sentences a customer could read. 2. **Impact**: who was affected, for how long, how badly. 3. **Timeline**: times in one time zone, from first signal to resolved. 4. **Cause**: the chain of conditions, not a person. 5. **What went well**: keep doing these. 6. **What to change**: each item with an owner and a date. ## Blameless, concretely Write "the deploy had no check for the missing variable", not "Sam forgot the variable". The first leads to a fix; the second leads to people hiding mistakes. Generate a filled-in draft with the [postmortem template tool](https://pagerless.dev/tools/postmortem-template). --- # SLOs for small apps > You don't need a reliability team to use SLOs. Two indicators and one honest target are enough to start. URL: https://pagerless.dev/guides/slos-for-small-apps Updated: 2026-10-22 1. **Pick what users feel** Share of requests that succeed, and share of checkouts that succeed. 2. **Pick a realistic target** 99.5% or 99.9% over 30 days. Each extra nine costs far more than the one before. 3. **Know your budget** 99.9% over 30 days allows about 43 minutes of failure. Use the [uptime calculator](https://pagerless.dev/tools/uptime-calculator). 4. **Use it** Budget left: ship. Budget gone: slow down and fix reliability first. The Google SRE book notes that users on an imperfect phone network often can't tell 99.99% from 99.999%. Sources: 1. [Google SRE book, ch. 4: Service Level Objectives](https://sre.google/sre-book/service-level-objectives/) 2. [Google SRE book, ch. 3: Embracing Risk](https://sre.google/sre-book/embracing-risk/) --- # Alerting checklist for apps built with AI > Ten minutes of setup that saves your first bad night. URL: https://pagerless.dev/guides/alerting-for-ai-built-apps Updated: 2026-10-22 1. **Errors are reported** from the server and, if it matters, the browser. 2. **Silence is caught**: heartbeats, so a dead app is noticed in minutes. 3. **Payments are watched** as their own signal. 4. **Scheduled jobs check in**, so a stopped job is noticed. 5. **You know how to undo** a deploy on your host, or the tool does it for you. 6. **Someone is second**: a backup who gets called if you don't answer. `npx pagerless connect` does 1 to 4 in one command; the app walks you through 5 and 6. --- # Monitoring scheduled jobs > Jobs fail silently. Here is how to make them fail loudly, without a pager for every hiccup. URL: https://pagerless.dev/guides/cron-monitoring Updated: 2026-10-22 - **Ping at the end, not the start**, so a job that crashes halfway counts as missed. - **Report failures explicitly** with the error, so you're not waiting for the grace period. - **Set a grace period** a little longer than normal run-time variation. - **Use the job's time zone**, so daylight saving doesn't create false alarms. - **Wake only for jobs with real cost**: billing, backups, data syncs customers depend on. Pagerless check-ins do all five: [docs](https://pagerless.dev/docs/check-ins). --- # Glossary > Every term you meet in on-call and incident response, in one or two sentences, with how Pagerless uses it. URL: https://pagerless.dev/glossary Updated: 2026-10-22 - [Acknowledgement](https://pagerless.dev/glossary/acknowledgement): A responder's signal that they have seen an alert and are handling it, which stops further escalation. - [Alert fatigue](https://pagerless.dev/glossary/alert-fatigue): When responders receive so many alerts, many not actionable, that they start ignoring or muting them and miss the ones that matter. - [Alert grouping](https://pagerless.dev/glossary/alert-grouping): Combining many related signals, such as the same error repeated, into one problem so a responder sees it once. - [Alert noise](https://pagerless.dev/glossary/noise): Alerts that don't need anyone to act: duplicates, known background errors, bots probing dead URLs, flapping checks. - [Blameless culture](https://pagerless.dev/glossary/blameless): Reviewing incidents by asking how the system allowed the failure rather than who caused it, so people report problems honestly. - [Check-in (cron monitoring)](https://pagerless.dev/glossary/check-in): A ping a scheduled job sends when it runs, so a monitor can alert when a run is late, missed or failed. - [Crash loop](https://pagerless.dev/glossary/crash-loop): A process that starts, crashes and is restarted repeatedly, usually after a bad deploy or a missing configuration value. - [Deploy marker](https://pagerless.dev/glossary/deploy-marker): A record of when a new version went live, used to connect errors to the change that caused them. - [Error budget](https://pagerless.dev/glossary/error-budget): The amount of unreliability an SLO allows over a period: with a 99.9% target, 0.1% of requests may fail - [Escalation policy](https://pagerless.dev/glossary/escalation-policy): The rules for who is alerted, in what order, and how long to wait before moving to the next person when nobody acknowledges. - [Failed deployment recovery time](https://pagerless.dev/glossary/failed-deployment-recovery-time): DORA's measure of how long it takes to recover from a deployment that fails and needs immediate intervention. - [Fingerprint](https://pagerless.dev/glossary/fingerprint): A stable key computed from an error's type, stack and route, used to decide which events belong to the same problem. - [Flapping](https://pagerless.dev/glossary/flapping): A check or alarm that switches between failing and healthy repeatedly in a short time, producing a stream of open and close alerts. - [Floor signal](https://pagerless.dev/glossary/floor): A Pagerless term: a signal that always wakes someone and can never be played down by the AI - [Heartbeat monitoring](https://pagerless.dev/glossary/heartbeat-monitoring): Detecting a dead service by expecting a regular signal from it and alerting when the signal stops. - [Incident](https://pagerless.dev/glossary/incident): An unplanned interruption or degradation of a service that needs a response. - [MCP (Model Context Protocol)](https://pagerless.dev/glossary/mcp): An open protocol that lets AI assistants and coding agents call tools on external services in a standard way. - [MTTA](https://pagerless.dev/glossary/mtta): Mean time to acknowledge: the average time from an alert being sent to a responder acknowledging it. - [MTTR](https://pagerless.dev/glossary/mttr): Mean time to recovery (or restore, or resolve): the average time from an incident starting to service being restored - [Observability](https://pagerless.dev/glossary/observability): How well you can understand a system's internal state from what it emits: logs, metrics and traces. - [On call](https://pagerless.dev/glossary/on-call): Being the person responsible for responding when a production system breaks during a set period, including outside working hours. - [OpenTelemetry](https://pagerless.dev/glossary/opentelemetry): A vendor-neutral standard and set of SDKs for producing logs, metrics and traces, sent over the OTLP protocol. - [Paging](https://pagerless.dev/glossary/paging): Interrupting a person to demand attention now, usually by push notification, phone call or SMS, named after the pagers on-call engineers once carried. - [Postmortem](https://pagerless.dev/glossary/postmortem): A written review after an incident: what happened, the impact, the cause, and what will change so it doesn't recur - [Rollback](https://pagerless.dev/glossary/rollback): Returning a service to its previous known-good version after a bad deploy. - [Runbook](https://pagerless.dev/glossary/runbook): Written steps for handling a known kind of problem, so whoever is on call can act without deep context. - [Severity](https://pagerless.dev/glossary/severity): A label for how bad an incident is, often SEV1 to SEV4, used to decide who responds and how fast. - [SLA](https://pagerless.dev/glossary/sla): Service level agreement: a contract with users that includes consequences for meeting or missing the SLOs it contains. - [SLI](https://pagerless.dev/glossary/sli): Service level indicator: a carefully defined quantitative measure of some aspect of service, such as the share of requests served successfully. - [SLO](https://pagerless.dev/glossary/slo): Service level objective: a target value or range for an SLI, such as 99.9% of requests succeeding over 30 days. - [Time-Sensitive notification](https://pagerless.dev/glossary/time-sensitive-notification): An iPhone notification level that breaks through Focus modes and notification summaries, but not the ring/silent switch. - [Uptime](https://pagerless.dev/glossary/uptime): The share of time a service is available --- # On call > Being the person responsible for responding when a production system breaks during a set period, including outside working hours. URL: https://pagerless.dev/glossary/on-call Updated: 2026-10-22 ## In Pagerless Each app has an escalation order. Wake alerts go to the first person, then the next after 5 minutes without an answer. ## Related terms - [Escalation policy](https://pagerless.dev/glossary/escalation-policy): The rules for who is alerted, in what order, and how long to wait before moving to the next person when nobody acknowledges. - [Acknowledgement](https://pagerless.dev/glossary/acknowledgement): A responder's signal that they have seen an alert and are handling it, which stops further escalation. - [Alert fatigue](https://pagerless.dev/glossary/alert-fatigue): When responders receive so many alerts, many not actionable, that they start ignoring or muting them and miss the ones that matter. --- # Escalation policy > The rules for who is alerted, in what order, and how long to wait before moving to the next person when nobody acknowledges. URL: https://pagerless.dev/glossary/escalation-policy Updated: 2026-10-22 ## In Pagerless An ordered list of people per account. Push, a call after 5 minutes, then the next person. ## Related terms - [On call](https://pagerless.dev/glossary/on-call): Being the person responsible for responding when a production system breaks during a set period, including outside working hours. - [Acknowledgement](https://pagerless.dev/glossary/acknowledgement): A responder's signal that they have seen an alert and are handling it, which stops further escalation. - [Paging](https://pagerless.dev/glossary/paging): Interrupting a person to demand attention now, usually by push notification, phone call or SMS, named after the pagers on-call engineers once carried. --- # Acknowledgement > A responder's signal that they have seen an alert and are handling it, which stops further escalation. URL: https://pagerless.dev/glossary/acknowledgement Updated: 2026-10-22 ## In Pagerless Tap I'm on it in the push, or press 1 during the call. ## Related terms - [Escalation policy](https://pagerless.dev/glossary/escalation-policy): The rules for who is alerted, in what order, and how long to wait before moving to the next person when nobody acknowledges. - [Paging](https://pagerless.dev/glossary/paging): Interrupting a person to demand attention now, usually by push notification, phone call or SMS, named after the pagers on-call engineers once carried. --- # Paging > Interrupting a person to demand attention now, usually by push notification, phone call or SMS, named after the pagers on-call engineers once carried. URL: https://pagerless.dev/glossary/paging Updated: 2026-10-22 ## In Pagerless Called wake: push first, then a phone call through your own Twilio account. ## Related terms - [On call](https://pagerless.dev/glossary/on-call): Being the person responsible for responding when a production system breaks during a set period, including outside working hours. - [Alert fatigue](https://pagerless.dev/glossary/alert-fatigue): When responders receive so many alerts, many not actionable, that they start ignoring or muting them and miss the ones that matter. --- # Alert fatigue > When responders receive so many alerts, many not actionable, that they start ignoring or muting them and miss the ones that matter. URL: https://pagerless.dev/glossary/alert-fatigue Updated: 2026-10-22 ## In Pagerless Grouping, baselines and three levels (wake, tell, log) keep pages rare; four floors always wake. ## Related terms - [Paging](https://pagerless.dev/glossary/paging): Interrupting a person to demand attention now, usually by push notification, phone call or SMS, named after the pagers on-call engineers once carried. - [Alert grouping](https://pagerless.dev/glossary/alert-grouping): Combining many related signals, such as the same error repeated, into one problem so a responder sees it once. - [Alert noise](https://pagerless.dev/glossary/noise): Alerts that don't need anyone to act: duplicates, known background errors, bots probing dead URLs, flapping checks. --- # Alert grouping > Combining many related signals, such as the same error repeated, into one problem so a responder sees it once. URL: https://pagerless.dev/glossary/alert-grouping Updated: 2026-10-22 ## In Pagerless Errors with the same type, top stack frames and route share a fingerprint and become one problem. ## Related terms - [Fingerprint](https://pagerless.dev/glossary/fingerprint): A stable key computed from an error's type, stack and route, used to decide which events belong to the same problem. - [Alert fatigue](https://pagerless.dev/glossary/alert-fatigue): When responders receive so many alerts, many not actionable, that they start ignoring or muting them and miss the ones that matter. --- # Fingerprint > A stable key computed from an error's type, stack and route, used to decide which events belong to the same problem. URL: https://pagerless.dev/glossary/fingerprint Updated: 2026-10-22 ## In Pagerless Computed in the SDK, or on the server if missing. You can send your own. ## Related terms - [Alert grouping](https://pagerless.dev/glossary/alert-grouping): Combining many related signals, such as the same error repeated, into one problem so a responder sees it once. --- # Alert noise > Alerts that don't need anyone to act: duplicates, known background errors, bots probing dead URLs, flapping checks. URL: https://pagerless.dev/glossary/noise Updated: 2026-10-22 ## In Pagerless Logged rather than sent, and counted in the weekly email. ## Related terms - [Alert fatigue](https://pagerless.dev/glossary/alert-fatigue): When responders receive so many alerts, many not actionable, that they start ignoring or muting them and miss the ones that matter. - [Flapping](https://pagerless.dev/glossary/flapping): A check or alarm that switches between failing and healthy repeatedly in a short time, producing a stream of open and close alerts. --- # Flapping > A check or alarm that switches between failing and healthy repeatedly in a short time, producing a stream of open and close alerts. URL: https://pagerless.dev/glossary/flapping Updated: 2026-10-22 ## In Pagerless One escalation per problem: a problem never pages twice in parallel. ## Related terms - [Alert noise](https://pagerless.dev/glossary/noise): Alerts that don't need anyone to act: duplicates, known background errors, bots probing dead URLs, flapping checks. --- # Incident > An unplanned interruption or degradation of a service that needs a response. URL: https://pagerless.dev/glossary/incident Updated: 2026-10-22 ## In Pagerless Called a problem: a group of related signals with a level, a diagnosis and a fix. ## Related terms - [Postmortem](https://pagerless.dev/glossary/postmortem): A written review after an incident: what happened, the impact, the cause, and what will change so it doesn't recur - [MTTR](https://pagerless.dev/glossary/mttr): Mean time to recovery (or restore, or resolve): the average time from an incident starting to service being restored --- # Postmortem > A written review after an incident: what happened, the impact, the cause, and what will change so it doesn't recur. Usually blameless. URL: https://pagerless.dev/glossary/postmortem Updated: 2026-10-22 ## In Pagerless The problem page keeps the timeline, diagnosis and fix. Use the [postmortem template](https://pagerless.dev/tools/postmortem-template). ## Related terms - [Incident](https://pagerless.dev/glossary/incident): An unplanned interruption or degradation of a service that needs a response. - [Blameless culture](https://pagerless.dev/glossary/blameless): Reviewing incidents by asking how the system allowed the failure rather than who caused it, so people report problems honestly. --- # Blameless culture > Reviewing incidents by asking how the system allowed the failure rather than who caused it, so people report problems honestly. URL: https://pagerless.dev/glossary/blameless Updated: 2026-10-22 ## Related terms - [Postmortem](https://pagerless.dev/glossary/postmortem): A written review after an incident: what happened, the impact, the cause, and what will change so it doesn't recur --- # MTTR > Mean time to recovery (or restore, or resolve): the average time from an incident starting to service being restored. DORA now uses failed deployment recovery time for deploy-caused failures. URL: https://pagerless.dev/glossary/mttr Updated: 2026-10-22 ## In Pagerless Each problem records when it opened, when a person was reached and when it was fixed; the weekly email totals the human seconds. ## Related terms - [MTTA](https://pagerless.dev/glossary/mtta): Mean time to acknowledge: the average time from an alert being sent to a responder acknowledging it. - [Failed deployment recovery time](https://pagerless.dev/glossary/failed-deployment-recovery-time): DORA's measure of how long it takes to recover from a deployment that fails and needs immediate intervention. Sources: 1. [DORA metrics guide](https://dora.dev/guides/dora-metrics/) --- # MTTA > Mean time to acknowledge: the average time from an alert being sent to a responder acknowledging it. URL: https://pagerless.dev/glossary/mtta Updated: 2026-10-22 ## In Pagerless The escalation step is 5 minutes, so an unanswered page reaches the next person within about 10. ## Related terms - [Acknowledgement](https://pagerless.dev/glossary/acknowledgement): A responder's signal that they have seen an alert and are handling it, which stops further escalation. - [MTTR](https://pagerless.dev/glossary/mttr): Mean time to recovery (or restore, or resolve): the average time from an incident starting to service being restored --- # Failed deployment recovery time > DORA's measure of how long it takes to recover from a deployment that fails and needs immediate intervention. URL: https://pagerless.dev/glossary/failed-deployment-recovery-time Updated: 2026-10-22 ## In Pagerless One-tap undo of the last deploy is built for exactly this number. ## Related terms - [MTTR](https://pagerless.dev/glossary/mttr): Mean time to recovery (or restore, or resolve): the average time from an incident starting to service being restored - [Rollback](https://pagerless.dev/glossary/rollback): Returning a service to its previous known-good version after a bad deploy. Sources: 1. [DORA metrics guide](https://dora.dev/guides/dora-metrics/) --- # Rollback > Returning a service to its previous known-good version after a bad deploy. URL: https://pagerless.dev/glossary/rollback Updated: 2026-10-22 ## In Pagerless Called undo the update. One tap with Face ID on 20+ hosts. ## Related terms - [Failed deployment recovery time](https://pagerless.dev/glossary/failed-deployment-recovery-time): DORA's measure of how long it takes to recover from a deployment that fails and needs immediate intervention. - [Deploy marker](https://pagerless.dev/glossary/deploy-marker): A record of when a new version went live, used to connect errors to the change that caused them. --- # Deploy marker > A record of when a new version went live, used to connect errors to the change that caused them. URL: https://pagerless.dev/glossary/deploy-marker Updated: 2026-10-22 ## In Pagerless Sent by the SDK when the release is known from your host's variables. ## Related terms - [Rollback](https://pagerless.dev/glossary/rollback): Returning a service to its previous known-good version after a bad deploy. --- # SLI > Service level indicator: a carefully defined quantitative measure of some aspect of service, such as the share of requests served successfully. URL: https://pagerless.dev/glossary/sli Updated: 2026-10-22 ## Related terms - [SLO](https://pagerless.dev/glossary/slo): Service level objective: a target value or range for an SLI, such as 99.9% of requests succeeding over 30 days. - [SLA](https://pagerless.dev/glossary/sla): Service level agreement: a contract with users that includes consequences for meeting or missing the SLOs it contains. - [Error budget](https://pagerless.dev/glossary/error-budget): The amount of unreliability an SLO allows over a period: with a 99.9% target, 0.1% of requests may fail Sources: 1. [Google SRE book, ch. 4: Service Level Objectives](https://sre.google/sre-book/service-level-objectives/) --- # SLO > Service level objective: a target value or range for an SLI, such as 99.9% of requests succeeding over 30 days. URL: https://pagerless.dev/glossary/slo Updated: 2026-10-22 ## Related terms - [SLI](https://pagerless.dev/glossary/sli): Service level indicator: a carefully defined quantitative measure of some aspect of service, such as the share of requests served successfully. - [SLA](https://pagerless.dev/glossary/sla): Service level agreement: a contract with users that includes consequences for meeting or missing the SLOs it contains. - [Error budget](https://pagerless.dev/glossary/error-budget): The amount of unreliability an SLO allows over a period: with a 99.9% target, 0.1% of requests may fail Sources: 1. [Google SRE book, ch. 4: Service Level Objectives](https://sre.google/sre-book/service-level-objectives/) --- # SLA > Service level agreement: a contract with users that includes consequences for meeting or missing the SLOs it contains. URL: https://pagerless.dev/glossary/sla Updated: 2026-10-22 ## Related terms - [SLO](https://pagerless.dev/glossary/slo): Service level objective: a target value or range for an SLI, such as 99.9% of requests succeeding over 30 days. - [Uptime](https://pagerless.dev/glossary/uptime): The share of time a service is available Sources: 1. [Google SRE book, ch. 4: Service Level Objectives](https://sre.google/sre-book/service-level-objectives/) --- # Error budget > The amount of unreliability an SLO allows over a period: with a 99.9% target, 0.1% of requests may fail. Spending it slows releases; saving it allows risk. URL: https://pagerless.dev/glossary/error-budget Updated: 2026-10-22 ## Related terms - [SLO](https://pagerless.dev/glossary/slo): Service level objective: a target value or range for an SLI, such as 99.9% of requests succeeding over 30 days. - [SLI](https://pagerless.dev/glossary/sli): Service level indicator: a carefully defined quantitative measure of some aspect of service, such as the share of requests served successfully. Sources: 1. [Google SRE book, ch. 3: Embracing Risk](https://sre.google/sre-book/embracing-risk/) --- # Uptime > The share of time a service is available. 99.9% allows about 43 minutes of downtime in 30 days; 99.99% about 4.3 minutes. URL: https://pagerless.dev/glossary/uptime Updated: 2026-10-22 ## In Pagerless Work it out with the [uptime calculator](https://pagerless.dev/tools/uptime-calculator). ## Related terms - [SLA](https://pagerless.dev/glossary/sla): Service level agreement: a contract with users that includes consequences for meeting or missing the SLOs it contains. - [SLO](https://pagerless.dev/glossary/slo): Service level objective: a target value or range for an SLI, such as 99.9% of requests succeeding over 30 days. --- # Heartbeat monitoring > Detecting a dead service by expecting a regular signal from it and alerting when the signal stops. URL: https://pagerless.dev/glossary/heartbeat-monitoring Updated: 2026-10-22 ## In Pagerless SDKs send a heartbeat every 60 seconds; 5 minutes of silence is a floor that always wakes. ## Related terms - [Check-in (cron monitoring)](https://pagerless.dev/glossary/check-in): A ping a scheduled job sends when it runs, so a monitor can alert when a run is late, missed or failed. - [Uptime](https://pagerless.dev/glossary/uptime): The share of time a service is available --- # Check-in (cron monitoring) > A ping a scheduled job sends when it runs, so a monitor can alert when a run is late, missed or failed. URL: https://pagerless.dev/glossary/check-in Updated: 2026-10-22 ## In Pagerless `POST /v1/checkins/` or `monitor()` in the SDKs. See [check-ins](https://pagerless.dev/docs/check-ins). ## Related terms - [Heartbeat monitoring](https://pagerless.dev/glossary/heartbeat-monitoring): Detecting a dead service by expecting a regular signal from it and alerting when the signal stops. --- # Runbook > Written steps for handling a known kind of problem, so whoever is on call can act without deep context. URL: https://pagerless.dev/glossary/runbook Updated: 2026-10-22 ## In Pagerless The AI helper writes a plan per problem; guided steps cover hosts without an API. ## Related terms - [Incident](https://pagerless.dev/glossary/incident): An unplanned interruption or degradation of a service that needs a response. - [Postmortem](https://pagerless.dev/glossary/postmortem): A written review after an incident: what happened, the impact, the cause, and what will change so it doesn't recur --- # Severity > A label for how bad an incident is, often SEV1 to SEV4, used to decide who responds and how fast. URL: https://pagerless.dev/glossary/severity Updated: 2026-10-22 ## In Pagerless Three levels that say what happens: wake, tell, log. ## Related terms - [Alert fatigue](https://pagerless.dev/glossary/alert-fatigue): When responders receive so many alerts, many not actionable, that they start ignoring or muting them and miss the ones that matter. - [Floor signal](https://pagerless.dev/glossary/floor): A Pagerless term: a signal that always wakes someone and can never be played down by the AI --- # Floor signal > A Pagerless term: a signal that always wakes someone and can never be played down by the AI. There are four: app silent, crash loop, 5xx burst and payments failing. URL: https://pagerless.dev/glossary/floor Updated: 2026-10-22 ## In Pagerless Checked before anything else. See [levels](https://pagerless.dev/docs/levels). ## Related terms - [Severity](https://pagerless.dev/glossary/severity): A label for how bad an incident is, often SEV1 to SEV4, used to decide who responds and how fast. - [Heartbeat monitoring](https://pagerless.dev/glossary/heartbeat-monitoring): Detecting a dead service by expecting a regular signal from it and alerting when the signal stops. --- # Crash loop > A process that starts, crashes and is restarted repeatedly, usually after a bad deploy or a missing configuration value. URL: https://pagerless.dev/glossary/crash-loop Updated: 2026-10-22 ## In Pagerless 3 or more restarts is a floor. ## Related terms - [Floor signal](https://pagerless.dev/glossary/floor): A Pagerless term: a signal that always wakes someone and can never be played down by the AI - [Rollback](https://pagerless.dev/glossary/rollback): Returning a service to its previous known-good version after a bad deploy. --- # Time-Sensitive notification > An iPhone notification level that breaks through Focus modes and notification summaries, but not the ring/silent switch. URL: https://pagerless.dev/glossary/time-sensitive-notification Updated: 2026-10-22 ## In Pagerless Used for wake pushes; a phone call follows if you don't tap. ## Related terms - [Paging](https://pagerless.dev/glossary/paging): Interrupting a person to demand attention now, usually by push notification, phone call or SMS, named after the pagers on-call engineers once carried. --- # MCP (Model Context Protocol) > An open protocol that lets AI assistants and coding agents call tools on external services in a standard way. URL: https://pagerless.dev/glossary/mcp Updated: 2026-10-22 ## In Pagerless The [Pagerless MCP server](https://pagerless.dev/mcp-server) lets agents read problems and propose fixes. ## Related terms - [Runbook](https://pagerless.dev/glossary/runbook): Written steps for handling a known kind of problem, so whoever is on call can act without deep context. --- # Observability > How well you can understand a system's internal state from what it emits: logs, metrics and traces. URL: https://pagerless.dev/glossary/observability Updated: 2026-10-22 ## In Pagerless Pagerless is the alerting end: it reads errors, metrics, heartbeats and OTLP data and decides who needs to know. ## Related terms - [OpenTelemetry](https://pagerless.dev/glossary/opentelemetry): A vendor-neutral standard and set of SDKs for producing logs, metrics and traces, sent over the OTLP protocol. --- # OpenTelemetry > A vendor-neutral standard and set of SDKs for producing logs, metrics and traces, sent over the OTLP protocol. URL: https://pagerless.dev/glossary/opentelemetry Updated: 2026-10-22 ## In Pagerless Accepted as OTLP over HTTP, protobuf or JSON. See [OpenTelemetry](https://pagerless.dev/docs/opentelemetry). ## Related terms - [Observability](https://pagerless.dev/glossary/observability): How well you can understand a system's internal state from what it emits: logs, metrics and traces. --- # Free tools > Small tools for people on call. Free, no account, nothing leaves your browser. URL: https://pagerless.dev/tools Updated: 2026-10-22 - [On-call schedule maker](https://pagerless.dev/tools/on-call-schedule): Make a fair weekly on-call rotation with backups. - [Uptime and SLA calculator](https://pagerless.dev/tools/uptime-calculator): Allowed downtime for any availability percentage. - [Postmortem template generator](https://pagerless.dev/tools/postmortem-template): Generate a blameless postmortem in Markdown. - [Cron to check-in helper](https://pagerless.dev/tools/cron-check-in): Convert cron, AWS cron() and rate() to check-in code. --- # On-call schedule maker > Names in, a fair rotation out: a primary and a backup for every shift, ready to paste into a calendar or spreadsheet. URL: https://pagerless.dev/tools/on-call-schedule Updated: 2026-10-22 Interactive maker at https://pagerless.dev/tools/on-call-schedule ## Example | Dates | Primary | Backup | | --- | --- | --- | | 2026-11-02 to 2026-11-08 | Maya | Sam | | 2026-11-09 to 2026-11-15 | Sam | Priya | | 2026-11-16 to 2026-11-22 | Priya | Maya | | 2026-11-23 to 2026-11-29 | Maya | Sam | | 2026-11-30 to 2026-12-06 | Sam | Priya | | 2026-12-07 to 2026-12-13 | Priya | Maya | Each person is backup the week before they are primary, so they know what's going on when their week starts. > Pagerless itself uses an escalation order rather than rotations: change who is first when the week changes. --- # Uptime and SLA calculator > Type an availability target and see how much downtime it allows. The table below has the common nines. URL: https://pagerless.dev/tools/uptime-calculator Updated: 2026-10-22 Interactive calculator at https://pagerless.dev/tools/uptime-calculator | Target | Day | Week | 30 days | Quarter (91 days) | Year (365 days) | | --- | --- | --- | --- | --- | --- | | 99% | 14 min 24 s | 1 h 40 min | 7 h 12 min | 21 h 50 min | 3 d 15 h | | 99.5% | 7 min 12 s | 50 min 24 s | 3 h 36 min | 10 h 55 min | 1 d 19 h | | 99.9% | 1 min 26 s | 10 min 5 s | 43 min 12 s | 2 h 11 min | 8 h 45 min | | 99.95% | 43 s | 5 min 2 s | 21 min 36 s | 1 h 5 min | 4 h 22 min | | 99.99% | 9 s | 1 min | 4 min 19 s | 13 min 6 s | 52 min 34 s | | 99.999% | 864 ms | 6 s | 26 s | 1 min 19 s | 5 min 15 s | Downtime is (100 − target) ÷ 100 × the period. A month here is 30 days. ## Questions ### How much downtime does 99.9% uptime allow? About 43 min 12 s per 30 days, or 8 h 45 min per year. ### How much downtime does 99.99% uptime allow? About 4 min 19 s per 30 days, or 52 min 34 s per year. --- # Postmortem template generator > Fill in what you know; the template fills the rest with prompts. Copy the Markdown into your docs, issue tracker or wiki. URL: https://pagerless.dev/tools/postmortem-template Updated: 2026-10-22 ```markdown # Postmortem: **Date:** **Duration:** **Status:** Draft ## Summary . . ## Impact ## Timeline (all times in one time zone) | Time | What happened | | --- | --- | | | First signal | | | A person was reached | | | Fix applied | | | Confirmed resolved | ## Cause ## What went well - ## What to change | Action | Owner | Due | | --- | --- | --- | | | | | ``` Why each section is there: [how to write a blameless postmortem](https://pagerless.dev/guides/postmortems). --- # Cron to check-in helper > Paste a schedule. Get the next runs, the equivalent 5-field cron, and the line that makes the job report each run. URL: https://pagerless.dev/tools/cron-check-in Updated: 2026-10-22 Interactive helper at https://pagerless.dev/tools/cron-check-in | You write | Pagerless watches | Next run | | --- | --- | --- | | `30 3 * * *` | `30 3 * * *` | 2026-10-23 03:30 UTC | | `*/15 * * * *` | `*/15 * * * *` | 2026-10-22 12:15 UTC | | `0 9 * * 1-5` | `0 9 * * 1-5` | 2026-10-23 09:00 UTC | | `cron(0 2 * * ? *)` | `0 2 * * *` | 2026-10-23 02:00 UTC | | `rate(1 hour)` | every 60 min | an hour after the last ping | | `@daily` | `@daily` | 2026-10-23 00:00 UTC | AWS cron has six fields with `?` and weekdays 1 to 7 (Sunday is 1); it becomes standard cron with weekdays 0 to 6. AWS `L`, `W` and `#` can't be converted exactly, so such a job is watched without a schedule (failures still alert).