Digital representation of Anthony James Padavano’s MFA thesis project, implemented as an immersive multi-mode web experience.
The content ingestion pipeline requires pdftotext (part of the Poppler library) to extract text from thesis PDFs.
You can install it using the provided setup script:
./scripts/setup-deps.sh
Or manually:
brew install popplersudo apt-get install poppler-utils/ Mythic Node Map (default)/feed Faux Social Feed/scroll Three-Cycle Scroll/read/[docSlug] Canonical inline reader/archive Full mirror downloads/about Portfolio contextCanonical inline text is ingested from sixth-draft PDFs under:
public/mirror/2018-03-20 - met4 - sixth draft/*
Docs assembled in order:
npm run content:ingest extracts canonical PDF text to src/content/*.mdnpm run content:mirror builds src/data/mirror-manifest.json (with SHA-256)npm run content:nodes builds src/data/node-map.json and src/data/feed-items.jsonnpm run content:qa writes src/data/canonical-fidelity-report.json and enforces <= 8% deltanpm run content:integrity writes src/data/data-integrity-report.json and verifies invariantsnpm run content:build runs the full pipelinenpm run build runs content:build before next build.
npm install
npm run dev
npm run lint
npm run typecheck
npm test
npm run test:e2e
npm run build
Bundle profile:
npm run build:analyze
Copy .env.example to .env.local and set:
NEXT_PUBLIC_POSTHOG_KEYNEXT_PUBLIC_POSTHOG_HOSTPOSTHOG_KEYPOSTHOG_HOSTIf PostHog keys are missing, analytics responses remain valid and events are not forwarded.
POST /api/analyticsGET /api/manifest/canonicalGET /api/manifest/mirror.github/workflows/ci.yml runs lint, typecheck, unit/integration tests, and build..github/workflows/e2e.yml runs Playwright when PR has label e2e.Recommended required status checks on main:
linttypecheckunit-integrationbuilddocs/content-editorial-checklist.mddocs/launch-qa.mdAll thesis artifacts are mirrored under public/mirror and exposed at /mirror/**.