A universal disclosure layer for the web. Any piece of content — article, video, codebase, image, audio — carries a machine-readable and human-readable declaration of how AI contributed to it. Think Creative Commons, but for intelligence provenance.
As AI becomes embedded in the production of virtually all digital content, audiences, researchers, educators, and regulators have no standardized way to understand the provenance of what they read, watch, or hear. Declare AI solves this with a lightweight, embeddable standard.
The system has four distinct layers: the open schema standard, the embeddable widget, the backend API & dashboard, and the community forum. Each is independently useful; together they form the full platform.
The schema is the heart of the standard. Any creator, platform, or AI tool can generate this file. It is self-hostable — no dependency on our API required. The API adds verification, search, and dispute resolution on top.
{
"$schema": "https://declare-ai.org/schema/v1.json",
"version": "1.0.0",
// ── Content Identification ──────────────────────
"content_title": "AI in Medicine 2025",
"content_url": "https://example.com/ai-medicine-2025",
"content_type": "article", // article | video | audio | image | code | dataset
"content_hash": "sha256:8f4a2b...", // optional integrity check
// ── Declaration Metadata ────────────────────────
"declared_by": "Dr. J. Rivera",
"declared_by_handle": "@jrivera",
"declared_at": "2025-09-14T10:30:00Z",
"declaration_method": "self-declared", // self-declared | platform-verified | community-verified
// ── AI Contributions ────────────────────────────
"contributions": [
{
"type": "writing",
"pct": 55,
"tool": "Claude 3.7 Sonnet",
"tool_version": "claude-sonnet-3-7",
"provider": "Anthropic",
"role": "First draft, outline, editing",
"human_hours": 1.5
},
{
"type": "research",
"pct": 18,
"tool": "Perplexity Pro",
"role": "Literature review, citation gathering",
"human_hours": 2.0
},
{
"type": "visual",
"pct": 12,
"tool": "Midjourney v7",
"role": "Header image, diagrams",
"human_hours": 0.5
},
{
"type": "human",
"pct": 15,
"role": "Expert review, fact-checking, final edit",
"human_hours": 3.0
}
],
// ── Human Contributors ──────────────────────────
"contributors": [
{ "name": "Dr. J. Rivera", "role": "Author", "orcid": "0000-0002-1825-0097" },
{ "name": "M. Okonkwo", "role": "Editor" }
],
// ── Verification & Trust ────────────────────────
"debunk_score": 87, // 0–100, null if unscored
"deepfake_probability": 0.02, // 0.0–1.0, null if not applicable
"verified_by": "declare-ai.org",
"verification_sig": "eyJhbGci...", // JWT signature from API
// ── Disputes ────────────────────────────────────
"dispute_count": 1,
"dispute_url": "https://forum.declare-ai.org/t/ai-medicine-2025/4421",
"dispute_status": "open", // open | resolved | dismissed
// ── Legal ───────────────────────────────────────
"license": "CC-BY-4.0",
"jurisdiction": "US"
}
declare-ai.json alongside any file, link to it from a <meta> tag, and the browser extension will auto-detect it — no API account needed. The API and dashboard add verification, search, and dispute resolution as an optional upgrade layer.
The backend has three jobs: accept and store declarations, expose them via API for the widget and extension, and run verification / scoring services. It must be horizontally scalable and 100% open source so the community can self-host.
GET /v1/declarations/{url} returns declaration for a URL. POST /v1/declarations submits a new one. GET /v1/search searches by tool, contributor, content type. Anonymous rate-limited; authenticated for higher limits. Fully documented via OpenAPI spec.dispute_count, and notifies the original declarer. Community moderators + the original creator can resolve or dismiss. Resolved disputes update the badge color in the widget from yellow to green or red.The forum is built on self-hosted Discourse (open source, free to run). The Declare AI API creates threads automatically when disputes are filed. Here's what a dispute thread looks like:
Chosen for: open source availability, developer familiarity, low ops overhead at launch, and ability to scale. Everything runs on commodity infrastructure a volunteer community can maintain.
| Layer | Technology | Why |
|---|---|---|
| Frontend | Next.js 14 + Tailwind CSS | SSR for SEO on declaration pages, React for dashboard UI, huge contributor base OSS |
| Widget | Vanilla JS (zero deps, ~8kb) | No framework overhead; embeddable on any site with a single script tag Performance |
| Extension | WebExtensions API (MV3) | Single codebase targets Chrome, Firefox, Edge, Safari with minor tweaks Cross-browser |
| API | Node.js + Fastify | Fast, low memory, excellent TypeScript support, familiar to most web devs Performance |
| Database | PostgreSQL 16 | JSONB for flexible schema storage, mature, excellent free hosting on Supabase/Neon Reliability |
| Cache | Redis (Upstash) | API response caching, rate limiting, session store. Serverless option avoids ops Low-ops |
| CDN + JSON Hosting | Cloudflare R2 + Workers | Free egress, global edge delivery of declare-ai.json files, KV for hot cache Free tier |
| Auth | Auth.js (NextAuth) | GitHub, Google, email magic link. No vendor lock-in, runs in the Next.js app OSS |
| Search | Meilisearch | Fast full-text search of declarations by URL, tool, contributor. Self-hostable OSS |
| Forum | Discourse | Industry standard for open-source communities. Ruby-based, rich API for automation OSS |
| CI/CD | GitHub Actions | Free for public repos, deeply integrated with GitHub where the code lives Free |
| Hosting (MVP) | Fly.io or Railway | Simple deployment from Dockerfile, free tiers adequate for launch, easy to migrate Simplicity |
| Monitoring | Sentry + Grafana Cloud | Error tracking and metrics. Both have generous free tiers for open source projects Free OSS tier |
Each phase is independently shippable. The goal is to get something real in front of creators and developers as fast as possible, then grow through community contribution.
The standard must be free to be universal. The infrastructure is funded through optional hosted services — nobody is ever forced to pay.
github.com/declare-ai/declare-ai — monorepo containing: /schema, /widget, /extension, /api, /site, /docs. Start with GitHub Discussions enabled and a pinned RFC thread for schema v1.0 feedback.