Porting Hobby Hero

seedlingplanted tended hockeyprogrammingPart of Hobby Hero

An ice hockey face-off in a packed indoor arena in Buenos Aires, with players from both teams in action.
Photo by Gera Cejas on Pexels

The NHL season started on September 29. Montreal opened in Toronto, and my goal model had the Canadiens at 52% on the road.

The end result matched a pre-game Mastodon poll, with Montreal winning in regular time. The model’s favourite won too.

I wanted Hobby Hero on my phone for nights like that, so this week I ported it. It started as a Claude artifact, and it still is one. But the same page now also lives at play.latentmirror.com/hobby-hero, as an app you can install (phone or desktop). All of its data ships with it, so after the first visit it opens with no connection at all.

The port was fiddly. An artifact is one big file: the styles, the script and five seasons of data all sit inside the page. A site with a strict security policy allows none of that, so everything had to come apart. The data alone became six files (one per season, plus a core). The fonts I used to borrow from Google are served from my own site now. Both editions are built from the same source, and a test checks that they show the same numbers for the same game. The code is public too, which is new.

It is not finished. The data stops on June 14, with the last game of the Final. Every game of the new season shows a pre-season estimate: last year’s form and last year’s main starters, with no trades, signings or injuries. Those numbers stay frozen until I rebuild the page with played games. The next feature is to auto re-index as the season progresses.

Also, it still has not beaten the closing market, and the page says so.

Still, the whole schedule is in there. Montreal’s home opener is October 6 against Carolina, and the model has Carolina at 64%.

It will be interesting to see where this goes. So glad hockey is back!