Finding one meme sound for an edit used to mean pop-ups, a pre-roll ad and a sign-up wall. So I built UseSounds: 1,500+ meme sounds and sound effects that play in one click, and soundboards where every pad has a key.

Here is how it works under the hood, and one thing about traffic that surprised me.

Pads that overlap, from the keyboard

Each board maps up to 36 pads to 1234567890qwertyuiopasdfghjklzxcvbnm. A key plays its pad; pressing it again while it plays starts a second copy instead of restarting the first, so sounds layer like on a sampler:

function padPlay(btn) { var src = btn.getAttribute("data-src"); var base = padCache[src] || (padCache[src] = new Audio(src)); var node = base.cloneNode(); // a new voice on every press node.volume = padVolume; padLive.push(node); // so Esc can stop them all node.addEventListener("ended", function () { padLive.splice(padLive.indexOf(node), 1); }); node.play(); } 

No audio graph and no library: for clips of a few seconds, cloning a cached <audio> element is enough, and the browser reuses the cached file. Keys are ignored while you type in the filter box; Esc stops everything.

A search that forgives typos

The search that failed most often was "vineboom", typed in one piece, although Vine Boom is the first sound on the home page. The search now works in three steps: an exact match first; then, when nothing matches and the query has at least three characters, the words of each sound run together ("vineboom" finds "Vine Boom"); then each word is compared with a small edit distance (one edit, two for words of seven letters or more), including the start of a longer word you are still typing.

7,500 static pages in 90 seconds

There is no framework. One Python script reads a JSON list of sounds and writes every page: one per sound, category, board, tag and collection, in English and 8 other languages, about 7,500 HTML files in a minute and a half. Cards beyond the first 24 come from a static JSON file, so the first page stays light.

Cloudflare serves it: pages and assets as static files, the MP3s from R2, and a Worker for the few dynamic parts (play and download counters in D1, downloads, sign-in for the paid plan).

A video maker that never uploads your clip

The newest part puts a sound on your clip at the exact frame and exports a vertical video for TikTok, Reels or Shorts, entirely in the browser: WebCodecs (through Mediabunny) where the browser has it, a canvas and MediaRecorder fallback elsewhere. The clip never leaves your device.

What surprised me: Bing

I expected Google to bring the visits. Over a few days in mid-November, more than half of them came from Bing, nearly all to the main soundboard page. Google brought about 4 %, less than ChatGPT. Search Console only shows Google: if most of your visitors are on desktop, open Bing Webmaster Tools too.

Try it

I run it alone. Tell me which sounds are missing, or what you would have built differently.