Global Intelligence Dashboard
Heimdall is a real-time, browser-based geopolitical intelligence dashboard. It aggregates global news, live market indices, and recent seismic activity, visualizing strategic intelligence on an interactive, high-performance world map.
- Strategic Threat Mapping: Parses live global news and precisely plots incidents on an interactive map. Features granular strategic location geocoding, prioritizing critical infrastructure (airports, military bases) and capitals over generic country matches.
- Real-Time Signal Clusters: Visualizes aggregated intelligence signals as pulsating nodes. Clicking a cluster opens detailed, highly-stylized Leaflet popups containing threat assessments and source mentions.
- Live News Ticker: A continuously scrolling, customizable feed of breaking alerts and headlines at the bottom of your screen.
- Seismic Activity: Overlays live global earthquake data (M4.5+), providing magnitude, depth, and location markers.
- Financial Markets Pulse: Tracks major global indices (S&P 500, Dow Jones, FTSE, Nikkei, VIX) in real-time.
Heimdall is built for pure performance and low overhead, avoiding virtual DOM abstractions in favor of direct DOM manipulation.
- Core: Vanilla TypeScript / DOM API
- Map Engine: Leaflet with CARTO Dark Matter vector tiles.
- Build Tool: Vite
- Data Parsing:
fast-xml-parserfor real-time RSS ingestion. - Compute: Custom geographic clustering, signal classification, and coordinate extraction logic entirely on the client-side.
- Backend / Proxy: Vercel Serverless Functions (
api/rss-proxy.js) to handle CORS for heterogeneous global feeds.
- Node.js (v18 or higher)
- npm or pnpm
-
Clone the repository:
git clone git@github.com:arzkar/heimdall.git cd heimdall -
Install dependencies:
npm install
-
Set up Environment Variables: Copy
.env.exampleto.envif required (mostly for development if you are running your own RSS proxy). -
Run the Development Server:
npm run dev
The application will be available at
http://localhost:5173.
To build the project for production:
npm run buildThis will run TypeScript verification and generate a highly optimized bundle in the dist directory. You can preview it with:
npm run previewContributions are welcome! If you're looking to add new data source integrations or improve the clustering algorithms, please open an issue first to discuss the proposed changes.
News feeds are configured in src/config/feeds.ts. To add a new source:
- Ensure the feed is valid RSS/Atom.
- Add the URL and internal name to the configuration lists.
- The built-in Vercel proxy (
api/rss-proxy.js) will seamlessly handle CORS routing in production.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.