There's also Astro: https://astro.build/ - which admittedly I haven't tried yet but am planning on checking out for my personal site.
You could also write native astro components which are very close to vanilla html css with added benifit of making reusable components and scoped css. And you can also use svelte or vue components.
Honestly, you can use Astro and then still use React if you want. Doing so would be similar to next.js in some ways, though you need to hook up an adapter if you want server-side rendering