Work / Project · Published · 2026-10-19

StoryAtlas

An explorer for a fictional world, with a spoiler filter and content warnings.

StoryAtlas relationship map of the sample world
StoryAtlas relationship map of the sample world. Screenshot of the implemented application with its synthetic sample data.

The problem

Readers and writers of a long story need a map of characters, events and places that never spoils what they have not read yet.

What it does

  • Relationship map with an equivalent table, timeline, atlas, glossary and chapter explorer.
  • A spoiler filter applied to every reading page; content warnings that keep summaries collapsed.
  • Editing with strict integrity rules; JSON import and export.

Engineering choices

  • The world is one validated JSON document with integrity checks on load, import and every edit.
  • The bundled world is original placeholder fiction written for the demo.

Tested results

  • 17 Vitest tests and 10 Playwright tests.
  • Independent acceptance review on 2026-10-19: fixes for spoiler leaks, integrity gaps and routing, each with a regression test.
  • Published 2026-10-19: CI green on the first run on Linux, GitHub Pages deployed, live check passed.

Last recorded verification 2026-10-19; latest recorded commit bd047b1. The full commands and outcomes are in the repository's docs/test-report.md.

Stack

  • TypeScript
  • React
  • Vite
  • zod
  • SVG
  • Vitest
  • Playwright

Candid limitations

  • The map uses a simple circular layout suited to small casts.

How it was made

Directed and reviewed by the owner; specification, code, tests and documentation written with Claude Code (AI). A separate Claude Code session that did not write the code then re-ran every check and fixed what it found; that is an AI review, not a human code audit. See the repository's AI_ASSISTANCE.md.