Check the code before it goes on your site.

Not a security badge someone sold us — a list of claims you can test yourself. The file you receive is plain, unminified JavaScript: hash it, read it, paste it into any AI you trust and ask what it does. Put it on your site only after that. If it is not what this page says it is, tell us — the refund policy is there for exactly that.

1. What you are about to check

One file of plain JavaScript. No build step, no minifier, no dependencies, no package manager. The hash below is the hash of that file — the same bytes ship as js/yearalert.js inside the zip, inside the WordPress plugin, and behind the Copy full script button of the install guide once your purchase unlocks it.

File
yearalert.js · yearalert/js/yearalert.js in the zip
Size
13,372 bytes
SHA-256
eca78f60c77a73b0c2eab560a2abc0ac0c2459e5598cab9bec9203af36986e61

Unzip what you downloaded and check that the file is the one we published:

macOS / Linux   shasum -a 256 yearalert/js/yearalert.js
Windows         certutil -hashfile yearalert\js\yearalert.js SHA256

Two honest footnotes. The hash is of the script, not of the zip: zip archives record build timestamps, so their digest changes without a single byte of code changing — the script is what runs on your site, so the script is what we pin. And if you take the snippet by copying it off the install guide rather than by unzipping the file, you get the same code but not necessarily the same hash: a pasted block carries whatever trailing whitespace your editor decides to add. Hash the file, not the paste.

2. What it does — and what it cannot do

Every line below is in the source you receive; nothing here is a promise made outside the code.

It does

  • Walk the text of your page and look at 4-digit numbers. <script> and <style> are skipped.
  • Update such a number only if it is a year between 1990 and today and one of two gates is open: the text carries ©, Copyright or (c), or the element sits in the bottom 15% of the page.
  • In a range like 2019–2024, change the end year only.
  • When the text carries a copyright mark, change only the year that belongs to it: in © 2019 Acme · built 2021 the 2021 stays.
  • Leave the current year alone, so running twice changes nothing.
  • Re-run every 250 ms for about ten seconds after load, then stop for good. Tilda and similar builders inject the footer after first paint; without this the script would arrive before the footer does.
  • Sit inside try/catch from top to bottom, so a failure is silence, never a broken page.
  • Skip any element you mark data-yearalert-ignore, and everything inside it.

It cannot

  • Talk to us, or to anyone. There is no fetch, no XMLHttpRequest, no sendBeacon, no tracking pixel — no network call of any kind, to our servers or to a third party.
  • Load anything external. It pulls in no library, no font, no CDN.
  • Store anything: no cookies, no localStorage, no sessionStorage.
  • See your visitors. It reads no form fields, no page URL, no addresses, no identity of any kind. It never learns a site is yours.
  • Build new markup or run generated code: no innerHTML, no eval, no new Function, no createElement. It assigns text to text nodes, and that is the only write it performs.
  • Touch anything but that text: no attributes, links, images, styles, prices or layout.
  • Phone home about a licence. There is no key, no activation, no expiry. Cut us off tomorrow and it keeps working.

Those absences are greppable. On the file you downloaded, this prints nothing:

grep -nE "fetch|XMLHttpRequest|sendBeacon|localStorage|sessionStorage|document\.cookie|innerHTML|eval\(|new Function|createElement" yearalert.js

3. The limits, stated by us first

4. Don't take our word for it — ask a machine that has no stake

Open yearalert.js from your download, paste it into ChatGPT, Claude, Gemini or whatever you already use, and paste this after it:

This JavaScript is about to go into the footer of my website. Read it and tell me plainly: does it send any data anywhere, does it load anything from another server, does it store anything in my visitors' browsers, can it break my page, and is there anything in it that is not needed for the job it claims to do? Quote the lines that back each answer.

An AI reading this file has no reason to be kind to us, and the file is short enough to read in full — that is the point of shipping it unminified. If an answer contradicts anything on this page, we would genuinely like to hear about it: support@yearalert.com.

Prefer tools over opinions? Upload the file to VirusTotal for 70+ engines, or paste it into JSHint — it is ordinary, standards-compliant code with no syntax anyone has to be clever about.

5. Where the code is

In your download, and nowhere else: we do not publish the source on this site. It reaches you with the purchase, unminified and with its comments — they explain the awkward decisions, which is where a script like this would hide something if it wanted to. Read it before it touches your site.

Fair enough?

Get it — it takes two minutes

Already bought? The step-by-step is on the install guide.