Catch what a status code cannot see.

A page can return 200 with an error message where your content should be. Describe what correct looks like in plain English. We verify it.

The failures that pass every uptime check.

A bad deploy ships a template that renders "Something went wrong" over a perfectly healthy HTTP 200. The CMS drops half the pricing table. Your uptime monitor sees a fast, successful response and stays green while customers see a broken page.

AI checks close that gap. You state what the page should contain, in the same words you would use to a teammate, and every run answers PASS or FAIL against the live page.

AI checks · yourcompany.com 1 failing
Pricing shows a Buy now button
PASS. All three plans render with prices.
2m ago
Homepage has no error text
PASS. No error or warning copy found.
2m ago
Docs search returns results
FAIL. The results area reads "0 matches".
2m ago

Fetch, strip, ask. Nothing exotic.

Each run fetches the monitored page, strips it down to the text a visitor would actually read, and asks the configured model one question: does this assertion hold? The model answers with a single PASS or FAIL line and a one-sentence reason.

The reason is the useful part. Instead of a red dot, you get "the plans section renders an error banner instead of prices" before you have opened a single tab.

# the assertion, exactly as you wrote it
"the pricing page shows a Buy now button
 and no error text"

# latest run
FAIL. The plans section renders
"Something went wrong" instead of prices.

# result stored, incident opened, channels notified

What AI checks include.

One honest requirement: a model behind it.

AI checks need an AI provider. Self-hosted installs configure their own, and if none is set up the check logs a warning and skips its run instead of fabricating a verdict or opening a false incident. Every other check type on this site works with zero AI configuration.

"the checkout page shows no error text"
FAQ

AI checks, answered.

What does this catch that uptime monitoring cannot?

Anything wrong with the content of a page that still returns HTTP 200: an error message rendered where the pricing should be, an empty product list, placeholder text that leaked to production, a page suddenly in the wrong language. A status code check passes all of those.

What exactly does the model see?

The HTML your server returns, stripped to its visible text. Scripts, styles, and noscript blocks are removed, whitespace is collapsed, and the first 6,000 characters are handed to the model alongside your assertion.

Does it run JavaScript or take screenshots?

No. It evaluates the text of the server-rendered response, not a browser session. Fully client-rendered pages may expose little text to check, and visual bugs with correct text are out of scope. For performance and rendering audits, see Lighthouse monitoring.

What happens when an assertion fails?

The result is stored with the model’s one-sentence reason, an incident opens carrying both the assertion and the answer, and your notification channels fire. The verdict history stays on the check so you can see when it started failing.

Do I need my own AI provider?

On a self-hosted install, yes: AI checks call the model configured for your Stacks app, and there is no hidden fallback. If nothing is configured, the check logs a warning and skips rather than guessing. All other check types work without any AI setup.

Start monitoring in under 2 minutes.

No credit card required for the self-hosted, open-source version.