Real-time global conflict intelligence dashboard. Open source. No login required.
- π‘ Signal Feed β Live news from Reuters, BBC, Al Jazeera, Guardian, France24, DW News, Defense One, Breaking Defense
- π― Threat Classification β Auto-classifies news as CRITICAL, HIGH, MEDIUM, LOW using keyword analysis
β οΈ Breaking Alerts β Flashing banner for critical events with optional sound alerts- π§ AI Situation Briefs β Algorithm-generated intelligence summaries with threat assessments (v2.0)
- πΊοΈ World Map β Dark-themed MapLibre GL with multiple layers
- π 3D Globe β Three.js rotating earth with live conflict pins (War Room mode)
- βοΈ Conflict Zones β 10 active conflict markers (Ukraine, Gaza, Sudan, etc.)
- ποΈ Military Bases β 15 US/NATO bases worldwide
- β Strategic Chokepoints β Strait of Hormuz, Suez, Malacca, etc.
- π Earthquakes β Live USGS data (M4.5+ past 24h)
- βοΈ Theater Selector β Focus on Global, Ukraine, Middle East, Sahel/Sudan, Asia-Pacific
- π Live 3D Globe β Interactive Three.js globe with auto-rotation
- π Conflict Stats β Active wars, insurgencies, high intensity zones
- π΄ ACLED-style Events β Real conflict event feed by theater
- π Live Markets β S&P 500, Oil, Gold, EUR/USD, BTC, ETH
- π Trading Charts β TradingView widget with Gold, Silver, Bitcoin, Oil, S&P 500
- π― Prediction Markets β Polymarket geopolitical contracts with probability bars
βοΈ Flight Tracking β ADS-B Exchange embed (military + civilian)- π’ Ship Tracking β MarineTraffic embed (Strait of Hormuz focus)
- π Earthquake Monitor β USGS live feed with magnitude badges
- π± 4-tab mobile layout β Feed / Map / Markets / Track
- π Push-style badges β Critical count on mobile nav
- π Touch-optimized β Larger tap targets, swipeable panels
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Styling | Tailwind CSS |
| Map | MapLibre GL JS + Carto dark tiles |
| Charts | TradingView Widget |
| State | React Hooks + SWR |
| Hosting | Any Node.js server + nginx |
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/your-username/xdc-world-feed.git
cd xdc-world-feed
# Install dependencies
npm install
# Run development server
npm run dev
# Open http://localhost:3400# Build for production
npm run build
# Start production server
npm start# Build the app
npm run build
# Start with PM2
pm2 start npm --name "xdc-world-feed" -- start
# Save PM2 config
pm2 save
pm2 startupFROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
RUN npm run build
EXPOSE 3400
CMD ["npm", "start"]server {
server_name feed.xdc.network;
location /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
proxy_pass http://127.0.0.1:3400;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400s;
}
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/feed.xdc.network/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/feed.xdc.network/privkey.pem;
}
server {
listen 80;
server_name feed.xdc.network;
return 301 https://$host$request_uri;
}certbot certonly --webroot -w /var/www/html -d feed.xdc.networkAll endpoints are free, no API key required.
# Get live signals
curl https://feed.xdc.network/api/signals
# Get AI situation brief
curl https://feed.xdc.network/api/brief
# Get market data
curl https://feed.xdc.network/api/markets
# Get conflict events
curl https://feed.xdc.network/api/conflicts
# Get earthquake data
curl https://feed.xdc.network/api/earthquakes
# Get full API documentation
curl https://feed.xdc.network/api/docsGET /api/brief
{
"brief": {
"threatLevel": "SEVERE",
"headline": "Major escalation in Middle East...",
"summary": "Current tracking: 3 military, 8 geopolitical signals...",
"keyDevelopments": [
{ "region": "MIDDLE EAST", "headline": "...", "severity": "CRITICAL" }
],
"watchList": ["Elevated military activity..."],
"marketImplications": "Risk-off sentiment likely...",
"nextHours": "Recommend elevated alert status..."
}
}| Source | Data | Refresh |
|---|---|---|
| Reuters RSS | World news | 60s |
| BBC World RSS | World news | 60s |
| Al Jazeera RSS | World news | 60s |
| Guardian RSS | World news | 60s |
| France24 RSS | World news | 60s |
| DW News RSS | World news | 60s |
| Defense One RSS | Defense news | 60s |
| Breaking Defense RSS | Defense news | 60s |
| BleepingComputer RSS | Cyber news | 60s |
| CoinGecko API | Crypto prices | 30s |
| Polymarket API | Prediction markets | 60s |
| USGS API | Earthquakes | 120s |
Total API cost: $0/month β All sources are free.
Edit src/app/api/signals/route.ts:
const FEEDS = [
{ name: 'Your Source', url: 'https://example.com/rss', tier: 2 },
// ...
];Edit src/lib/feeds.ts to add:
- Military bases
- Conflict zones
- Strategic chokepoints
Edit src/lib/classify.ts:
const THREAT_KEYWORDS = {
CRITICAL: ['nuclear', 'invasion', ...],
HIGH: ['airstrike', 'missile', ...],
// ...
};xdc-world-feed/
βββ src/
β βββ app/
β β βββ page.tsx # Main dashboard
β β βββ layout.tsx # Root layout
β β βββ globals.css # Global styles
β β βββ api/
β β βββ signals/ # RSS aggregation
β β βββ markets/ # Market data
β β βββ predictions/ # Polymarket
β β βββ earthquakes/ # USGS data
β βββ components/
β β βββ Header.tsx # Top bar with threat level
β β βββ SignalFeed.tsx # News feed
β β βββ WorldMap.tsx # MapLibre map
β β βββ MarketTicker.tsx # Market prices
β β βββ PredictionPanel.tsx # Prediction markets
β β βββ TrackingPanel.tsx # Flights/Ships/Quakes
β β βββ TradingChart.tsx # TradingView widget
β β βββ MobileNav.tsx # Mobile navigation
β β βββ StatsBar.tsx # Footer stats
β βββ lib/
β β βββ classify.ts # Threat classification
β β βββ feeds.ts # Static data
β βββ types/
β βββ index.ts # TypeScript types
βββ public/ # Static assets
βββ package.json
βββ tailwind.config.ts
βββ next.config.mjs
βββ README.md
No environment variables required for basic operation.
Optional:
# For enhanced features (not required)
GROQ_API_KEY=xxx # AI classification (optional)
NASA_FIRMS_KEY=xxx # Fire data (optional)- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing) - Open a Pull Request
MIT License β see LICENSE file.
- News Sources: Reuters, BBC, Al Jazeera, Guardian, France24, DW, Defense One, Breaking Defense
- Map: MapLibre GL + Carto dark tiles
- Charts: TradingView
- Markets: CoinGecko, Polymarket
- Earthquakes: USGS
- Flight Tracking: ADS-B Exchange
- Ship Tracking: MarineTraffic
- Live Demo: https://feed.xdc.network
- Repository: https://github.com/your-username/xdc-world-feed
Built with β€οΈ for the OSINT community. Monitor the world. Stay informed.
