Lints subscription signup and pricing pages against California's Automatic Renewal Law as amended by AB 2863, in force 2026-01-01. Runs entirely in your browser — nothing is uploaded.
Same engine as the VS Code extension, byte for byte.
Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.
VS Code MarketplaceOpen VSX (Cursor, VSCodium)npmMCP server (npx)Docker Hubext install ReadyStack.autorenew-signup-lint npx @readystack/autorenew-signup-lint <file> npx @readystack/autorenew-signup-lint --mcp
Team? One key for every ReadyStack linter, 5 seats, $149 once
Sweep every matching page in the workspace and write one dated report file into the folder, yours to keep and attach to a review.
One payment, one licence key for this tool. The key is shown right after payment.
An hour of US outside counsel reviewing one signup flow is commonly quoted at $300-$500.
Buy the full version — $29· ReadyStack
Real numbers from this tool, line by line.

Eight errors on one 29-line signup page: that is what sixteen statutory checks returned on the kind of subscription page a US SaaS engineer ships every week, and every one of the eight is a line of markup somebody wrote on purpose.
Since 1 January 2026, California's Automatic Renewal Law, Cal. Bus. & Prof. Code 17600 to 17606 as amended by AB 2863, decides what a page offering a renewing plan has to say, where it has to say it, and how the customer agrees. The remedy is the part engineers underestimate: goods or services billed under a non-conforming automatic renewal offer are an unconditional gift to the customer under section 17603. Not a fine to argue down later. A gift, already given.
Here is the page the linter read. Twenty-nine lines of HTML, a headline offering a free trial, "First month 50% off", a price rendered as "Just $14.99", a bullet reading "Billed annually after your trial", one checkbox, one submit button, and a support line at the bottom.
Eight errors came back.
The price says $14.99 and never says per what. The page never states that the plan keeps renewing until the customer cancels, which is a term of the offer, not a detail for the terms page. The free trial converts with no price named for what follows it. The single checkbox arrives with the checked attribute already set, and its label swallows the terms of service and the auto-renewal offer in one tick, when AB 2863 asks for consent to the renewal terms collected separately and affirmatively. Nothing on the page tells the customer how to cancel, and the one sentence that mentions cancelling routes them to support to be called back within two business days, though they subscribed online in ninety seconds. And in line five, a comment: compliant with the FTC click-to-cancel rule. The Eighth Circuit vacated that rule on 8 July 2025. It binds nobody. The statute that does bind this page is never mentioned.
That last one is the reason this is a linter and not a checklist. Ask an assistant whether a signup page is compliant and it will cite the federal rule that no longer exists, because the internet is still full of 2024 blog posts about it. It cannot see your file, so it cannot tell you that line 20 is the problem.
Five warnings followed the errors: an introductory rate with no regular rate behind it, a trial with no conversion notice, an annual term with no yearly reminder, a submit control sitting more than a dozen lines from any statement of the terms, and a retention offer standing in front of the cancel control. Two notes closed the report: nothing on the page records what was shown and when it was accepted, though proof of consent has to be kept for three years, and a dated line confirming the statute has been in force since 2026-01-01.
The same engine read a corrected version of that page and returned one line, a note giving the statute's date. Zero errors. That is what the fix looks like: a price with a frequency attached, one sentence saying the plan renews until you cancel, a separate unticked box for that term alone, an online cancel link, the post-trial charge spelled out, a reminder promised, a hidden field recording consent, and the terms within sight of the button.
Sixteen checks, line numbers, in the editor where the file already is. An hour of US outside counsel on a signup flow is commonly quoted at $300 to $500, and that hour is worth buying for the hard questions. Not for a pre-ticked box.
It reads the markup of a subscription signup or pricing page and reports, line by line, where the automatic renewal disclosure falls short of California's Automatic Renewal Law as amended by AB 2863. Sixteen checks: the renewal term, the recurring amount and frequency, affirmative and separate consent, the cancellation path, trial conversion, reminders, and proof of consent.
Engineers, product owners and founders who ship subscription signup, pricing or upgrade pages that any California customer can reach. If your repository holds the HTML, JSX, Vue or Svelte file where someone agrees to a plan that renews, this reads that file. Compliance and legal reviewers use the workspace report as an evidence attachment.
Assistants still cite the FTC click-to-cancel Negative Option Rule, which the Eighth Circuit vacated on 8 July 2025, and they answer about pages they cannot see. HTML validators and accessibility linters check structure, never statutes. This one points at the line number in your own file and names the statutory requirement it misses.
Checking the file open in your editor is free forever, all sixteen checks, no key, no limits, plus the same engine free in the browser. The licence covers a different job: sweeping every matching page in the workspace and writing one dated report file into the folder that you keep and can attach to a review.
An hour of US outside counsel reviewing one signup flow is commonly quoted at three hundred to five hundred dollars, and a page-by-page review of a large application runs well past that. The extension is twenty-nine dollars once, one key per person or CI seat,.
A general AI chat answers from training data with a cutoff date, cannot read your repository and names no rule version. Subscription Signup Lint - auto-renewal law (California ARL) checks the file you open against 16 rules from a rule set dated 2026-09-20, and points at the exact line. For a filing, an audit or a client you need that dated result on your own files.
One question, answered by the person who built it. Your email only if you want the answer sent.
Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.
For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →