Sun & Rain Works Engineer Portfolio · Est. 2005
Linked Art SaaS · cultural heritage data

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.

Live in production
Visit metamuseum.org Proprietary source
Next.js 16 React 19 TypeScript Linked Art Postgres / JSONB Solr 9 GraphDB Anthropic Claude SaaS
The idea

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.

13
museum collections
128
App Router API handlers
1,258
passing tests
89%
line coverage
99
package scripts
Architecture

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.

Web & API

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.

Integration

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.

Canonical model

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.

Topology

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.

Core components

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.

Agent system

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.

Animation of the MetaMuseum agent review pipeline in action
The MetaMuseum agent pipeline: Janus reconciles, Themis validates rights, Calliope drafts copy — each writing to a review queue before any human sees the record.
Engineering

Standards-grade, tested first, secure by default

Outcome

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.