Uptime monitoring confirms that a server accepted a connection and sent bytes back. It says nothing about whether those bytes were correct.
The failure that started it
A subscription endpoint returned 200 OK for eleven hours while is_active read false for every paying customer. Every monitor was green. Support told us first, at five in the afternoon.
The check that would have caught it fits on one line. Nothing we used at the time could express it.
What we decided
A pass and a failure must never look alike. A tool that cannot read the body cannot tell you whether the endpoint works. Assert reads the body, the headers and the timing, from six regions, every thirty seconds.
It confirms a failure in the other regions before it pages anyone, and it sends one alert per incident with the diff attached. When the assertion passes again, the incident closes itself.
How we price it
Assert charges for the monitor, not the check. A thirty-second interval across six regions costs the same as a five-minute one, because metering checks makes people monitor less than they should. The entry paid tier is $8 a month, published in the pricing section, with no call to find out.
Who builds it
We are a small team of developers, and we run Assert against our own services. We name the competitors we compare against, publish their prices and date them. The documentation follows Simplified Technical English, so it reads the same to everybody.