underthekey · custom keyboard platform
Period —
A platform for handling custom keyboard builds in one place, where users practice typing with real keystroke sounds. I recorded and mixed the switch sounds myself.
500 users in 2 days
- 13 switch sources based on Cherry‑style samples
- Input tests per keyboard layout
- Imager: sound‑stage visualization
- Volume and language settings
- Public API serving about 5,000 Korean proverbs and about 300 English quotes by language and category
- Up to 20 sentences per request
Audio files multiplying per layout
- Problem
- At first, a DAW template produced a source for each of about 110 key positions, so every switch meant sending 110 mixed files. The number of downloads hurt performance, and I needed a way to automate and shrink this step.
- Solution
- Moved the mixing from the DAW to the browser with the Web Audio API. One 8 KB source with panning, frequency adjustments and keycap‑size filters forms a template that covers every layout. The number of files to download fell from 110 to 1.
Too many requests to the public API
- Problem
- The random sentence API is public, so traffic could spike, and it is the core server of the service, so it had to stay up. Counting remote IPs directly would strain concurrency, and the limits needed detailed rules.
- Solution
- Chose Bucket4j for its accuracy and how well it works with Redis TTLs. Token limits allow 20 requests per 5 minutes, so excess requests do not turn into server load.
Architecture






