- Prometheus
- Datadog
- Grafana
- Sentry
- Zabbix
- cron
- webhook
The problem
Nobody reads the alert channel anymore
One incident arrives four hundred times, nothing says who is on it, and the alert that mattered scrolled past at 3am.
Product
Everything between “it fired” and “it's fixed”
The whole on-call loop: ingestion, deduplication, routing and acknowledgement.
Capture & dedupe
One alert — not four hundred
Repeated alerts collapse into a single row with an occurrence counter, while everything streams in live — acknowledge and resolve without leaving the incident.
- ✓Fingerprint on source + title + severity
- ✓Live updates over server-sent events, scoped to your organization
- ✓Threaded comments with @mentions
Marta Ruiz ·
2m
Rolling restart on prod-web-03, watching load…
Teams & notification channels
Route the right alert to the right people
Every API key belongs to a team; every team has its channels. Configure a channel once — email, Slack, Microsoft Teams or in-app — and reuse it across teams with per-team toggles.
- ✓Email, Slack, Microsoft Teams and in-app delivery
- ✓One Slack workspace, a different channel per project
- ◦Discord and Google Chat are in progress
Built for organizations
Multi-tenant from the first line of code
Hard isolation per organization, hierarchical roles, a full audit trail and rate-limited API keys.
Roles
super_admin → admin → operator → viewer, enforced on every route.
Audit log
Every sensitive action recorded, with actor and timestamp.
2FA
Authenticator apps or email codes, enforceable org-wide.
Monitoring
Monitoring that files its own alerts
Watch your endpoints and your numbers from the same place you work the incidents. A failed check or a broken threshold becomes a real alert — deduplicated and routed like every other.
Website monitoring
Know you're down before your users do
Scheduled checks against your endpoints, with uptime percentage, latency trends and a plain up/down semaphore.
- ✓Checks down to every 60 seconds
- ✓Uptime % over 24h / 7d / 30d windows
- ✓Latency history per monitor
Signal monitoring
Watch the numbers that matter
Push any numeric metric through the API — queue depth, error rate, temperature. Rules evaluate every minute.
- ✓Thresholds over avg / min / max / last, in any time window
- ✓Anomaly detection — learns each metric's normal by hour & weekday, no threshold to set
- ✓Heartbeat alerts when a metric goes silent
How it works
Live in three steps
Connect your systems
Create an API key and push your first alert with a single request.
Route to teams & channels
Each key belongs to a team. Assign channels once and every alert finds its way to email, Slack, Teams or in-app.
Acknowledge, resolve, improve
Work alerts as a team and watch your mean time to resolve trend down, week over week.
SDKs
Your first alert, in eight lines
Official SDKs for Node and Python. Same surface, same fields.
npm install @sigtake/sdk
import { Sigtake } from '@sigtake/sdk'; const sigtake = new Sigtake({ apiKey: process.env.SIGTAKE_API_KEY }); await sigtake.alerts.ingest({ title: 'Checkout latency above threshold', severity: 'high', source: 'checkout-api', team_code: 'OPS', });
pip install sigtake
from sigtake import Sigtake with Sigtake(api_key=os.environ["SIGTAKE_API_KEY"]) as sigtake: sigtake.alerts.ingest( title="Checkout latency above threshold", severity="high", source="checkout-api", team_code="OPS", )
Zero dependencies, typed, ESM + CJS · sync and async · npm · PyPI · GitHub
Pricing
Start free, scale when you're paged
Everything's free while we're in early access — unlimited users, teams, alerts and monitors, no credit card. Paid plans will come as we grow.
Before you ask
- Do I have to replace my current monitoring?
- No. Sigtake sits downstream of whatever you already run — point an Alertmanager webhook or a cron job at the API and you are ingesting.
- How does it decide two alerts are the same incident?
- A fingerprint over source, title and severity, scoped to one project. The same failure in staging and production stays two separate incidents.
- Who gets notified?
- The team the API key belongs to, through that team's channels in that project. In-app push always lands, so nothing is lost while a channel is misconfigured.
- What happens if a channel is down?
- The dispatch retries with exponential backoff, and the failure is recorded rather than swallowed.
Firing → Resolved
Make the alert channel worth reading again
One API key, one POST.