1
0 Comments

I watched 13 legal pages for two weeks, three of them changed

I watched 13 legal pages for two weeks. Three of them changed.

Two weeks ago I started monitoring the terms of service, privacy policies, and pricing pages of 13 companies I or people I know build on: Stripe, Supabase, Google, GitHub, Vercel, Linear, Slack, Cloudflare, OpenAI, and a few others.

Not "did the page change", a hash tells you that and it's useless, because these pages change constantly for cookie banners and footer links. I wanted to know which clause changed and whether it mattered.

Here's everything that happened between July 21 and August 1.

July 21: Stripe added an entire prepaid card product's terms

Stripe published a complete new document, "Link Virtual Card Terms," to its consumer legal page. Six sections: scope, eligibility, Stripe's role as program manager, transaction limits, suspension and termination, warranty disclaimer. It governs a link-branded consumer prepaid debit card funded by Link Balance.

Stripe announced the Link wallet at Sessions in April. I could not find any announcement of a Link consumer card. The terms showed up first.

The clauses that matter if you're a cardholder: Stripe can terminate access "at any time for any reason," there's a release-of-claims section, and identity verification collects SSN/tax ID under the USA PATRIOT Act.

Full diff, hash-verified: https://useclausewatch.com/p/16

July 31: Supabase changed which agreement wins

Supabase updated its terms so that customers with a separate, negotiated agreement are no longer automatically bound by the new ToS. Their existing agreement governs instead.

That's a change in the customer's favor. Worth saying plainly, because monitoring tools have an incentive to make everything sound alarming and most terms changes are ordinary housekeeping.

July 31: Google made you responsible for your own data costs

Google added a section stating users are responsible for network connection costs (data allowance, for instance) incurred while using Google services, including when you aren't actively using them. The updated terms also restate California law as governing.

The pattern I didn't expect

Two of the three landed on July 31, the day before the month turned over. If terms updates cluster on effective dates at month boundaries, that's a checkable hypothesis, and it means the last day of the month is when to look. I have two data points. That's a hunch, not a finding.

The more useful observation is the Stripe one: legal pages move before announcements do. A company ships the terms when the product is close, because it has to. If you watch the legal page, you see the product before the blog post.

What I got wrong

My scoring is rule-based, keyword rules over the changed lines, no LLM in the detection path. It flags "waive," "arbitration," "liability," "indemnify," and so on.

On the Supabase diff it flagged "waiver", from a section heading about the EU/UK right of withdrawal. Nothing about that section had changed in a way that removed anything. The rules don't understand negation either: a sentence saying rights are "not limited, waived, or modified" scores the same as one that waives them.

So the flags are a filter, not a verdict. Every alert still ends with a human reading the diff. I'd rather say that than pretend the classifier is smarter than it is.

The boring part

The whole thing runs on a $7/month VPS: 1 vCPU, 1 GB RAM. Postgres, Redis, a FastAPI app, and a worker that fetches with httpx and extracts with trafilatura. No headless browser, it wouldn't fit in the RAM, and for legal pages it turns out you don't need one. Snapshots go to the local filesystem. Every version is SHA-256 hashed, so any claim above can be checked against the stored text.

The detection is keyword rules. An LLM writes the one-sentence plain-English summary after something is flagged, which costs nothing on a free tier and keeps the model out of the part that has to be reproducible.

If you build on someone else's platform

You inherited their terms. You probably haven't read the current version, and there's no reason you'd know when it changed.

The proof pages above are public and free to look at. If you want a specific vendor watched, tell me which one and I'll add it, I'm curious what breaks at 50 pages.

https://useclausewatch.com

on August 2, 2026
Trending on Indie Hackers
I Just Discovered My Analytics Numbers Are Mostly Fake. Here Is Why. User Avatar 92 comments I built a startup-idea scanner. It just told me none of my 3,400 ideas are easy wins. User Avatar 87 comments Co-founders suck… User Avatar 67 comments “I’ll just post on Upwork” is not a client strategy. Here’s what I built instead. User Avatar 63 comments The Capture Trap User Avatar 36 comments I built an AI that finds the right product for your customers User Avatar 34 comments