Skip to main content

Stretched

Stretched translates money into hours of your life. It's an NX monorepo: an Angular 22 (zoneless + signals) frontend, a Firebase backend (Auth, Firestore, Functions), and an Ionic + Capacitor mobile shell around the same components.

ℹ️ This folder IS the wiki — there is no GitHub wiki. Browse it as a site with bun run wiki:serve (http://localhost:4201). Pages under wiki/generated/ are machine-written — never hand-edit them. See Wiki Publishing.

Start here

  • Architecture Overview — the big picture: monorepo layout and how a story (a Story object, hand-authored in TypeScript today) renders into an answerable page.

Story & component engine

  • Dynamic Component System — the props / service / serviced-input kinds, base classes, and the registry.
  • Story Engine — story definitions, section gates, and the catalog (read) vs store (author) split.
  • Page Builder — the /admin/story-builder authoring surface.
  • Expressions and Math — the safe expression DSL, decimal math, financial helpers, { $gen } generators, and LaTeX.
  • Context and Bindings — the application context, { $ref } resolution, and reactive bindings.

Data

Product & domain

Frontend & design

Development & ops

Generated reference (auto-refreshed — see Generated Docs)

  • Storybook — every story, its interaction (play) coverage, and storyless components.
  • Production Bundle — what the web app ships: file sizes, package weights, import graph.
  • Test Coverage — per-project coverage vs the enforced thresholds.
  • Routes — the live sitemap of both apps, with guards, flag gates, and visual-shot coverage.
  • Entitlements — the tier ladder and permission matrix, executed from the real policy.
  • Story Graph — the dependency graph of the runtime stories.
  • Functions API — the Cloud Functions endpoints, auth markers, secrets, and collections.
  • E2E Flows — every Playwright-covered user flow, web / mobile / extension.