web-mutator
A client-side HTML mutation engine that rewrites the live DOM on every load, so scrapers, headless browsers and AI vision models see a hostile, ever-changing document while real users see nothing change.
The HTML a server sends and the DOM a browser renders do not have to match. web-mutator runs once the page is live and renames, re-wraps and adds noise to the DOM:
- tags become custom elements,
- classes and IDs are re-hashed,
- decoy nodes and honeypots are sprayed in,
- text can be ciphered.
Native DOM APIs (getElementById, querySelector, classList and the rest) are transparently patched, so the site’s own code keeps working against the original names. A scraper that keys off .price or #contact-form, a crawler diffing markup across loads, or an OCR model reading the page all get a moving target.
It is deliberately honest about its limits: anything shipped to the browser can ultimately be read from the browser, so web-mutator is a cost-raiser against automated collection, not DRM. Zero dependencies.