2.3 KiB
Lumen — offline-first festival PWA
Implementation is complete through Stage 8 (A/B activation). UI feature views and transport orchestration remain staged work per IMPLEMENTATION-CONTRACT.md.
- Validated architecture:
ARCHITECTURE-VALIDATION.md(SPIKE-01…08 reconciled) - Contract:
IMPLEMENTATION-CONTRACT.md— single source for implementation rules, boundaries B-1…B-7, invariants I-1…I-17 - Implemented: strict TypeScript foundation, PWA shell/service worker, package schema and pipeline, IndexedDB A/B persistence, signed-package verifier, and activation/rollback coordinator
- No transport/network orchestration, mesh, or accounts yet — see contract Stages 9…19
Quick start
npm install
npm run typecheck # tsc --noEmit strict
npm run lint # eslint with boundaries B-1…B-7
npm run format # prettier --check
npm test # vitest — unit and contract tests
npm run ci # typecheck + lint + format + test + build
Project structure
See IMPLEMENTATION-CONTRACT.md §4 and per-directory README.md.
Navigation
The desktop shell uses a fixed 240px sidebar on the left. It contains five large, evenly spaced vertically stacked navigation buttons:
- HOME — the launcher landing page at
/, showing a centered 2×2 grid of the four destination tiles. - EMERGENCY — the emergency destination and retains its red (rose) background.
- SCHEDULE — the existing schedule route and functionality.
- MAP — the existing map route and functionality.
- INFORMATION — the navigation label previously shown as FESTIVAL; the existing
/festivalroute and page functionality remain intact.
The root route / boots into the home launcher (no redirect). On every destination
page, the header brand ("LUMEN") acts as a home/back button — it is highlighted with
a leading chevron and returns to the launcher in one tap.
The sidebar preserves the SolLunar deck aesthetic, thin borders, typography, and visual hierarchy. On smaller screens it becomes a responsive fixed bottom navigation bar. All routes, one-tap emergency access, active-route state, and navigation behavior remain unchanged.
Branches
main— validated architecture plus implemented stages (YELLOW device/content/ops gates tracked inARCHITECTURE-VALIDATION.md §7).