The Catalogue

Over the years I have collected a problem: with dozens of games I had five dozens links, sometimes more. Classic Solitaire is on the iStore, on Google Play, in the Microsoft Store and on the web. Some also have a free and paid version, Steam build, etc. When somebody asks me for a link I have to ask back which platform they are on, and then go and look it up myself.

I had to use a homebrew app links page and it was a disaster. So now there is now a catalogue: runserver.net/apps. One page per game, with every edition. And it can have both hand-written and store-scraped content (for the stores that allow it).

Write everything vs automate everything

The constraint I set at the start was that I would not prepare page content manually. With dozens of titles, if every page needed an icon crop, a rewritten description and a hand-picked set of screenshots, the catalogue would have been finished somewhere around the heat death of the universe.

So everything comes from listings that already exist. Icons, screenshots, videos, descriptions and prices are pulled from the store pages, mirrored locally, and merged into one normalized record per game. Mirroring matters more than it sounds: store CDNs reorganize, listings get edited, and an image URL that worked last year is a 404 today. I have a folder of dead links from an old blog to prove it.

Then I came to the problem that store-provided content is sometimes shit. App Store screenshots could be rotated, descriptions are localized in default language (and it’s not always English) and scraping tend to fail. So there came the override function, to add custom descriptions, categories, etc. from the admin panel.

The parts that were less fun

Stores do not agree about anything. The same game has a different title in three places, because one store counts “HD” as part of the name and another puts the edition in a subtitle field. Prices arrive in whatever currency the listing was scraped from. Screenshot dimensions vary by an order of magnitude. A description that reads perfectly well on one store is truncated mid-sentence on another, because that store’s field limit is shorter and nobody told the copy.

None of that is interesting work, which is exactly why it had to be automated rather than done by a person with a spreadsheet and a diminishing will to live.

The accent colour of each page is guessed from the game’s icon, so a page looks like the thing it is describing without anyone choosing a palette. Where something is missing there is a fallback ladder rather than an empty box.

It is open to other developers

The catalogue is not only for my own apps. Anyone can register, submit a game, and have it listed. Submissions are approved manually, by me.

Manual approval is deliberate and I have no plans to remove it. An open submission form with no human in the loop fills up with garbage inside a week — this is not a prediction, it is what happens every time. Approving by hand is a few minutes of work per app and it keeps the catalogue worth reading. If your app is real and your listing is real, it goes in.

There is no charge for being listed, and there is nothing to install. Just drop me a word if you want in.

Links

Catalogue is on the menu and there: runserver.net/apps
Register there: runserver.net/apps/signup