Not a guide
A while back I installed Foundry VTT, the web-based tabletop system developed by Atropos (It’s great, check it out). I ended up writing a small module for it, for converting walls to drawings (ie lines) so that a GM doesn’t have to duplicate effort if he’s making up a quick map on-the-fly.
Creating that module was a good experience. I looked over another module as an adjunct to the official API documentation, picked a couple of brains on the Foundry Discord, picked apart some thing sin the browser’s developer console; and was able to come up with a decent quality-of-life addition that made a big impact to our impromptu one-off mash-up game sessions. I also was able to explore interfacing with other software and packaging (pretty simple) releases. Relatively low effort, relatively high win. Excellent!
Six months later on, my friend Chris has been working on creating an interesting RPG called Asphodel as one of his many creative projects (check him out too!). One area of innovation is his dice system, which provisionally uses a re-roll mechanic similar to exploding dice. Despite being similar, the system is different enough that neither the default roller in Foundry (which with macros and modifiers is pretty flexible) nor the dice roller simulator AnyDice handle it fully.
It remains to be seen how quickly I can become ‘passably fluent’ in TypeScript; the functional equivalent of being able to go to a country where they speak a different language and be able to navigate some basic day-to-day tasks like going to the shops or ordering a basic meal at a restaurant.