Check the code we just served you
One button. It runs on your device, not ours — and it tells you if anything changed since your last visit.
This check runs entirely in your browser. It downloads the code this site just served you, hashes it here on your device, and compares it against the hashes we publish — and, if you have visited before, against what your own browser recorded last time.
What a green result actually means
It means four things, each of which is checked above rather than asserted:
- Every file we publish a hash for arrived at your browser unmodified — not altered in transit, not swapped by a cache or a proxy.
- The security headers are present and have not been weakened. In particular the Content-Security-Policy still forbids inline and evaluated script.
- No third-party or inline script is present on this page, and every script element carries an integrity hash.
- If you saved a baseline on an earlier visit, the code you are running today is byte-identical to the code you ran then.
That last point is the one that carries weight, and it is why the button to save a baseline exists. We can rewrite our own pages and our own manifest whenever we like. We cannot reach into your browser and change what you recorded last week.
Save a baseline now. Come back in a week and press the button again. If something changed and we did not announce a release, that is worth an email before you use the service. Better still, run it from a different network, or ask someone else to run it and compare the hashes below — a server that serves altered code to one visitor and clean code to everyone else is exactly what that comparison exposes.
What a green result does not mean
It does not mean we are honest. The code performing this check is served by the same server it is checking, and so is the list of hashes it checks against. An operator who changed the code, the manifest and this page together, consistently, for everybody, would show you green.
Nobody can engineer that away in a web page — not us, not anyone else in this category. What this page does is narrow the gap: an attacker now has to be consistent across every file, across time, and across every visitor, and a single person who kept a baseline or compared notes would see it. Casual tampering, a compromised asset, a stripped header, a targeted swap aimed at one person: those it catches.
The full reasoning, including what a legal order could reach, is on the security page.
If you would rather not trust this page either, the same comparison from a terminal:
curl -s https://notekill.com/assets/app.js | sha256sum
curl -s https://notekill.com/integrity.json
Record the result, run it again next week from somewhere else, and compare. That is the same test this page automates, with one fewer piece of our code in the middle.