Multi-Topic Intelligence Dashboard Platform
Track conflicts, disasters, political histories, and more — with AI-powered nightly updates, interactive maps, and 3D globes.
- 48 active trackers across conflicts, disasters, political histories, science, and culture
- Config-driven architecture — each tracker is a
tracker.json+ data directory; no code changes needed - AI nightly updates — Claude Code with web search refreshes eligible trackers automatically at 6 AM UTC
- Interactive 2D maps — Leaflet with strike arcs, overlay layers (no-fly zones, GPS jamming, earthquakes), live flights, and day/night terminator
- 3D globe visualization — CesiumJS with missile animations, satellite tracking, cinematic event mode, and live ship AIS data
- Full-text search — Pagefind indexes all 190+ pages at build time; zero runtime overhead
- Source tier system — every data point classified Tier 1–4 (official → unverified); contested claims explicitly flagged
- One-command tracker creation — GitHub Actions
init-tracker.ymlgenerates a fully populated tracker in ~25 minutes via Claude Code - Embeddable widgets — each tracker has a
/embed/{slug}/page (~4 KB, theme-aware) for third-party embedding
| Icon | Tracker | Topic | Region | Live |
|---|---|---|---|---|
| ⚔️ | Iran Conflict | 2026 Iran-US/Israel conflict — Operation Epic Fury / Roaring Lion | Middle East | Dashboard |
| 🇺🇦 | Ukraine War | Russia's full-scale invasion — frontlines, casualties, diplomacy | Eastern Europe | Dashboard |
| 🕊️ | Gaza War | Israel-Gaza war — ground ops, humanitarian crisis, ICJ proceedings | Israel/Gaza | Dashboard |
| 🕊️ | Israel-Palestine | The full arc from 1948 founding to present | Middle East | Dashboard |
| 🗽 | September 11 | 2001 attacks, War on Terror, 9/11 Commission | USA | Dashboard |
All 48 trackers
| Icon | Tracker | Topic | Region | Link |
|---|---|---|---|---|
| 🏔️ | Afghanistan-Pakistan War | US invasion, Taliban insurgency, ISIS-K, TTP attacks | Afghanistan/Pakistan | Dashboard |
| 🌹 | AMLO Presidency | Fourth Transformation, Tren Maya, AIFA, constitutional reforms (2018–2024) | Mexico | Dashboard |
| 🌙 | NASA Artemis Program | Return to Moon, SLS, Orion, Gateway station, SpaceX/Blue Origin | USA/Global | Dashboard |
| 🕯️ | Ayotzinapa | Forced disappearance of 43 students in Iguala, Guerrero (2014) | Mexico | Dashboard |
| 🐰 | Bad Bunny | SoundCloud to reggaeton star, YHLQMDLG, Un Verano Sin Ti, world tours | Puerto Rico/Global | Dashboard |
| 🎤 | BTS | K-pop global rise, UN speeches, military service, ARMY fandom | South Korea/Global | Dashboard |
| ⚔️ | Felipe Calderón Presidency | War on drugs, military vs cartels, Mérida Initiative (2006–2012) | Mexico | Dashboard |
| ☢️ | Chernobyl Disaster | 1986 nuclear disaster — reactor explosion, liquidators, fallout | Ukraine/USSR | Dashboard |
| 🇨🇱 | Chile: Allende to Pinochet | Socialist government, CIA intervention, 1973 coup, Operation Condor | Chile | Dashboard |
| 🤖 | China Tech Revolution | Made in China 2025, AI race, Huawei, TikTok, DeepSeek, US decoupling | China/Global | Dashboard |
| 🦠 | COVID-19 Pandemic | Wuhan origin, lockdowns, vaccines, variant waves, WHO response | Global | Dashboard |
| 🇨🇺 | Cuba Crises | Revolution, Bay of Pigs, Missile Crisis, embargo, 2021 protests | Cuba/Caribbean | Dashboard |
| 🔫 | Culiacanazo | October 2019 Culiacán Crisis and January 2023 Chapo Jr. capture | Sinaloa, Mexico | Dashboard |
| ⛵ | European Conquest of the Americas | Columbus, conquistadors, Aztec/Inca fall, colonization, Columbian Exchange | Americas | Dashboard |
| 🦊 | Vicente Fox Presidency | Mexico's first opposition president, democratic transition (2000–2006) | Mexico | Dashboard |
| ☢️ | Fukushima Daiichi | 2011 nuclear disaster — tsunami, meltdowns, TEPCO, decommission | Japan | Dashboard |
| 🕊️ | Gaza War | Ground operations, ceasefire talks, humanitarian crisis, displacement | Israel/Gaza | Dashboard |
| 📉 | Global Recession Risk | Tariff escalation, bond stress, China slowdown, central bank policy | Global | Dashboard |
| 🇭🇹 | Haiti Collapse | Moïse assassination, gang control, transitional council, UN intervention | Haiti/Caribbean | Dashboard |
| 🛂 | ICE History | ICE creation post-9/11, family separations, mass deportation campaign | USA/Mexico | Dashboard |
| 🇮🇳 | India-Pakistan Conflict | Partition, Kashmir dispute, four wars, nuclear tests, Kargil, Mumbai | South Asia | Dashboard |
| ⚔️ | Iran Conflict | 2026 Iran-US/Israel conflict — Operation Epic Fury | Middle East | Dashboard |
| 🕊️ | Israel-Palestine Conflict | 1948 to present — wars, Oslo Accords, intifadas, settlements | Middle East | Dashboard |
| 🎯 | El Mencho / CJNG | February 2026 killing of El Mencho, CJNG territorial control | Mexico | Dashboard |
| 🗺️ | Mexico-US Wars | Texas Revolution, Alamo, Mexican-American War, Treaty of Guadalupe Hidalgo | Mexico/USA | Dashboard |
| MH17 Shootdown | 2014 downing of Malaysia Airlines Flight 17 over eastern Ukraine | Eastern Ukraine | Dashboard | |
| 🇲🇽 | Mexican Political History | PRI hegemony, democratic transition, PRI/PAN/PRD/Morena evolution | Mexico | Dashboard |
| 🇲🇲 | Myanmar Civil War | Post-coup civil war following February 2021 military takeover | Myanmar/SE Asia | Dashboard |
| 🛡️ | NATO-US Tensions | Burden-sharing disputes, Article 5 questions, European autonomy | Europe/N. America | Dashboard |
| 🔴 | October 7th Attack | Hamas-led assault on Israel — kibbutz raids, hostages, IDF response | Israel/Gaza | Dashboard |
| 🏛️ | Enrique Peña Nieto Presidency | Structural reforms, Ayotzinapa crisis, Casa Blanca scandal (2012–2018) | Mexico | Dashboard |
| ⚛️ | Quantum Theory | Planck, Einstein, Bohr, Heisenberg, Copenhagen, Bell theorem, quantum computing | Global | Dashboard |
| 🌍 | Sahel Insurgency | JNIM/ISGS expansion, military coups, Wagner Group, French withdrawal | Sahel/North Africa | Dashboard |
| 🗽 | September 11 Attacks | 2001 al-Qaeda attacks, War on Terror, 9/11 Commission | USA | Dashboard |
| 🔬 | Claudia Sheinbaum Presidency | First female president of Mexico, judicial reform, US-Mexico relations | Mexico | Dashboard |
| 💊 | Sinaloa Cartel Fragmentation | Mayo Zambada capture, Chapitos vs Mayos faction war, fentanyl (2024–) | Mexico/Sinaloa | Dashboard |
| 🦁 | Somalia Conflict | Al-Shabaab insurgency, AMISOM, US drone strikes, state fragility | Somalia/Horn of Africa | Dashboard |
| 🌊 | SE Asia Escalation | South China Sea militarization, AUKUS, Philippines-China clashes | SE Asia/Pacific | Dashboard |
| 🚀 | SpaceX History | Falcon 1, Falcon 9 reusability, Dragon, Starlink, Starship, Mars | USA/Global | Dashboard |
| ⚔️ | Sudan Civil War | SAF vs RSF, Khartoum battle, Darfur ethnic violence, displacement | Sudan/East Africa | Dashboard |
| 🗺️ | Taiwan Strait Tensions | PLA exercises, TSMC, US arms sales, Taiwan Strait incidents | Taiwan/East Asia | Dashboard |
| 🕯️ | Tlatelolco Massacre | October 2, 1968 massacre at Plaza de las Tres Culturas, Mexico City | Mexico City | Dashboard |
| 🦅 | Trump Presidencies | 45th and 47th president — immigration, trade wars, Jan 6, tariffs | USA/Global | Dashboard |
| 🇺🇦 | Ukraine War | Russia's full-scale invasion — frontlines, casualties, diplomacy | Eastern Europe | Dashboard |
| 🌎 | US Interventions in Latin America | CIA coups, Operation Condor, Panama, Guatemala 1954, Nicaragua Contras | Latin America | Dashboard |
| ⚽ | FIFA World Cup 2026 | First 48-team tournament, tri-host USA/Mexico/Canada, venues, schedule | USA/Mexico/Canada | Dashboard |
| 🪖 | World War I | The Great War 1914–1918 — Somme, Verdun, Gallipoli, Versailles | Europe/Global | Dashboard |
| ⚔️ | World War II | WWII 1939–1945 — Holocaust, Stalingrad, Normandy, atomic bombs | Europe/Pacific | Dashboard |
git clone https://github.com/ArtemioPadilla/watchboard.git
cd watchboard
npm install
npm run devOpen http://localhost:4321/watchboard/.
npm run build # Type-check + build static site to dist/
npm run preview # Preview production build locallyEach tracker is a self-contained directory under trackers/:
trackers/{slug}/
tracker.json # Config: name, sections, map bounds, AI prompts, categories
data/
meta.json # Title, day count, last updated
kpis.json # Key performance indicators strip
timeline.json # Historical eras + crisis timeline
map-points.json # Geographic points of interest
map-lines.json # Strike arcs, supply routes, frontlines
casualties.json # Casualty table with tier/contested flags
political.json # Political figures grid
... # Other section-specific data files
events/ # Daily partitioned event files (YYYY-MM-DD.json)
At build time, src/lib/tracker-registry.ts auto-discovers all non-draft trackers and src/pages/[tracker]/index.astro generates a page for each one via getStaticPaths().
- Go to Actions > Initialize New Tracker
- Enter:
slug, topic description, start date, geographic region - Claude Code generates
tracker.json+ empty data files, validates schema, builds - Auto-triggers Seed Tracker Data to backfill historical data with deep web research
- Result: a fully populated, deployed tracker
Every data point carries a source classification:
| Tier | Label | Examples |
|---|---|---|
| 1 | Primary / Official | Government statements, UN, IAEA, official bodies |
| 2 | Major Outlet | Reuters, AP, BBC, CNN, Al Jazeera |
| 3 | Institutional | CSIS, HRW, Oxford Economics, think tanks |
| 4 | Unverified | Social media, unattributed claims |
Contested figures are explicitly flagged with 'yes', 'evolving', 'heavily', or 'partial'.
| Layer | Technology | Purpose |
|---|---|---|
| Framework | Astro 5 | Static site generation + TypeScript |
| UI | React 19 | Interactive islands (map, timeline, globe) |
| 3D Globe | CesiumJS + Resium | Missile animations, satellites, cinematic mode |
| 2D Map | Leaflet | Strike arcs, overlays, live flights, AIS ships |
| Validation | Zod 3 | Runtime schema validation for all data files |
| Search | Pagefind | Build-time full-text index, zero runtime JS |
| AI | Claude Code (Max OAuth) | Nightly data updates via web search |
| CI/CD | GitHub Actions | Build + deploy + nightly data refresh |
| Hosting | GitHub Pages | Static deployment at artemiop.com/watchboard/ |
Data is automatically refreshed at 6 AM UTC via GitHub Actions. Each tracker has a configurable updateIntervalDays — active conflicts update daily; historical cases update every 30–180 days. The workflow resolves which trackers are due, then uses Claude Code with web search to update each one.
| Workflow | Trigger | Purpose |
|---|---|---|
| Nightly Data Update | Daily 6 AM UTC + manual | Updates eligible trackers (interval-gated) via Claude Code web search |
| Initialize New Tracker | Manual dispatch | Generates tracker.json + empty data files from a topic description |
| Seed Tracker Data | Manual (or chained from init) | Deep historical backfill — populates all sections with research data |
| Deploy | Push to main |
Builds Astro site and deploys to GitHub Pages |
All data workflows use claude-code-action with a Claude Max subscription OAuth token (CLAUDE_CODE_OAUTH_TOKEN) — no per-token API costs.
- Fork this repo
- Go to Settings > Pages — set source to GitHub Actions
- Go to Settings > Secrets > Actions — add
CLAUDE_CODE_OAUTH_TOKEN- Generate via
claude setup-tokenwith a Claude Max subscription
- Generate via
- Push to
main— the site deploys automatically; nightly updates start the next day
# Update all trackers
ANTHROPIC_API_KEY=sk-ant-... npm run update-data
# Update a specific tracker
TRACKER_SLUG=iran-conflict ANTHROPIC_API_KEY=sk-ant-... npm run update-datawatchboard/
├── trackers/ # One directory per tracker
│ ├── iran-conflict/
│ │ ├── tracker.json # Config: sections, map, AI prompts
│ │ └── data/ # JSON data + events/ partitions
│ └── ... # 47 more trackers
├── src/
│ ├── pages/
│ │ ├── index.astro # Home: tracker card index
│ │ ├── search.astro # Pagefind full-text search
│ │ ├── rss.xml.ts # Global RSS feed
│ │ ├── embed/[tracker].astro # Embeddable widget pages
│ │ └── [tracker]/ # Dynamic routes per tracker
│ │ ├── index.astro # Dashboard
│ │ ├── globe.astro # 3D globe (if enabled)
│ │ ├── about.astro # About page
│ │ └── rss.xml.ts # Per-tracker RSS feed
│ ├── layouts/BaseLayout.astro # HTML shell, SEO, fonts
│ ├── components/
│ │ ├── static/ # Server-rendered (zero client JS)
│ │ │ ├── Header.astro
│ │ │ ├── Hero.astro
│ │ │ ├── KpiStrip.astro
│ │ │ ├── CasualtyTable.astro
│ │ │ ├── PoliticalGrid.astro
│ │ │ └── ...
│ │ └── islands/ # Client-hydrated React components
│ │ ├── IntelMap.tsx # Leaflet 2D map
│ │ ├── TimelineSection.tsx # Click-to-expand timeline
│ │ ├── MilitaryTabs.tsx # Tabbed military view
│ │ └── CesiumGlobe/ # 3D globe + hooks
│ ├── lib/
│ │ ├── tracker-config.ts # TrackerConfigSchema (Zod) + types
│ │ ├── tracker-registry.ts # Auto-discovers all trackers
│ │ ├── data.ts # loadTrackerData(slug)
│ │ ├── schemas.ts # All data Zod schemas (16 schemas)
│ │ └── ... # Utilities (map, tier, timeline)
│ └── styles/global.css # Dark theme, CSS custom properties
├── scripts/
│ └── update-data.ts # AI nightly updater (multi-tracker)
├── .github/workflows/
│ ├── deploy.yml # Build + deploy to GitHub Pages
│ ├── update-data.yml # Nightly AI data refresh
│ ├── init-tracker.yml # One-command tracker creation
│ └── seed-tracker.yml # Historical data backfill
└── package.json
Contributions are welcome. The most impactful ways to contribute:
- Request a new tracker topic — open an issue with the topic, region, and start date
- Report a data error — incorrect facts, wrong source tier, missing events
- Suggest a feature — new section types, map layers, visualization ideas
- Submit a PR — fix a bug, improve documentation, or add a missing data point
For code contributions, run npm run build to verify the TypeScript compiles and all tracker schemas validate before opening a PR.
This platform aggregates publicly available information from multiple sources and perspectives. It does not endorse any particular political position or narrative. All contested claims are explicitly marked. Source tier classifications reflect general reliability categories, not endorsements of specific reporting or outlets.
MIT — use freely, attribute if you'd like.