Real-Time World Intelligence Dashboard
A production-ready, single-file web dashboard that aggregates live data from five free public APIs and presents it in a clean, Bloomberg-terminal-inspired interface.
| Section | Data Source | What You See |
|---|---|---|
| Crypto Markets | CoinGecko (free) | Top 12 assets — price, 24h % change, market cap, volume, 7-day Chart.js sparklines |
| Live Ticker | CoinGecko (free) | Scrolling real-time price strip across the top |
| FX Rates | Frankfurter (free) | 12 currency pairs vs USD — EUR, GBP, JPY, CHF, CAD, AUD, CNY, INR, KRW, BRL, MXN, SGD |
| World Weather | Open-Meteo (free) | Current conditions for 8 world cities — temp, wind, day/night |
| Tech Pulse | Hacker News API (free) | Top 12 HN stories — score, comments, time, domain |
| Space Today | NASA APOD (DEMO_KEY) | Astronomy Picture of the Day with full explanation |
Dashboard extras: header global-market stats bar · skeleton loaders · per-section error states with retry · auto-refresh every 5 min · manual refresh button · last-updated timestamp · fully responsive.
open global-pulse.html # macOS
xdg-open global-pulse.html # Linux
start global-pulse.html # WindowsOr just double-click global-pulse.html in Finder / Explorer.
Note: A few browsers block cross-origin fetch requests from
file://URLs.
If you see API errors, use Option 2 below.
# Python 3
python3 -m http.server 8080
# Then open:
# http://localhost:8080/global-pulse.html# Python 2 (legacy)
python -m SimpleHTTPServer 8080# Using npx (no install required)
npx serve .
# Then open the URL printed in the terminal- Open the folder in VS Code
- Right-click
global-pulse.html→ Open with Live Server
Everything is loaded from CDN — no npm install, no build step required.
| Library | Version | CDN |
|---|---|---|
| Chart.js | 4.4.1 | cdnjs.cloudflare.com |
| Inter font | latest | fonts.googleapis.com |
| JetBrains Mono | latest | fonts.googleapis.com |
All APIs are free, require no API key (except NASA which works with DEMO_KEY), and support browser CORS:
| API | Endpoint | Rate Limit |
|---|---|---|
| CoinGecko Public | api.coingecko.com/api/v3 |
~30 req/min |
| Frankfurter | api.frankfurter.app/latest |
Unlimited |
| Open-Meteo | api.open-meteo.com/v1/forecast |
10,000 req/day |
| Hacker News | hacker-news.firebaseio.com/v0 |
Unlimited |
| NASA APOD | api.nasa.gov/planetary/apod |
30 req/hour (DEMO_KEY) |
To remove NASA APOD rate limits, get a free API key and replace
DEMO_KEYinglobal-pulse.html.
global-pulse/
└── global-pulse.html # Entire app — HTML + CSS + JS in one file
└── README.md # This file
All config lives at the top of the <script> block in global-pulse.html:
const REFRESH_MS = 5 * 60 * 1000; // auto-refresh interval (ms)
const HN_STORIES = 12; // number of HN stories to show
const CITIES = [ ... ]; // add/remove world cities
const CURRENCIES = [ ... ]; // add/remove currency pairsMIT — free to use, modify, and distribute.