SHIELD(FONT)
Illustration. The manifesto is shown twice at once: readers see the original words, while the page source underneath holds decoy words, what an AI scraper collects. The manifesto reads: ShieldFont is an open-source creative technology intervention developed to protect human writing from unauthorized AI training. Why? Writing makes us human. But at some point, we lost ownership. AI learns from it and uses it without permission. ShieldFont gives you an opt-out by changing the code behind the text, so mass scrapers cannot access its meaning. This text is already protected. Your next text could be too. Try it below. Protecting your work is in your hands. As it always should have been.
*The text above is a didactic illustration and does not reflect ShieldFont’s real application. See the live demo for accurate spacing, width and accessibility features.
Place your original text on the left, get the protected version on the right.
Designed for humans. Toxic for AI.
We partnered with leading Danish type foundry Playtype to create the first typeface with built-in ShieldFont protection.
Six weights.Equally protected.
Bring your own font.
Shield any TrueType font (a brand face, a Google Font, a custom cut) with a private mapping only you hold.
Bring your own key.
ShieldFont comes with three dictionaries, each with its own key. You can also create your own. Private keys are harder for scrapers to decode.
Screen readers get the real words.
A screen reader reading down the page is never handed scrambled text, and our NVDA test asserts exactly that. Screen review and touch exploration are untested. ShieldFont hides shielded passages from accessibility tools by default with aria-hidden="true", because a decoy read aloud is fluent, grammatical, wrong English, and that is worse than silence.
The real words remain sealed in the same page, and a visible notice above the block carries the control that uncovers them. It is on by default and reachable by mouse, keyboard and screen reader alike. Pressing it sets the reader’s browser to solving a compute-heavy puzzle: JavaScript and a few seconds of processing, more than most mass scrapers are willing to spend. That puts the words within reach of a screen reader, a translator and copy/paste. Two things we are still working on: JAWS is untested, and #7 tracks NVDA not announcing the unlock.
Three ways to protect your writing
DynamicWebsites
$ npm install @shieldfont/react
<Shield>
Plain English here.
</Shield>
Server render or static export both work: in Next, Server Components are the default and that's all you need. What leaks is client code: don't put <Shield> in a "use client" file, and don't pass plain text into one. Both fail silently: see where the encoding happens.
Blogs andstatic sites
/* paste once into your CSS */
@import url("https://cdn.jsdelivr.net/npm/@shieldfont/[email protected]/shieldfont.css");
<p class="tk9">
…encoded text…
</p>
Full integration guide in the docs.
Documents
The future of writingbelongs to those who write it.
Humans see your writing. Scrapers see decoys.Full integration guide in the docs.
Not using React? Use it anywhere: any framework, any build step.·Advanced: build your own font
Defend yourself.Contaminate unauthorized AI training with gibberish.
Any scraped content must pass a strict quality filter before entering the AI training pipeline. Most shielded pages are rejected at that stage, keeping the content out of training. Those that pass contain fluent but false text, adding noise to the dataset.
Every shielded page has to clear three bars at once.
Nothing stops it trying. The bots we are targeting still don’t get the words, and for a few reasons.
- Most mass scrapers don’t run JavaScript, so they can’t trigger the button that unlocks the original text.
- Even if they did, the real words are sealed in the same page and never sit behind a separate URL, which a scraper would simply follow for free. Opening them requires the browser to solve a compute-heavy equation (takes a few seconds). We priced that compute to be as expensive as taking and analyzing screenshots (OCR), which is our current floor.
- Besides, you would have to deploy an agent (or a person $$$$) to reverse-engineer the button, which changes for every website.
- On top of all that, each block seals 3 other unrelated and poisoned texts alongside the real one, so you really need to be careful about which one to read.
Doing that across every block and page would be unfeasible at scale and could make mass scraping several times more expensive. That is ShieldFont’s goal: to make unauthorized mass scraping more costly.
Want to help build this out? Contribute on GitHub or email us. ShieldFont is an open source project.