Pre-launch · widget v0.1
Status pages that
live inside your app.
Drop a <ping-drop> web component anywhere. Report incidents from the API, your editor, or straight from your OpenTelemetry metrics.
No card, nothing billed One email at launch Replies within 1 business day
Compact mode, redrawn. Pick a state.
Two tags. That's the install.
No build step, no framework, no hosted page to keep in sync.
<script src="https://cdn.pingdrop.dev/widget.js" defer></script>
<!-- 2. Drop the component -->
<ping-drop
project="my-saas"
mode="compact"
theme="dark"
></ping-drop>
<!-- That's it. Incidents? Use the API or MCP. -->
One <script> tag — no npm, no bundler. The widget renders in a shadow root, so it can't clash with your styles.
Status that reads itself from your metrics.
No switch to flip. PingDrop watches the request metrics you already export and sets each component's status automatically.
Standard OTLP, no custom agent
Point your existing SDK or collector at /v1/otlp/v1/metrics. Nothing to install. Both delta and cumulative metrics work.
Only request metrics count
PingDrop reads http.server.* and rpc.server.* only. A request fails on a 5xx, a non-zero gRPC code, or an error.type. 4xx doesn't count.
A silent exporter means an outage
If a service stops exporting after serving traffic, it's marked a major outage after ~3 minutes. A service with no traffic keeps its current status.
Thresholds are per-component
Defaults are 5% degraded and 20% outage. Override either one per component; anything invalid falls back to the defaults.
Where it fits
Three setups PingDrop is built around — wiring diagrams, not customer stories. Nobody is in production yet.
Setup 01 · CI pipeline
The deploy that fails at 02:00
A migration times out mid-deploy. The rollback runs before anyone wakes up — but users saw errors for nine minutes with no word. One curl per pipeline stage closes that gap.
- deploy fails → CI opens an incident on api
- widget in your app flips to degraded
- rollback succeeds → CI resolves it
- timeline keeps the 9 minutes on record
Setup 02 · OpenTelemetry
The slow burn nobody paged for
Errors creep from 1% to 7%. No page fires, so the status stays green while support fills up. PingDrop is already reading your metrics, so the component moves itself — and back again when it recovers.
- existing collector exports OTLP to PingDrop
- error rate crosses 5% → Degraded
- 2 evaluations agree before it moves
- rate recovers → back to Operational
Setup 03 · MCP in the editor
The incident you're already fixing
You're mid-incident with the fix half-written. Switching tabs to type "we're investigating" is exactly why status pages go stale. Your agent posts it from the editor instead.
- agent opens the incident over MCP
- status moves as you commit the fix
- resolve note written from the diff
- you never leave the terminal
No logos or uptime numbers to quote yet — PingDrop is pre-launch. Until there are, the specs are what there is to judge.
Under the hood.
One embed, three modes, and a status engine built for live incidents. Everything else is a metric or an API call.
display
embed modes
Badge, compact, and full — switch with one attribute.
component groups
Nest components; the parent shows the worst status underneath.
customization
Themes, CSS variables, ::part() hooks, slots in full mode.
hosted page
Every project gets /s/your-slug for when your app is down.
incidents
incident api
Open, update, resolve over REST — built for deploy hooks and CI.
mcp server
Your editor or coding agent updates status directly.
incident timeline
Investigating, identified, monitoring, resolved — timestamped.
auto-resolution
Metrics recover, linked incidents resolve with a timestamped note.
platform
uptime history
≤90 days per component in full mode, with a daily breakdown.
live updates
Polls every 15 seconds and backs off instead of freezing.
webhooks
Up to five URLs per project, notified on every status change.
private pages
Mark a project private and share it with a viewer token.
No per-seat fees. No usage metering.
Free forever for one project. Pay when you outgrow it. Early access locks your price for the first year.
Free
€0/mo
Ship your first status page.
- 1 project
- 10 components
- Hosted status page
- OpenTelemetry ingest, 60 req/min
- "Powered by PingDrop" mark
Starter
€15/mo
For products with more than one moving part.
- 3 projects
- 25 components each
- API key per project
- MCP server access
- Status change webhooks
- OpenTelemetry ingest, 300 req/min
- No PingDrop branding
Pro
€35/mo
For teams shipping every day.
- Unlimited projects and components
- OpenTelemetry ingest, 1200 req/min
- Per-component thresholds
- Status change webhooks
- Custom CSS via css-url
- No PingDrop branding
- Custom domain (CNAME) planned
- AI post-mortem drafts planned
Nothing is billed during early access. OpenTelemetry status is on every tier, including free — plans differ on ingest rate, not features. Items marked planned aren't built yet.
Most status tools assume a dashboard: log in, click through someone else's UI, publish an update — the one thing you have no spare attention for mid-incident. PingDrop flips that. You report status from where you already work: a curl from CI, your editor over MCP, or the metrics your service already exports.
The widget is the other half. A status page nobody bookmarked doesn't cut support load, so it renders inside your own app where the affected users already are. The hosted page at /s/your-slug is there when you need a link to send.
One developer, self-funded, pre-launch. Nothing is public yet. The widget, API, MCP server and portal all ship together at launch. Anything marked planned is roadmap, not in that build.
Questions worth answering first.
The five things people ask before they hand over an email address.
Is PingDrop a widget or a hosted status page?
Both, from one project. The embed is the point: a <ping-drop> component in badge, compact or full mode, rendered inside your app where users already are. Every project also gets a hosted page at /s/your-slug to link from a tweet or email.
Configure once; both surfaces read the same state.
If my app is down, doesn't the embedded widget go down with it?
Yes — and that's why the hosted page exists. The in-app widget is right for degraded performance, partial outages and maintenance, which is the vast majority of incidents. For a total outage, nothing your app renders can help.
So: embed for the 95% where your app still loads, and use the PingDrop-hosted page (separate infrastructure) for when it doesn't. The widget reads data from our API, so a dead backend still shows accurate status as long as your frontend is up.
How is this different from Statuspage, Instatus or OpenStatus?
Two things. First, they all send users to a separate page; PingDrop puts status inside the product. Second, the big one: native OpenTelemetry. Others wait for a human to flip a switch or ping an endpoint from outside.
PingDrop reads the request metrics your collector already exports, discovers components from service.name, and derives status from the real error rate. See how status gets decided.
Do I need OpenTelemetry to use it?
No. OTel is the differentiator, not a requirement. Plenty of people open and close incidents with a curl from CI, the REST API, or MCP — and never export a metric.
If you do run a collector, adding PingDrop is one extra exporter endpoint. No agent to install, and it's on every tier, including free.
What does "early access" mean, and what will it cost me?
The product isn't live yet. Signing up costs nothing, needs no card, and gets you exactly one email at launch — not a newsletter. See the privacy notice.
It also locks the early-access price for your first year: €0 free forever for one project, €15/mo Starter, €35/mo Pro. Anything tagged planned is roadmap, not product.
Every email gets a reply from a human within one business day. No ticket queue, no autoresponder — just one developer reading hello@pingdrop.dev. During early access, feature requests have a real shot at the launch build.
Get in before launch.
One email when PingDrop is live, plus the early-access price lock. Nothing else.
No card, no spam, unsubscribe any time. Replies within one business day: see the response time promise and the privacy notice.