761 B

Architectural Decision Record

Static web app with typed JavaScript

The overlay is plain HTML/CSS/JS with no bundler: run it locally with deno task serve or host the files on any static server. OBS uses an http(s) URL to the page.

Consequences: Ease of use

  • Adding or updating the overlay is copy files or point OBS at a URL; nothing to build before use beyond optional Deno for local serving and the chat-request database path.
  • Type safety is optional IDE assistance, not enforced at publish time (there is no tsc in CI by default).

This dependency-free client shape stays easy to wire as an OBS Browser Source while keeping the codebase maintainable through JSDoc and types.d.ts.

BeatSaberPlus

Because I already use it.