Wow, finally an alternative to xterm.js?

Ghostty-web exists and is even API compatible with xterm.js (same engine that powers Ghostty):

https://github.com/coder/ghostty-web/