Static intelligence portal for Iran war investigation signals, powered by the Intelligence Briefing Toolkit.
https://github.com/davidbmar/iran-intel · private · shipped
A Layer A static site that renders multi-source intelligence on the Iran conflict as readable, footnoted narrative briefs and analytical panels. It aggregates signals from the 'iran_war_investigation' project, filters them by recency and topic relevance, and presents them through daily briefs, wire feeds, and multi-perspective panel debates.
git clone https://github.com/davidbmar/iran-intel.git cd iran-intel npm install export IBT_ROOT=/path/to/intelligence-briefing-toolkit export TOOL_RAG_ROOT=/path/to/tool-RAG-for-split-personalities npx tsx scripts/build-homepage-data.ts npx tsx scripts/build-daily.ts npx tsx scripts/build-panel-data.ts npx tsx scripts/build-panel-debates.ts npm run dev
flowchart TD
subgraph ExternalSources["External Data Sources"]
IBT["Intelligence Briefing Toolkit\n(signals.json, pipeline_status)"]
RAG["tool-RAG\n(personas, debate MDs)"]
end
subgraph BuildScripts["Build Scripts (tsx)"]
BuildDaily["build-daily.ts"]
BuildHome["build-homepage-data.ts"]
BuildPanel["build-panel-data.ts"]
BuildDebates["build-panel-debates.ts"]
BuildSignals["build-signals.ts"]
end
subgraph StaticSite["Next.js Static Site"]
PublicAPI["public/api/*.json"]
Pages["Next.js Pages (SSG)"]
Out["./out/ (Static HTML)"]
end
IBT --> BuildDaily
IBT --> BuildHome
IBT --> BuildSignals
RAG --> BuildPanel
RAG --> BuildDebates
BuildDaily --> PublicAPI
BuildHome --> PublicAPI
BuildPanel --> PublicAPI
BuildDebates --> PublicAPI
BuildSignals --> PublicAPI
PublicAPI --> Pages
Pages --> Out
Built with Next.js for static site generation. Custom TypeScript build scripts (run via tsx) extract data from external JSON sources (IBT signals, graph configs, and RAG persona files), transform them into API-ready JSON structures in the public directory, and then Next.js SSG renders the pages using this pre-computed data.
sequenceDiagram
participant Dev as Developer
participant Build as Build Scripts (tsx)
participant IBT as IBT Repo
participant RAG as Tool-RAG Repo
participant Next as Next.js
participant FS as File System (public/api)
Dev->>Build: Execute build scripts
Build->>IBT: Read signals.json
IBT-->>Build: Return raw signals
Build->>IBT: Read graph_config.json
IBT-->>Build: Return topic/source config
Build->>RAG: Read persona/domain files
RAG-->>Build: Return persona metadata
Build->>RAG: Read PANEL_DEBATE*.md
RAG-->>Build: Return debate transcripts
Build->>Build: Filter & Transform Data
Build->>FS: Write homepage.json, daily-brief.json, etc.
Dev->>Next: Run npm run dev/build
Next->>FS: Read generated JSON
FS-->>Next: Return structured data
Next->>Next: Generate Static HTML
Next->>Dev: Serve/Output Static Site
Clone the repo, ensure the Intelligence Briefing Toolkit (IBT) and tool-RAG repositories are available locally, set environment variables for their paths, run the build scripts to generate API data, and then build/deploy the static site.
✓ all on main — nothing unmerged.