The interface lives in `web/` and is built with React 19, TypeScript, Vite, Zustand and Tailwind CSS v4.
Release zips already contain the built UI; you only need this page if you work from the repository or add your own sounds.

## Build

```bash
cd web
pnpm install
pnpm build      # outputs web/build, loaded by fxmanifest
```

`web/build` is not committed to the repository.

## Browser dev mode

```bash
pnpm dev
```

The dev mode runs in a normal browser with mock data and a control panel, where you trigger every notification type, the progress bar, each text UI position and the accent colours.

## Custom sounds

Put `.mp3` files into `web/public/sounds` and build again.
They play by their file name, for example `ObsiLib.sound.play('door_bell')` for `door_bell.mp3`.
