WebBoom is a WebAssembly port of Doom based on PrBoom+.
There are multiple Doom ports for the web, but I found issues in most of them: removed core features (like music or the ability to load custom games), no documentation, non existent git history, etc.
WebBoom produces UMD modules with Emscripten. It can be used as a foundation for other projects, and it was made to be kept in sync with the upstream source code, so it can be updated in a regular basis.