0.0WATCH FURTHER. GO DEEPER.
A thousand signals a second. One calm view.
Behind every site is a constant stream of checks, logs and errors. Pingtower turns it into one quiet picture — and pages the right person only when something needs them.
- Free during preview
- No credit card
- First alert in about five minutes
From log line to ringing phone. Most small teams glue an error tracker, an uptime pinger, a paging service and a status page together — and pay for all four. Pingtower covers the whole path, with nothing to stitch together.
FIG 0.1
Dedup is built in
Repeats fold by message template, so one bug is one alert with a counter — not a paid add-on.
FIG 0.2
Down means down
Checks run from multiple regions of the world, and by default page only when most of them agree.
FIG 0.3
Set up by your agent
Paste one prompt into your coding agent, or send one curl. First alert in about five minutes.
Log-driven alerting for apps, sites and servers.
One bug fires forty thousand times. You should hear about it once.
This is the noise that gets channels muted and pages ignored. Pingtower folds it by message shape, so one person gets one alert — with a counter, and the lines that explain it.
Forty thousand repeats, one alert.
Incoming
payment failed for order A-8821303:08:01payment failed for order A-8820703:08:01payment failed for order A-8819903:08:02- 39,997 more like them…
Folded
payment failed for order {id}×40,000
Paged
- You · push, critical0 min
- Maya · acknowledged+5 min
- #ops on Slack · not needed+10 min
Alerts sent1
1.0How it works
Tell it what to watch. Only what matters gets through.
Add a check for your website or point your apps at it — no code, nothing to install. Repeats of one bug fold into a single alert, and phones ring up your ladder until someone acknowledges.



Watch
FIG 1.1
Checked from around the world
Website, browser, API, TLS, DNS, ping, TCP, gRPC, WebSocket and domain checks, run from Pingtower's servers in multiple regions of the world.
FIG 1.2
Most regions must agree
By default a check pages only when most of its regions see it down. One failure makes the others re-check at once.
FIG 1.3
Heartbeats for jobs
Every source gets a ping URL with a cron schedule and a grace period — and an alert when it goes quiet.
FIG 1.4
Or just send logs
One POST from any app, cron job or script. No SDK; batches of up to 1,000 events.
Understand
FIG 1.5
One bug, one alert
Repeats fold by message template into one alert with a counter. Group by an identifier key when one user, host or order matters.
FIG 1.6
Rules that read like sentences
Match on level, source, tags or message shape, then add a threshold: a count in a window, or across distinct sources.
FIG 1.7
Quiet when you need it
Mute a rule for up to 90 days, or schedule maintenance windows, one-off or recurring.
FIG 1.8
Search every line
A query language with facets, a histogram and saved views. Secrets that slip into logs get flagged.
Respond
FIG 1.9
Escalation ladders
Repeat until someone acknowledges, then the next step. Resolves on its own when the problem clears.
FIG 1.10
On-call rotations
Layered, timezone-aware schedules with overrides. Personal channels fire only while their owner is on call.
FIG 1.11
Through Silent mode
Critical alerts on iPhone sound through Silent mode and Focus — a permission you grant once.
FIG 1.12
Everywhere else, too
Slack, Telegram, Discord and HMAC-signed webhooks, with a log for every delivery.
2.0Tell customers
Keep everyone in the loop
Gather alerts into an incident, work it with your team, and let customers follow along on a status page once your team knows.

FIG 2.1
Incidents that keep the story
Numbered incidents with a stage, severity and a lead. Internal notes stay apart from public updates.
FIG 2.2
Status pages
At your-name.ptwr.net or on your own subdomain, public or members-only, with 90 days of uptime.
FIG 2.3
Calm by default
An outage shows once someone acknowledges it or after 15 minutes — so a one-minute blip never does.
FIG 2.4
Uptime reports
Uptime, MTTA and MTTR per check, exported as CSV. Close the loop with a cause and a fix.
Set up by your agent. Or by you, with one curl.
The guide your coding agent follows is the one you can read: install, bootstrap, wire and verify, end to end. Every docs page also ships as Markdown for agents.
- .agents
- docs
- getting-started
- service
- alerts.md
- checks.md
- incidents.md
- ingest.md
- oncall.md
- rules.md
- status-pages.md
- ios
- self-hosting
- addons
- reference
- llms.txt
- openapi.json
agents.md
- This page is written for AI agents setting up Pingtower on a user's behalf.
- Machine-readable companions: [/llms.txt](https://www.pingtower.com/llms.txt), this
- page as markdown at [/agents/index.md](https://www.pingtower.com/agents/index.md),
- the [API reference as markdown](https://www.pingtower.com/docs/reference/api/index.md), and the
- [OpenAPI spec](https://www.pingtower.com/api/openapi.json) — generated from the
- server's own route table and gated against drift, so it cannot describe a
- contract the server does not keep.
- ## What Pingtower is — and is not
- Log-driven alerting: the user's services POST structured log events, the
- server collapses repeats by message shape, evaluates declarative rules, and
- escalates until a human acknowledges. On pingtower.com it also runs
- hosted checks from its own servers in multiple regions of the world (HTTP, TLS, DNS, ping, TCP, gRPC,
- WebSocket, domain expiry, multi-step API and Playwright browser checks), a
- rule with a `source_silent` trigger opens an alert when a source stops
- sending, and status pages and incidents tell the user's customers.
- It is not a full uptime-monitoring suite: a self-hosted tower runs no hosted
- checks, and deeper checks (host metrics, anything inside a private network)
- need the addons agent. If your user asked for more than that, tell them
- before setting anything up.
- ## Division of labor
pingtower › Set up Pingtower alerting for this project. Follow https://www.pingtower.com/agents/ end to end.
pingtower › paste it into your coding agent · or read /agents/
3.0Who it's for
Made for whoever gets the call
Whether you ship it, run it, look after it for clients or simply depend on it — start where you are.
I ship it
Builders
You built it, so you get the call. Pingtower turns your app's errors into one clear alert on your phone, with the log lines that explain it. One curl to start, or let your coding agent set it up.
I keep it running
Operators
Run Pingtower on your own Linux box, on PostgreSQL or SQLite. It watches from inside your hosts, notices the job that didn't run, and pages whoever's on shift until someone acknowledges.
I run it for clients
Agencies & MSPs
Watch every client's site, certificate and domain from Pingtower's servers, with a project per client and one alert stream for your team. Hear about it before the client calls, and give each client a status page of their own.
I depend on it
Business
You don't need to be technical. Add a check for your website and checkout on the web, choose who hears about it, and Pingtower rings your phone, then your developer or agency, until someone answers.
4.0Hosted or self-hosted
Our tower or yours. Your phone rings either way.
Start on pingtower.com with nothing to run, or run the tower on your own hardware. Your rules and escalations work the same, and the phone still rings.
Most teams start here
Hosted at pingtower.com
- Nothing to install or run
- Hosted and browser checks from multiple regions, and status pages on your own domain
- Sign up in the app, with one curl, or on the web
- Free during preview, no card
For your own hardware
Self-hosted on your box
- One signed binary on your PostgreSQL — or SQLite, with nothing to set up
- Logs, rules and alert history stay on the box
- No plan, no quota; Slack, Telegram, Discord and webhooks send straight from it
- Signed releases
- HMAC-signed webhooks
- Audit log
- How we run it, in the open →
What a paired box shares: only what it takes to ring your phone — each alert and the line that triggered it, kept briefly. Where the line is drawn
A note from the founder
I built the tool I couldn't find. Now it's yours too.
Questions, ideas, or something broke? Come say hi on Discord, or write to [email protected].
I started building Pingtower because I was tired of paying for monitoring. Every tool I tried cost more than the servers it was watching, and most of that money went to features I never used.
What I actually needed was simpler. I run a lot of projects, and I wanted one place that keeps an eye on all of them, with one phone that rings when any of them breaks.
It also had to be something I could trust, and it has already been put to the test. Pingtower kept watch over one of my own services while it went through an acquisition, a time when missing a problem simply wasn't an option.
For me, trust goes hand in hand with privacy. That's why you can run Pingtower on your own server as a single binary and still get the full experience. Your rules and escalations work the same, your phone still rings through the relay, and your logs and history stay on your box.
Most of all, I love building things that help people, and this is one I want to share. Think of it as a gift from me to you. It's free right now, and I'll keep it that way for as long as I can. When paid plans do arrive, prices will be fair, you'll hear about them well in advance, and everyone who joined early gets founder pricing.
Free during preview. No credit card.
Every account starts on the free tier, with real limits the server enforces and you can read over the API. Outgrowing them already? Pro is an email away — and also $0 during preview.
Every account starts here
Free
$0during preview
- Hosted checks, log alerts, rules and ladders
- Status pages and incidents
- Push to the iOS app
- No card, ever
For teams outgrowing free
Pro
$0during preview — by request
- Everything in Free
- Room for bigger streams and more projects
- No checkout — just an email
Pay nobody, ever
Self-host
$0signed binary, your hardware
- No account, no plan, no quota
- Your logs stay on your box
- Ingest, rules, ladders, webhooks — local
- Pair with pingtower.com to ring a phone
A promise from the founder: you'll be notified well before anything costs anything, pricing will be generous, and everyone who signs up during preview gets founder pricing. No card is on file, so nothing can be charged silently.
Hitting a cap never silences your pager. Past the log cap the tower stops retaining rows — every event is still evaluated.
Changelog
New in the tower, straight from the release notes.
All posts →
Upgrading a self-hosted box to 1.2.0
1.2.0 is more than a binary swap: back up first, because its migrations only go forward and its first start with your secret key reseals action and channel secrets so 1.1.0 can't …
A new look for public status pages, and what 1.1.0 changes on yours
Public status pages now lead with the overall state, show each region's view of your checks, can show response times per component, fold groups behind one bar, and show an …
Upgrading a self-hosted box to Release 1
Release 1 is more than a binary swap: back up first, because its migrations only go forward, upgrade the addons agent, move any stored sshcheck or logwatch check into the agent's …
Status pages, incidents and browser checks.
Pingtower now tells your customers too: status pages on ptwr.net or your own domain, numbered incidents with a cause and a fix, and Playwright browser checks and multi-step API …
Every page finds a human. On whatever your team already carries.
- iPhone
- Android
- Mac
- Slack
- Telegram
- Discord
- Webhooks
One tower. On every screen you use.
Public beta · TestFlight
iPhone
Push alerts, one-swipe acknowledge and live logs. iOS 17 or later.
Join the iOS TestFlight beta →Open now
Web
Checks, rules, status pages, incidents and your team, all in the browser.
Open the web app →Beta · direct download
Android
Push alerts, ack and resolve, and live logs. Android 8 or later.
Download the APK →Beta · direct download
Mac
Desktop notifications from the menu bar — open the alert, or acknowledge it. macOS 14 or later.
Download for Mac →
























