757 B

Architectural Decision Record

Static web app with typed JavaScript

The overlay loads inside OBS from a URL or file:// path, with no install step for streamers.

Consequences: Ease of use

  • Adding or updating the overlay is copy or point OBS at index.html (hosted or local); nothing to build before use.
  • We avoid a toolchain that would complicate “drop this folder in” or quick Netlify-style hosting.
  • Type safety is optional IDE assistance, not enforced at publish time (there is no tsc in CI by default).

This static, dependency-free shape exists because it stays easy to wire up as an OBS Browser Source while keeping the codebase maintainable through JSDoc and types.d.ts.

BeatSaberPlus

Because I already use it.