Meta Museum
Source-backed museum data, gated to production by evidence.
A public-facing Linked Art web app that turns 13 museum collection APIs into source-backed exploration, rights-aware review, and governed publication. JSON-LD is canonical end to end, AI agents draft cited, rights-checked notes while humans approve before anything ships. Built on Next.js 16 and React 19, AIDD + TDD-driven, with a strict 10/10 readiness gate that stays closed until real-world reliability evidence matures.
A museum-data product with a trust model, not just a search UI
Collection records are only valuable when researchers can inspect provenance, rights, citations, and transformation history. Meta Museum bets on Linked Art JSON-LD as the canonical model, then exposes it through web pages, APIs, agent-assisted review, and governed publication paths.
Most aggregators flatten provider quirks into a lowest-common-denominator search box. Meta Museum keeps each source faithful: thirteen museums sit behind one gateway, each isolated in its own adapter, with raw payloads preserved and provenance carried on every record-touching path. Public pages and APIs share the same source-backed evidence instead of detached marketing copy, and every image surface shows rights, reuse status, and attribution, with unknown rights rendered as an explicit non-reuse warning.
Layered Next.js product over an adapter boundary
A TypeScript App Router front of house, a faithful provider-integration layer, and Python services for validation and reconciliation, joined by a canonical Linked Art model that maps to UI shapes only at the boundary.
Next.js 16 App Router
React 19 pages and 128 app/api route handlers serve public explore surfaces, records, docs, trust pages, and Linked Art endpoints, with Zod contracts as leaf modules and content negotiation for application/ld+json.
Per-provider adapters
Met, Getty, Rijksmuseum, NGA, RKD, Louvre, Harvard, Smithsonian, V&A, Princeton, Europeana, AIC, and CMA each get an isolated adapter behind a stable /api/providers/* facade, cross-provider logic lives in one artwork-builder boundary.
Linked Art JSON-LD
Event-centric CIDOC-CRM modeling (Object → Activity → Person), minted URIs with no blank nodes, multi-value properties kept as arrays, and immutable _source.raw payloads transformed only at read time.
Real production stack
Next.js on Vercel, managed documents in Neon Postgres (JSONB), Python FastAPI validation and reconciliation services on Render, and secured cron drains for background projection and publishing. Solr 9 and GraphDB provide the search and graph scale path.
Bounded surfaces, adapters, and review services
The product is a set of clearly-owned surfaces: integration boundaries, a canonical normalizer, a human-in-the-loop AI layer, and syndication.
Provider gateway
Thirteen collection adapters and a capability registry isolate upstream API differences behind a single stable facade.
Linked Art normalizer
Keeps JSON-LD canonical, rights entities, identifiers, equivalent links, activities, and immutable source payloads preserved.
AI query & agents
Claude-backed query, chat, content generation, and review agents with citation/refusal gates; the paid path is auth-gated.
Rights-first UX
Every card and detail page surfaces source URL, attribution, and a reuse-status badge; unknown rights flag "Rights, review".
ActivityStreams feed
An Activity Streams 2.0 change feed publishes ordered Create / Update / Delete pages for downstream syndication.
IIIF & reconciliation
IIIF image viewing plus exhibition and literature reconciliation, with multi-tenant orgs and RBAC.
Agents draft, humans approve, nothing ships unreviewed
The reconciliation agent Janus handles cross-source merging. Themis handles rights and provenance. Calliope drafts curatorial copy. All three write to a review queue — humans promote to production.
Standards-grade, tested first, secure by default
- Standards-grade Linked Art. JSON-LD is canonical end to end; an executable conformance suite maps each provider's data to the Linked Art 1.0 reference model, SHACL-gated in CI so the JSON-LD expands to valid CIDOC-CRM RDF, verified against the live deploy at MUST level.
- AIDD + TDD throughout. Every behavior is driven by a failing test first; 1,258 node:test tests, strict TypeScript, 89% line coverage, plus axe + Lighthouse accessibility checks (WCAG 2.1 AA).
- AI shipped responsibly. The model key is server-only and the paid path is auth-gated, so anonymous traffic transparently falls back to local heuristics, a denial-of-wallet guard for public deployment, with an eval harness of golden questions and faithfulness checks.
- Rights-first by default. Generated content must cite sources or refuse, agents draft while humans approve before any publication, and unknown-rights media renders an explicit non-reuse warning.
- Evidence-gated readiness. The strict 10/10 production claim cannot pass from local checks alone; it stays blocked until real reliability, pilot, KPI, and feed-adoption evidence matures, readiness is a measured fact, not a marketing line.
Live, faithful, and honest about readiness
Meta Museum runs in production at metamuseum.org on Vercel + Neon. It illustrates standards-grade Linked Art modeling, a thirteen-provider integration gateway, responsible AI with citation and rights gates, and evidence-driven release engineering, a cultural-heritage SaaS where every claim is tied to a source or a passing check.