How oskar-norborg/nordlys works
NORDLYS is a browser-based private-wealth planning app: users can model a household plan, build a portfolio from locally imported transactions, assess risk on that portfolio, and run strategy backtests. The graph preserves these distinct workflows plus options and PDF reporting. The README documents the product capabilities; sampled source confirms key persistence, import, simulation, and backtest behavior, but does not expose every screen-to-engine call, so uncertain wiring is omitted.
Main entry points: client.ts Backtest client · portfolio-page.tsx Portfolio view · app-store.ts App state · router.tsx App router
Components 23
App experience
- App router
src/router.tsx - App shell
src/components/shell/app-shell.tsx - App state
src/store/app-store.ts - Browser storage
src/data/storage.ts
Portfolio workflow
- Transaction import
src/components/import/import-page.tsx - Ledger import pipeline
src/engine/ledger/pipeline.ts - Portfolio view
src/components/portfolio/portfolio-page.tsx - Holdings analytics
src/engine/ledger/holdings.ts - Portfolio gap analysis
src/engine/ledger/gap.ts
Planning and risk
- Household planner
src/components/planner/planner-page.tsx - Monte Carlo client
src/engine/mc-client.ts - Monte Carlo engine
src/engine/montecarlo.ts - Risk assessment
src/components/risk/risk-page.tsx - Risk calculations
src/engine/risk.ts - Options analysis
src/components/options/options-page.tsx
Strategy research
- Backtest workspace
src/components/backtest/backtest-page.tsx - Strategy language
src/engine/strategy/compile.ts - Backtest client
src/engine/backtest/client.ts - Backtest engine
src/engine/backtest/engine.ts - Sweep and validation
src/engine/backtest/sweep.ts - Engine diagnostics
src/routes/diagnostics.tsx
Reporting
- PDF reporting
src/engine/pdf/index.ts
Other components
- Household user
Connections 23
- Household user → App router: opens screens
- App router → App shell: renders routes
- App shell → App state: reads and updates
- App state → Browser storage: persists locally
- Household user → Transaction import: selects export
- Transaction import → Ledger import pipeline: imports rows
- Ledger import pipeline → App state: updates ledger
- Household user → Portfolio view: reviews holdings
- Portfolio view → Holdings analytics: analyzes ledger
- Portfolio view → Portfolio gap analysis: checks allocation gaps
- Household user → Household planner: enters household goals
- Household planner → Monte Carlo client: requests simulation
- Monte Carlo client → Monte Carlo engine: runs locally or in worker
- Household user → Risk assessment: reviews portfolio risk
- Risk assessment → Risk calculations: calculates risk
- Household user → Options analysis: explores options
- Household user → Backtest workspace: defines strategy
- Backtest workspace → Backtest client: submits jobs
- Backtest client → Strategy language: compiles source
- Backtest client → Backtest engine: runs backtest
- Backtest client → Sweep and validation: runs parameter sweep
- Household user → Engine diagnostics: opens diagnostics
- Household user → PDF reporting: requests report