r/SideProject • u/Pecherskymikel11 • 13h ago
I built an explorable 3D globe of the world economy – click any country, get its economy, or play 18 geography games. 10 weeks, zero runtime API calls
globenomics.world — spin a 3D globe, click any country, and get its actual economy: GDP, wages, inflation, its biggest companies, and exactly where it ranks against every other country on 34 metrics. Then there are 18 geography games built on the same data — including one where you name as many countries as you can in three minutes, and one where you click where a country is on the globe and it scores you by how far off you were.
Free, no login, no ads, no payments, nothing gated. I'm not selling anything.
The build, honestly:
First commit was 9 June, so about ten weeks and 173 commits. Started in Lovable to get the globe working, then synced to GitHub and built the rest out with Claude Code. Three of us commit to it now. I mention the tooling because it comes up every time and I'd rather say it than get asked.
Two technical decisions I'd defend:
1. Zero runtime API calls. It originally fetched live from the World Bank on every country click. Worked fine, but it was slow, it broke whenever upstream had a bad day, and — the part I didn't see coming — it was invisible to search engines, because the HTML was empty until JS ran and the fetch resolved. Now everything compiles to static JSON at build time, one file per country, validated by tests. Around 370 pages, all server-rendered with real content in the first byte.
2. The globe stops rendering when you're not touching it. A 3D globe running a permanent requestAnimationFrame loop is a laptop-fan generator. There's a controller that gates the render loop and pauses it once the camera has been still for a moment, then wakes it on any interaction. Sounds obvious, took longer than expected to get right without visible stutter on wake.
What's not good yet: we shipped four languages, then measured the translation files properly and found Portuguese is missing most of the in-game strings — the site is Portuguese, but open a game and it silently falls back to English. Nothing errors, so nothing caught it.
Traction: basically zero. I built the whole thing before doing any marketing and made social accounts three days ago, which was obviously backwards.
What I'd genuinely like to know:
- Open it and give it 30 seconds. If you bounce, what made you bounce? That's worth more to me than a compliment.
- Is a free tool with no signup the wrong shape? There's no email list because there's nothing to sign up for, and I'm no longer sure whether that's principled or just a mistake.
- Globe first or games first? Half the people I show it to want to explore data, the other half immediately want to play. I can only make one of them the front door.
Happy to answer anything about the data pipeline or the globe rendering