A Number You Can't Trace Is an Opinion
Two experiments with cloud browsers: a travel guide that asks the web as a local, and a research document where every figure keeps its receipt.
The expensive ingredient was the wrong one.
In September and October I built two things on top of cloud browsers: real browsers running somewhere else, which you can point at a page and keep what they saw. One was a travel guide. The other was a research tool for indie game developers. Both taught me the same lesson from opposite ends.
Asking as a local
Ask Google for things to do in Bangkok and you get the same nine temples as everyone else, because you’re asking as a tourist. I wanted to know what a local sees.
So I built personas: a browsing viewpoint made of a language, a clock, stored preferences, a warmed-up profile and an exit country. Point two personas at the same public page, and the difference between what they see is the product. I called it Doen Thang, and built the layer underneath it to know nothing about travel at all.
The whole architecture assumed the exit country was the expensive, important ingredient: residential IPs in the right country. That was the bet.
The first real experiment ran 18 sessions in under five browser-minutes. Asking in Thai and asking in English, from the same IP, the same browser and the same second, returned 0% overlap. Changing the exit country moved the results about as much as waiting five minutes.
The expensive ingredient was the wrong one. You get local results by asking in the local language, not by renting a local IP. That finding rewrote a decision record.
Every number keeps its receipt
The second build pointed the same browsers at Steam. An indie developer picks two or three tags, and the tool goes and reads Steam: some through its public API, the rest by opening store pages in a cloud browser and keeping the HTML plus a screenshot with the cited part marked.
Every number in the document is clickable. Click it and the receipt opens: the archived page, re-hashed in your own browser, so “this is what the run saw” is checked rather than trusted.
One run, on Indie + Roguelike Deckbuilder + Pixel Graphics, on 1 October: 298 games carry all three tags. The median price is $9.99. A quarter of the negative reviews, 169 of 665, were written inside Steam’s two-hour refund window.
It also says plainly what it can’t tell you: sales, revenue, wishlists, or why players liked a game. That section matters as much as the numbers. A research document that doesn’t list its blind spots is quietly claiming it has none.
The same lesson twice
Both projects were about provenance. Doen Thang taught me that the thing you assume matters is worth measuring before you build around it. The Steam tool is that idea turned into a feature: don’t ask anyone to trust a number, hand them the page it came from.
A number you can’t trace is an opinion. I’d rather ship fewer numbers that survive a click. This site is starting to hold itself to that: the headline numbers on the SaveSync case study now open the pull requests they shipped in. The repo is private, so those are retold in plain words, but the numbers, dates and diff sizes are real.
Seedling. Both live in rabbit holes, with recordings.