This browser tool reads terms-of-service markdown and identifies missing Digital Services Act duties by article number.

What you get: Scans every legal page and every language version in the workspace in one pass and exports a dated DSA gap report with article citations that you can hand to counsel. Full version · $149 →
Updated 2026-09-18 · ReadyStack
Reads your terms-of-service markdown and names every Digital Services Act duty it is missing, by article number. 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)npmext install ReadyStack.dsa-terms-lint npx @readystack/dsa-terms-lint <file>
Team? One key for every ReadyStack linter, 5 seats, $149 once
Scans every legal page and every language version in the workspace in one pass and exports a dated DSA gap report with article citations that you can hand to counsel.
One payment, one licence key for this tool. The key is shown right after payment.
EU technology counsel bills roughly $250-$500 an hour to read the same six pages of terms.
Buy the full version — $29Need more than this one? ReadyStack Pass opens all 670 files and 555 full versions — $29/month or $199/year. See the Pass →
· ReadyStack
Real numbers from this tool, line by line.

Eight blocking Digital Services Act gaps sat in the terms.md of a four-person clip-hosting app, and nobody had touched the file since 2 November 2023.
That date is most of the story. The EU Digital Services Act - Regulation (EU) 2022/2065 - has applied to every provider of an intermediary or hosting service offered to users in the Union since 17 February 2024, not only to the very large platforms. If people can upload, post, comment or message on the thing you built, the regulation puts named clauses in your terms of service and names the articles they come from. A terms file dated before that day was, by definition, not written against those duties.
So I put eighteen DSA rules into a VS Code extension and ran them over two files. The first, clean.md, answers all eighteen: 0 findings. The second, dirty.md, is the kind of file most repositories contain - short, friendly, competently drafted for 2023 - and it comes back with 12 findings, 8 of them blocking.
The eight blocking ones were these. No single point of contact for Member State authorities, the Commission and the Board (Art. 11). No separate point of contact for users (Art. 12). No statement that a user can reach a human rather than only an automated channel (Art. 12(1)). No legal representative in a Member State and no claim of establishment in the Union - the file said Delaware (Art. 13). No electronic notice-and-action mechanism for reporting illegal content (Art. 16). No promise of a statement of reasons when something is removed, demoted or suspended (Art. 17). No mention of the user's right to a certified out-of-court dispute settlement body (Art. 21). And the version date itself, 2023-11-02, sitting on the third line, older than the regulation it was supposed to satisfy.
Four more came back as warnings: the languages you accept from authorities (Art. 11(3)), a plain-language claim (Art. 14(1)), confirmation of receipt to whoever files a notice (Art. 16(4)), and a suspension-after-prior-warning policy for repeat abuse (Art. 23).
None of that is exotic; each of the eight is a paragraph you could write in an afternoon. They are missing because absence is invisible: you reread your terms and they look complete, because everything you can see is there.
That is also why asking a chatbot does not solve it. A language model will draft you fluent, plausible terms and never volunteer that Article 16 is absent, because what is not in the document is not in front of it. A markdown linter has the same blind spot from the other side: it checks heading levels, not statute.
Two of the eighteen rules are conditional. Art. 26 - label the ad, name who paid, explain the targeting parameters - fires only when the file mentions advertising. Art. 28(2), the ban on profiling-based ads where the service is open to minors, fires only when the file mentions minors or children. A plain B2B tool is never nagged about either.
The stakes are asymmetric in a way that makes the afternoon worth spending. DSA fines reach 6% of worldwide annual turnover, and a national Digital Services Coordinator can start from one user's complaint. On the other side, EU technology counsel bills roughly $250 to $500 an hour to read the same six pages.
The gap list is free, for the file you have open and for anyone who pastes their terms into the web page: all eighteen rules, every article number, no watermark and no cut-off. What the full version adds is scope - every legal page and every language version in the workspace in one pass, exported as a dated report with article citations you can hand to a lawyer.
It reads a terms-of-service markdown file and reports which EU Digital Services Act duties the text does not express. Eighteen rules cover Articles 11, 12, 13, 14, 16, 17, 20, 21, 23, 26 and 28, plus the version date. Each finding names the article and the sentence that is missing, in the VS Code Problems panel.
Developers and founders who host user content and wrote their own terms: a two-person SaaS with comments, a forum, a marketplace, a mobile app with profiles. The Digital Services Act has applied to every provider of intermediary services offering them in the EU since 17 February 2024, not only to very large platforms.
A language model will happily draft fluent terms and never tell you that Article 16 is absent, because absence is what it cannot see. Generic markdown linters check style, not statute. This tool reports the missing clause by article number, and its conditional rules stay quiet on advertising and minors unless your own text raises them.
Free gives the complete gap list for the file you have open: all eighteen rules, every article number, no watermark and no cut-off. The full version works across scope instead: it scans every legal page and every language version in the workspace at once and exports a dated report with article citations for counsel.
EU technology counsel bills roughly $250 to $500 an hour to read the same six pages, and a fixed-fee terms review runs into four figures. Enforcement runs the other way: Digital Services Act fines reach 6% of worldwide annual turnover, and national coordinators can act on a single user complaint.
A general AI chat answers from training data with a cutoff date, cannot read your repository and names no rule version. Terms of Service Lint - EU Digital Services Act checks the file you open against 18 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 →
For a team or company: for an invoice with your company details, a quote or several licences, write to [email protected].
Your council agenda PDF, read by a screen reader: 1 of 8 checks vs. 8 of 8Free in-browser check: does the PDF your PHP app writes pass 8 accessibility checks? Plus your ADA Title II date (April 26, 2027 or April…FreeFull version $60
Docker Desktop alternatives — check your files for freeThis free tool flags Docker Desktop-specific lines in Compose, Dockerfiles and CI that need changes for Podman.FreeFull version $29
Proxmox migration check: what Broadcom's 72-core minimum costs your VMware siteProxmox migration check for small and edge VMware sites: apply Broadcom's 72-core-per-order and 16-core-per-CPU minimums to your hosts and…FreeFull version $21
Pytest 8 migration check — check pytest changes freeFlags pytest APIs removed in pytest 8 and configuration keys pytest silently ignores, with the replacement line and the removal version for…FreeFull version $29
Recruiting workflow template: the delete-by date for every rejected candidate (UK, US, Germany)Recruiting workflow template for n8n. UK rejection window now 6 months from 2026-10-01: claim-window end and delete-by date for UK, US and…FreeFull version $199AI Crawler Rules - robots.txt Audit for AI SearchChecks robots.txt line by line and says what each AI crawler token actually controls - training, AI-search citation, or user fetch - and…FreeFull version $29ReadyStack
Calculators, templates and deadlines for the rules that change every year — free in your browser.