Turn-based cyberpunk roguelike as a Progressive Web App — tactical grid combat, Neuromancer-inspired tone, ASCII-plus terminal presentation on canvas. TypeScript (strict), ES modules, Web Components, and offline-first caching.
Vision and roadmap: docs/kernel-panic-v1-blueprint.md
Short overview: docs/game-overview.md
Current phase: docs/phase-2.9-plan.md (v0.2.9)
- No frameworks, no bundler — TypeScript compiled by
tsctodist/; browser loads ES modules directly - Game view — HTML
<canvas>(grid / terminal UI) - Web Components —
/components/with Shadow DOM - Data —
DataStoresingleton (localStorage, keykp:data) - DOM —
h()fromsrc/domUtils.ts - Service workers —
sw.js/sw-dev.js+ sharedsw-core.js(plain JS, not compiled)
| Command | Purpose |
|---|---|
npm start |
dev server at http://localhost:8099 (tsc watch + asset copy + live-server) |
npm test |
typecheck + build tests + node --test |
npm run typecheck |
type-check main source (strict) |
npm run lint |
oxlint |
npm run format |
Prettier |
- AGENTS.md — coding patterns and domain summary
- CLAUDE.md — concise project + standards for Claude Code
Scaffolded from the Facerix PWA template.