I'm definitely a fan of avoiding huge frameworks.
One complaint I have about plain old JS and HTML, though, is that you end up writing a lot of HTML components as just strings. Plain strings of text that is supposed to be valid HTML, but you're not going to get any help with formatting, linting, or even just syntax highlighting when a lot of your code is literally just a big string. The example of Web Components in this post even shows that.
It mentions developer experience vs. user experience as a nod to this, and the "every HTML components is just a big old javascript string" problem is one I always run into early on with my hobby projects, which makes me decide to use a small UI framework pretty quickly. My favorite is Mithril. It's tiny and does basically what you want React to do, without being React. You write these nested Javascript functions that get turned into HTML. So there's no extra loader step, and it plays nicely with Typescript.