Wikipedia's structure + Bloomberg's subject matter, navigated like a map.
A zoomable atlas of the world's companies. The whole site is one recursive tree: the root is "The World" — the aggregate of every listed company on Earth — and every click drills one level deeper through the GICS classification (World → Sector → Industry Group → Industry → Sub-Industry → Company). Every page is the same template rendered at a different node: a zoomable treemap for navigation, a metric switcher (market cap / revenue / net income / margins), a geography filter, twenty years of baked yearly history, and company Compare.
Everything runs client-side from pre-baked data files — no backend, no build step.
Mac — double-click Start Industree.command.
Windows — double-click Start Industree (Windows).bat.
Any computer — from the prototype/ folder run:
python3 -m http.server 8742
then open http://localhost:8742. The only requirement is Python 3 (for the tiny local server — browsers block network requests from pages opened as file://, so the server exists purely to lift that restriction). See HOW TO OPEN.txt for details.
The site is fully usable offline from the baked snapshot data. Live prices, news and data refreshes need free API keys:
- Copy
prototype/keys.example.jstoprototype/keys.jsand fill in your keys (used by the site for live quotes/news). - Copy
prototype/scripts/.env.exampletoprototype/scripts/.env(used byrefresh.py).
Both real-key files are gitignored and never leave your machine.
python3 prototype/scripts/refresh.py # exact live market caps
python3 prototype/scripts/refresh.py --universe # every listed company > $500M
python3 prototype/scripts/refresh.py --history # yearly history for non-US companies
| Path | What it is |
|---|---|
prototype/index.html |
The single page — everything renders here |
prototype/app.js |
All application logic (treemap, routing, metric switcher, Compare) |
prototype/data.js, world.js, europe.js, universe.js |
Baked universe & aggregates |
prototype/companies.js, profiles.js |
Company constituents and written profiles |
prototype/history_us.js, history_world.js |
Yearly fundamentals history (back to 2006) |
prototype/bake_us.js, enrich.js |
Data-baking helpers |
prototype/scripts/refresh.py |
Data refresh pipeline (needs .env) |
NOTES.md |
Development log / changelog |
PROMPT.md |
The original project brief |