Status page
The live status page is at status.spelo.ai. Check there first if something feels off.
Components tracked
| Component | Purpose |
|---|---|
Widget CDN (spelo.ai) | Serves spelo.js and adapter bundles |
API (api.spelo.ai) | Token mint, query proxy, analytics, site config |
Dashboard (app.spelo.ai) | Customer control panel |
Docs (docs.spelo.ai) | This site |
Marketing (spelo.ai) | Public site |
| Supabase Postgres (primary DB) | Per-tenant configs, transcripts |
| Upstash Redis | Rate limiting |
| OpenAI Realtime (external dependency) | Audio inference |
We publish live metrics for the first 7 plus a read-through status from OpenAI’s status page.
SLA
| Plan | SLA |
|---|---|
| Free | Best-effort |
| Starter | 99.5% monthly uptime |
| Pro | 99.9% monthly uptime |
| Enterprise | 99.95% monthly uptime, financial credits |
Enterprise SLAs include financial credits (5% / 10% / 20% of monthly fee depending on downtime). See contract for exact terms.
Incident classification
| Severity | Criteria | Notification |
|---|---|---|
| SEV-1 | Widget fails for > 5% of sites for > 5 min | Banner in dashboard + email + status page red |
| SEV-2 | Degraded performance (high latency, partial adapter failure) | Status page orange + email to affected customers |
| SEV-3 | Single-customer issue | Direct email / Slack to that customer |
| SEV-4 | Internal only (no customer impact) | Not published |
Subscribing to updates
- Email — subscribe at status.spelo.ai with your address
- Webhooks — subscribe to incidents via webhooks (
site.deletedfires on per-site incidents) - RSS —
https://status.spelo.ai/history.rss - Slack — Enterprise customers get a shared Slack channel with real-time SEV-1/2 notifications
- Statuspage integration — we use Atlassian Statuspage; you can scrape the Statuspage API directly
Incident history
Last-12-months incidents are public. Post-mortems for SEV-1 events are published within 7 days.
Representative recent incidents:
2026-03-11 — Upstash Redis region failover
- Duration: 14 min
- Impact: Rate limiting bypassed briefly; a handful of sites briefly exceeded quota
- Root cause: Upstream provider zone failover
- Remediation: Added a second Upstash region, DNS-based failover
2026-01-04 — OpenAI Realtime outage
- Duration: 38 min
- Impact: All sessions failed; existing WebRTC connections dropped mid-call
- Root cause: OpenAI platform issue (their 2026-01-04 incident report)
- Remediation: None on our side — external dependency. We’ve since added a retry layer that re-attempts token mints for 30s before giving up.
2025-12-18 — API deployment regression
- Duration: 7 min
- Impact: New site creation failed
- Root cause: Migration missed a required DB column
- Remediation: Added shadow-deploy testing to CI; we now run live schema checks before rolling.
Dependencies we monitor
We depend on external services. If one is down, we often are too:
- OpenAI Realtime API — status.openai.com
- Cloudflare — cloudflarestatus.com
- Supabase — status.supabase.com
- Upstash — status.upstash.com
- Vercel — vercel-status.com (dashboard + docs hosting)
- Stripe — status.stripe.com (billing only)
Post-mortem format
Every SEV-1/2 post-mortem includes:
- Summary (1 sentence)
- Impact (what broke, for whom, how long)
- Timeline (minute-by-minute actions)
- Root cause
- Contributing factors
- What we learned
- Action items with owners + due dates
Published at spelo.ai/incidents/YYYY-MM-DD and archived in the docs.
Reporting an issue
If you think you’re seeing an incident but nothing is posted yet:
- Email support@spelo.ai with
[URGENT]in the subject - Enterprise — ping your shared Slack channel
- Include your
site_idand an X-Spelo-Request-ID from a failing request
We triage within minutes during business hours and within ~1 hour off-hours.