My go-to tool for projects like this has become
TiddlyWiki, which, on its surface, is a quirky little wiki with a fun party trick where the code and data of the wiki can be entirely self-contained in a single HTML file. Browser extensions can allow the page to write changes back to the file locally, or you can make edits in-browser and save a new file, or, easiest of all if you know what all the words mean, you can run a very lightweight Node server that saves changes server-side and requires no extensions at all. (It's the only Node package I've ever seen with
zero dependencies.) If you bundle it up into a single file, that's the entire, fully-functional wiki, so even if you're editing with the server, you can send the HTML file to someone else and all the same viewing and editing tools are there, even offline. Images can even be included (they get base64 encoded and put in the file). Neat.
But! This is just the surface level. The thing is, TiddlyWiki is almost entirely written in TiddlyWiki. There's a very small core of JavaScript to bootstrap the thing, but after that, basically everything is implemented in wiki objects called "tiddlers" (they apparently didn't feel that any other word fully conveyed what these things are, haha. But they're basically objects of key-value pairs). There's a whole little universe of tools built with them in there: widgets are custom HTML-like tags that take input and produce output, there's a query language called "filters" that's simple on the surface but has SQL-like abilities if you get fancy, and "transclusion" where a tiddler is piped through another tiddler which allows templating. Everything on the page of a TiddlyWiki is a tiddler if you go digging. The "articles" themselves, buttons, checkboxes, radio buttons, drop-down menus, the search box, the wiki editing tools, all of it. And any tiddler can be edited or replaced.
Are you getting it? They haven't built a quirky little wiki. They've built a lightweight and user-friendly web development framework with front end tools, an object database, and a query language for interacting with it, and they
used it to make a quirky little wiki.
Everything is available for customization. You can tear out the wiki editing interface and write your own. You can restructure how everything behaves. You can burn the whole thing to the ground and write your own, or augment what's there with your own stuff. There's basically nothing that "the system" can do that you can't. I've written a todo app in it, I've made databases like the one described in the article to track a game they play on a podcast I like, and I've written a Super Bowl prop bet game for friends to play, complete with a question form and dashboard for tracking the results, with live updates during the game thanks to the server version's ability to seamlessly sync in the background.
I used to reach for spreadsheets for things like this, but now I reach for TiddlyWikis. It's weird, it has its own little universe of terminology and takes some time to wrap one's head around, but for little projects like this, it's in an incredibly satisfying sweet spot for me. Quick to bang something together but powerful enough for anything I've wanted to do with it, and it's all HTML in the end so with a bit of spit and CSS you can make it look nice as well. It's well worth your time if you regularly find yourself wanting the simplicity of a spreadsheet but the customizability of a web app.