Real-time 3D globe visualization of global service outages and infrastructure health.
- Interactive 3D Globe — color-coded columns show service status at a glance
- 🔴 Down — red columns, high altitude
- 🟠 Degraded — orange columns, medium altitude
- 🟢 Operational — green columns, low altitude
- System Monitor Dashboard — radar pulse status indicator, 24-hour uptime timeline grid, latency metrics, and live incident log feed
- Outage Disaster Simulator — trigger simulated global catastrophe scenarios:
- ☀️ Solar Flare (global collapse)
- 🌐 DNS Backbone Collapsed
- ☁️ AWS Cloud Core Outage
- Focus Mode - full-screen system monitor dashboard for distraction-free monitoring
- API Integration — supports Pingdom and StatusGator APIs, with a built-in simulation engine as fallback
| Layer | Technology |
|---|---|
| Frontend | Angular 19, TypeScript |
| 3D Visualization | globe.gl + Three.js |
| Backend / Edge | Cloudflare Workers |
| Styling | Vanilla CSS with glassmorphism & micro-animations |
| Fonts | JetBrains Mono, Outfit (Google Fonts) |
- Node.js 18+
- npm
npm installThe Angular dev server proxies /api to Wrangler on port 8787, so both processes must be running:
# Terminal 1 — Angular dev server
npm start
# Terminal 2 — Cloudflare Worker (serves /api/outages)
npx wrangler devAlternatively, build and run everything through Wrangler on a single port:
npm run previewnpm run deployThis runs ng build --configuration production followed by wrangler deploy.
The app works out of the box with its built-in simulation engine. To connect real monitoring APIs, add your tokens as Wrangler secrets (either name works for each provider):
npx wrangler secret put PINGDOM_API_KEY
# or: npx wrangler secret put PINGDOM_API_TOKEN
npx wrangler secret put STATUSGATOR_API_KEY
# or: npx wrangler secret put STATUSGATOR_API_TOKENFor local development, create a .dev.vars file in the project root:
PINGDOM_API_KEY=your_pingdom_bearer_token
# STATUSGATOR_API_KEY=your_statusgator_bearer_tokenWhen configured, the worker fetches live outage data from the provider. Without tokens, all outage data is generated from the simulation engine.
src/
├── workers.ts # Cloudflare Worker — /api/outages endpoint
├── app/
│ ├── app.component.* # Root component — focus mode, sidebar wiring
│ ├── outage.models.ts # GlobeOutagePoint interface
│ ├── globe-map.models.ts # Globe data types
│ ├── globe-view/ # 3D globe (globe.gl + Three.js)
│ ├── outage-sidebar/ # Sidebar — monitor widget, outage list, simulator
├── environments/
│ ├── environment.ts # Dev config
│ └── environment.production.ts # Prod config
proxy.conf.json # Dev proxy → Wrangler
wrangler.jsonc # Cloudflare Workers config
Based on the original real-time globe visualization concept by cppshane.
See repository for license details.
