Now in invite-only beta

Everyone on the rotation. Nobody on the invoice.

On-call paging priced by what you're protecting — never by who answers it.

No feature gates, no enterprise tier, no sales call. Migrate today with gravityloop migrate.

No credit card · No seats to count · Cancel anytime
Scroll
app.gravityloop.io / incidents / INC-4471
⌘K?
Signal receiveddatadog · error_rate > 2%+0ms
Routedschedule → payments-primary+47ms
Paged @mayasms · voice · slack+1.2s
Acknowledged@maya · rolling back deploy+34s
Time to ack0s
Time to first page—
02 — Reliability

The boring part, done right.

An on-call tool that's down during your incident is the worst kind of irony. Here's what we measure — published in real time on a status page we don't run ourselves.

Page delivery p95I-001
<5s
SMS, voice, and Slack delivery measured end-to-end. We page ourselves before you notice.
MigrationI-002
1command
From PagerDuty or Opsgenie to your first real alert routed through Gravityloop, in a single command.
Audit logI-003
100%
Every state change — page sent, ack, escalation, schedule edit — recorded and exportable as CSV.
03 — In your hands

Keyboard-first. Mouse-optional.

Ships with the muscle memory you already have.

Bindings borrowed from Vim, GitHub, and Linear. Every screen has a ? overlay listing every shortcut. ⌘K opens the command palette.

Open palette⌘K
AcknowledgeA
Goto incidentsGI
ResolveR
Goto scheduleGS
EscalateE
⎈Open incident… by service or IDGI
▤View schedule payments-primaryGS
▶Start runbook rollback-last-deployGR
✦Page on-call checkout-svcP
▽Snooze alert for 30 minS
04 — Automation

Schedules as code. Migrations in minutes.

Define rotations in Terraform, version them in Git, review them in PRs. Then run one command to leave PagerDuty behind — the migration client is open-source, so you can audit it before you hand over a token. See how we compare →

PR #218 · schedules.tf +3 −2merge into main
@@ rotation "payments-primary" @@ rotation { type = "weekly"- handoff = "monday 09:00"+ handoff = "monday 10:00"- members = ["maya", "daniel"]+ members = ["maya", "daniel", "priya"] }
gravityloop/validate — running…Merge & deploy
~/infra · gravityloop-cli v0.42live
$ gravityloop migrate --from pagerduty
05 — Surface

Speaks every dialect your stack already speaks.

Named parsers for the stacks most teams already run, and a generic webhook for everything else. See what connects →

Datadog
Sentry
Grafana
Prometheus
Slack
Linear
GitHub
Terraform
AWS
Vercel
Statuspage
PagerDuty
Opsgenie
Webhooks
OpenAPI
New Relic
On-call shouldn't cost $30,000 a year, and reliability shouldn't be a luxury tier. We built the tool we'd want to carry the pager with.
The Gravityloop team
WHY WE'RE BUILDING THIS

Ship it. We've got the pager.

· Migrate from PagerDuty in minutes· Unlimited users on every plan· Cancel anytime