@munificentbob's very good books: Crafting Interpreters (https://craftinginterpreters.com) and Game Programming Patterns (https://gameprogrammingpatterns.com)
This is the true winning answer. This book was *so important* to me growing up. Reading it was the first time I realized that programming didn’t have to be utilitarian; it could be expressive. It’s dead but archived here: https://poignant.guide
we follow a strict definition of book for publishing on the web—a stack of well formatted pages.
https://bubblin.io/docs/concept
And ‘offline first’, with a service worker.