בס״ד

Portal Architecture Plan — the "org chart" consolidation (2026-06-01)

docs/PORTAL_ARCHITECTURE_PLAN.md · last changed (pre-VM history) · rendered from GitHub master

Portal Architecture Plan — the "org chart" consolidation (2026-06-01)

Sam's question: "Am I doing it wrong with 1 million pages? Should there be a hierarchy/architecture like a company org chart?" YES — that instinct is correct. Today: 25 loose HTML pages + 147 briefings, each a silo, fixes don't propagate (the sprawl disease). This plan = the fix. PLAN ONLY — approve the shape, then build.

The core problem (quantified)

WordPress vs what we're doing (Sam asked)

THE ORG CHART (target architecture)

Hook Street (you)
│
├── ONE shell  (shared header/crest, nav, design tokens, auth) ── every page inherits this
│
├── /home        → decide.html engine (Protect/Advance/Waiting + loops)   [the START]
├── /money       → obligations + cash (Plaid live) + runway
├── /cameras     → Hikvision grid (after DDNS) + ecobee/Ring deep-links
├── /family      → Chanie + kiosk view (scoped)
├── /stocks      → MIS/peek
├── /briefings   → INDEX of the 147 (browseable, filterable) — not 147 loose files
└── /services    → Hook Street Services / Operator Cockpit (the sellable)

How to actually do it (HTML, no framework bloat)

Foundation decision (revisited, now clear)

TRIAL USER / entrepreneur pilot (PARKED — Sam's call: after his own home works)

Sam's idea: give 1-2 outside people a private trial — their own Google login, their data saved in a real DB (NOT a sheet), 2-week run, Sam helps them, learns what's valuable, finds pricing, builds relationships/capital/connections.
- This is exactly what Supabase command-center is for (per-user auth + private data). It's the reason that foundation exists.
- Timing (locked): AFTER Sam's one-home is built + worth showing. Onboarding a stranger onto a half-built scattered system burns the relationship. Right instinct, right timing = later.
- When ready: deploy command-center (Supabase+Netlify), add trial user's Google email, scope to their own data, 2-wk pilot, capture what they customize → that's the product + the valuation conversation.

Cloudflare session annoyance (quick fix, separate)

Sam: pages say "log in again" on reload (session expired), back-button still shows cached page. Fix = lengthen the CF Access session policy (e.g. 24h → 1 month) so Sam stops re-logging. Small setting in CF Access. (Sam-side or guided.)

BUILD ORDER (when Sam says go)

  1. Shared shell (_shell.css + _shell.js: tokens, crest, nav, dropdowns, scoping, fetch helpers). The foundation of no-more-sprawl.
  2. ONE home = decide.html engine, on the shell. Retire home/home-cockpit/next/start/start-here into it.
  3. Sections rebuilt on the shell: /money, /briefings (index the 147), /stocks, /family.
  4. Speed: parallel loads + cache so it snaps.
  5. Retire the duplicate pages → archive.
  6. THEN: cameras (after DDNS), voice-loop, trial-user (Supabase).

What Sam approves before building

Source trail · docs/PORTAL_ARCHITECTURE_PLAN.md @ master · rendered 2026-07-02 7:23 PM EDT by scripts/build-docs.py · the .md in the repo is the truth; this page is the phone-readable view