Mark the AI provenance of any claim you publish on Webflow — model, reviewer, confidence, source — and render it as a clean evidence card, schema.org JSON-LD, and a verifiable AI Evidence Format object.
A zero-dependency, drop-in JavaScript library — the Webflow reference implementation of the AI Evidence Format, an open specification from the Kinetic Gain Protocol Suite.
The smallest unit of trust is the claim, not the page. On Webflow you can't install a server-side plugin — so this is a small client-side library you paste in once. It reads data-aeb-* attributes you set on elements (in the Designer, or bound to CMS fields) and renders the provenance three ways at once, with no external requests and no tracking:
- A theme-friendly evidence card (and, for inline marks, an accessible underline with a hover/focus popover).
- A schema.org
CreativeWorkJSON-LD graph (with IPTC DigitalSourceType) for search engines. - A spec-valid AI Evidence Format v0.1 object (
application/ai-evidence+json) with a reproduciblesha256content hash — the same canonicalization the WordPress plugin uses, so a claim published on Webflow produces a byte-identical hash to the same claim published anywhere else.
In Webflow: Project Settings → Custom Code → Footer Code (or a page's custom code), paste:
<script src="https://cdn.jsdelivr.net/gh/mizcausevic-dev/ai-evidence-webflow@v1.0.0/ai-evidence.js" defer></script>That's it — the library self-injects its styles and renders on page load. (Prefer self-hosting? Upload ai-evidence.js to your assets and point the src there.)
Add Custom Attributes to any element (Element Settings → + Custom attributes):
| Attribute | Value |
|---|---|
data-aeb-state |
ai-generated |
data-aeb-model |
gpt-5 |
data-aeb-reviewer |
Ada Lovelace |
data-aeb-confidence |
high |
data-aeb-source |
https://example.com/source |
The element's text is treated as the claim; an evidence card is appended.
Give an inline element the class aeb-mark plus the same data-aeb-* attributes. The marked phrase gets an underline and a hover/focus popover.
This is the point of a CMS implementation: provenance comes from your collection data.
- Add fields to your Collection (e.g. AI State, Model, Reviewer, Confidence, Source) — plain Text or Option fields.
- In a Collection List, select the item element and add the custom attributes above, but instead of typing a value, click the purple "Get value from…" (bind) icon and bind each
data-aeb-*attribute to the matching CMS field. - Publish. Every rendered item now carries its own provenance, and the library enriches them all — cards, JSON-LD, and evidence objects, per item.
No code per item, no API calls — the values ride along as attributes Webflow already renders from your CMS.
| Attribute | Required | Notes |
|---|---|---|
data-aeb-state |
yes | one of the six states below |
data-aeb-model |
for AI states | a known slug (gpt-5, claude-opus-4, …) or free text |
data-aeb-custom-model |
no | used when model is other |
data-aeb-reviewer |
no | human who reviewed/verified |
data-aeb-date |
no | any parseable date (e.g. 2026-06-01) |
data-aeb-confidence |
no | high / medium / low / unrated |
data-aeb-source |
no | verification/citation URL |
data-aeb-notes |
no | short free-text note |
data-aeb-text |
no | exact claim text to hash (defaults to the element's text — set this if the element contains extra markup) |
| State | Meaning |
|---|---|
| Verified | Author-written and self-attested. |
| Cited | Backed by a link, document, or record. |
| AI-assisted | AI helped draft; a human reviewed and edited. |
| AI-generated | Produced by AI, disclosed for transparency. |
| Auto-detected | Flagged as likely AI-generated, awaiting confirmation — deliberately asserts no IPTC origin claim, since the origin is only suspected. |
| Disputed | Flagged for review or contested. |
Every claim emits an AI Evidence Format v0.1 object whose content_hash is sha256: over the claim text, canonicalized per §5.1 of the spec (decode entities → collapse Unicode whitespace → trim → SHA-256). Because the canonicalization is identical across implementations, the hash a third party recomputes matches regardless of whether the claim was published from Webflow, WordPress, or anything else. The bundled demo/ proves this against the spec's published test vectors.
Makes no external requests, loads no web fonts, runs no framework, performs no tracking. All provenance data lives in your own page markup. It is not a watermark, not an AI detector, and not a chatbot.
The object this library emits is the same one the rest of the suite consumes. Spec, JSON Schema, and reference examples: ai-evidence-format-spec · WordPress sibling: ai-evidence-block.
MIT © Kinetic Gain (Miz Causevic)
