I have been addicted to geography for as long as I can remember — the maps-on-the-wall kind, the knows-every-capital kind. It has outlasted almost every other interest I have had, and knowing where things are is how I keep the wider world in focus. One of the oldest ideas still in my project folder is a geography one: a scraper and a site. It has been on my mind for ten years.
Around 2015 I needed something to submit for a class, so I built two small projects that only made sense together: a scraper in C# that pulled country facts off Wikipedia into a file, and a frontend that read the file and drew them on a map with amCharts. Both were rough. But they worked, they got a grade, and unlike most things I built for a grade, the idea stuck with me.
The projects themselves mostly sat in a folder after that. The idea of them did not. For years I kept turning it over — a whole world you could open up and move around in, every fact a door to somewhere else. In early 2025 I started building that version for real. The current code shares almost nothing with the 2015 one — the idea is a decade old, the build is recent. What carried across was the picture of what it could be.
The old version barely had a pipeline. The C# scraper ran by hand, once, and spat out a JSON file — nothing re-ran it, nothing checked it — and then I carried that file into GeoGeek and committed it. I was the integration layer. So one of the first decisions of the rebuild was that the data had to be a real project: something that runs itself, checks its own output, and publishes, so the site just depends on it and I am not the courier anymore.
That is what WikiGeo and GeoGeek are now — a data engine and an app that installs it like any other library and never touches Wikipedia itself. WikiGeo reads nine language editions of Wikipedia and turns the mess into consistent records.
The way I met geography in school was memorization and static maps — a list of capitals to learn, a printout to label. I never thought the subject was boring; I thought the tools were. The bet behind GeoGeek is that you can make geography interactive enough to enjoy and still come away knowing more of it — the exploring is also the studying. Every choice in the rebuild came back to one question: does this make the world feel more alive to poke at, or less? Most of what ended up in it started as a small annoyance with something I had used.
I hated that map apps stopped at the country. You could look at France; you could not go inside it. So GeoGeek's map never stops — world, continent, country, state, district, every level a real address, nothing a dead end — and where GeoGeek doesn't have a region's data, the drill-down simply isn't there: no broken sub-map, no empty page. The quizzes are just that same map with the labels hidden and a clock running — where the exploring turns into remembering.
I wanted a place's facts right next to it, and I wanted them to lead somewhere. Click a country and an infobox opens beside the map — flag, capital, population, currency, neighbors, subdivisions — and every neighbor and subdivision in it is a way further in. Capitals appear on the map itself as you move. It is the same kind of infobox Wikipedia keeps in an article's corner, which is fitting: WikiGeo pulls the facts out of those, and GeoGeek puts them back into one you click through instead of just read.
The globe and the flat map are the clearest case. I could never find one tool that did both — scan and click precisely on a flat map, spin a globe for the true size of things and what really sits next to what — so I stopped looking and built both, with a fade between them so you keep your place. Language is the same: the app runs in the same nine languages WikiGeo reads, down to the answers you type, because being marked wrong in my own app for naming a country the "wrong" way felt like being shown the door. The experience is the point; the data underneath is there to serve it.
The part that used to be me — run the scraper, eyeball the JSON, commit it — is handled now: WikiGeo re-crawls itself, keeps every dated snapshot, and trips an alarm when a Wikipedia page changes shape enough to break the parser. That is not the same as done. I am in both codebases most weeks, wiring up another country's subdivisions or filing down another edge of the map, and I want to be. A demo runs at geogeek.vercel.app, redeployed on every push — always whatever I committed last, rough edges and all. Both codebases are public and the data is free to take. I built them for myself first and for everyone at the same time, because I believe a project like this gets better with more people in it. If you want geography to feel like a place you can wander rather than a list to drill, come make it with me.
The foundation is laid; now it's time to build.