While it’s true you can’t do it in WASM directly, there are frameworks that interoperate between WASM and JS, such as Yew
One only needs to create an interface between them, since WASM is capable of calling JS functions. DOM manipulation then becomes as simple as calling a function in your language of choice, such as with web-sys
I use Arch for personal and gaming, Debian for self hosting and hacking, Alpine for containerized cloud deployments.