I set out to build a very small browser tool: press a button, play a short low-frequency sweep, stop after 30 seconds.
The first prototype was maybe twenty lines of Web Audio code. The version I shipped is still small, but the hard part turned out not to be generating a tone. The hard part was making the tone behave like a decent citizen on a phone: start only when someone asks for it, avoid an abrupt click, stop when the tab disappears, and leave nothing running behind the UI.
That made it a useful little case study in the difference between “the API works” and “this feels safe to put in front of people.”
The audio graph I actually needed
The sound path is deliberately boring:






