Part of PatchLabs WatchLive posture

Your live site’s HTTPS and headers, graded every day.

Verify your app’s domain once. Every day, PatchLabs loads your public home page the way any visitor’s browser does and grades HTTPS, the certificate, the security headers, cookie flags and mixed content, then tells your team when the grade drops.

PatchLabs never touches your database. Live posture only loads your public home page, like any visitor, and only on domains you verify.

The Live posture panel on a demo app. Domain and results are fake.

What we read

One ordinary page load. Nothing else.

A passive check, like Mozilla Observatory or securityheaders.com: it reads what your site already sends to everyone who visits.

EACH CHECK SENDS

Three things, once

  • One plain http:// request to your home page, to see whether it redirects to HTTPS
  • One https:// load of your home page, following at most 5 redirects
  • The TLS handshake of that load, to read the certificate

From the response it reads the status, the security headers, the Set-Cookie flags (cookie names, never values) and the script and stylesheet addresses in the page’s HTML.

WHAT WE NEVER DO

No probing, no payloads

  • Touch your database, or test your app for data leaks or vulnerabilities
  • Request other paths, guess URLs or follow links
  • Submit forms, call your API or sign in
  • Check a domain your team hasn’t verified

The free headers check makes the same single page load for any public address, and stores nothing.

Verify

Prove the domain is yours, one of two ways.

Each app gets its own live code, separate from the repo code you committed to start monitoring. Publish it either way, press Verify, and the first check runs at once.

A file at your site’s root

A file named patchlabs-verify.txt whose whole content is the code. In a Vite or Lovable project, put it in public/.

https://your-app.com/patchlabs-verify.txt
patchlabs-live-3f9c2a17d04be6a1

Or a meta tag on your home page

Inside <head> of the page your domain serves at /. Handy when you can’t add files.

index.html
<meta name="patchlabs-verify" content="patchlabs-live-3f9c2a17d04be6a1">

Example code: your app shows its own. Redirects must stay on the same host (or its www twin), so another site can’t vouch for yours. You can remove the file or tag after verifying.

The grade

A to F, from ten checks with stable IDs.

Start at 100. A failed high check costs 30, a medium 15, a low 5; information findings are free. Each check costs its points once, however many cookies it caught. A is 90 or more, B 75, C 60, D 40, anything lower F.

An invalid or expired certificate is always F, because visitors get a full-page browser warning. Sites on HSTS-preloaded top-level domains such as .app and .dev pass the HTTPS redirect and HSTS checks without doing anything, since browsers never load them over plain HTTP.

IDCheckSeverity
PL-027Site doesn’t force HTTPSmedium
PL-028Certificate invalid, expired or expiring within 21 dayshigh medium
PL-029No HSTS, or max-age under 180 dayslow
PL-030No Content-Security-Policymedium
PL-031Any site can frame the pagelow
PL-032No X-Content-Type-Options: nosnifflow
PL-033Cookie without Secure, or session cookie without HttpOnlymedium
PL-034Scripts or styles over plain HTTPmedium
PL-035Server headers reveal software versionsinfo
PL-036No Referrer-Policyinfo

How it works

Verify, check daily, alert, share.

  1. Verify

    Set your app’s domain in the app and publish the file or meta tag. The first check runs as soon as it’s found.

    patchlabs-verify.txt verified · grade B
  2. Check daily

    A fresh check every day while the app’s re-checks are on, and “Re-check now” whenever you ship a change.

    next check in 24 h re-check now
  3. Alert

    An email to your team and a posture.changed event to your workspace webhook, only when the grade drops or a finding appears.

    B → C · 1 new finding PL-030 no CSP
  4. Share

    An opt-in badge with the grade and the date of the last check, for your README or footer.

    live posture · A 10 Nov 2026

Badge

Show the grade, dated.

The live badge shows your latest grade and the day it was checked. It reads “private” until the app’s badge is public and the domain is verified.

A badge is not a certification. It reports our last check of the headers and settings your home page sends.

live posture: A · 10 Nov 2026
grade A
live posture: C · 10 Nov 2026
grade C
live posture: private
private
README.md
[![PatchLabs live posture](https://api.patchlabs.dev/badge/<app-id>/live.svg)](https://patchlabs.dev/proof?app=<app-id>)

Badge endpoint

Why it matters

AI builders get the app working, not the headers.

Generated projects ship with whatever the host sends by default, and that rarely includes a Content-Security-Policy, framing rules or nosniff. The fixes are a few lines in vercel.json, _headers or a Cloudflare rule, and every finding page has them.

Security headers guide

What Live posture can’t see. It reads one public page, so it says nothing about who can read your database, what your code does or whether your keys are exposed. Those are the leaks that matter most in AI-built apps, and the Lab and Code checks cover them from your repo. Live posture isn’t a vulnerability scan, a penetration test or uptime monitoring.

Questions

Questions about Live posture.

Something not covered? Email the founder.

Does Live posture touch my database or my users’ data?

No. PatchLabs never touches your database. Live posture only loads your public home page, like any visitor, and only on domains you verify. It never signs in, so it sees what a logged-out visitor sees.

How often does it check?

Once a day while the app’s re-checks are on, plus whenever someone presses “Re-check now” (at most once every 10 minutes). Turning the app’s schedule off pauses the daily check too.

Who gets alerted?

Everyone who gets the app’s alert emails, and the workspace webhook as a posture.changed event (with a short message for Slack, Discord and Teams). Only when the grade drops or a new finding appears, never for an unchanged result.

Can I change or remove the domain?

Yes. An owner or admin can change it (it needs verifying again) or remove it, which deletes its check history. Your site isn’t touched either way.

Do I need a paid plan?

Live posture is part of Watch, which every plan includes. Start with the free headers check, no account needed.

Free headers check

See your grade now, no sign-up.

Type your site’s address. You get the grade, every finding with the fix for your host, and what we saw. Sign up to have it checked every day.

Loads your public home page only Sign up free See it in the demo