SDECB

Portal v2 Architecture

Goal: A static, modern portal that can browse/search KB content without requiring a backend.


Key idea

Portal v2 is a set of HTML pages under portal/v2/ that load pre-built JSON indexes from portal/v2/data/.

Those JSON files are generated from canonical sources in the repo (podcasts, interviews, website scrape export).


Files

UI

Shared styles

Shared JS

Data


Data flow

flowchart TD
  podcasts[Podcasts corpus] --> ingestPod[ingest_podcast_kb.py]
  interviews[Interviews corpus] --> ingestInt[ingest_interviews_kb.py]
  websiteExport[Website export] --> ingestWeb[ingest_website_content.py]

  ingestPod --> kbPod[kb/podcasts/index.json]
  ingestInt --> kbInt[kb/interviews/index.json]
  ingestWeb --> kbWeb[kb/website/index.json]

  kbPod --> unified[build_unified_kb_index.py]
  kbInt --> unified
  kbWeb --> unified

  unified --> portalData[portal/v2/data/*.json]
  portalData --> portalUI[Portal v2 pages]

Why this approach