सरल means simple. making it look that way took a while.
Saral is a free voice dictation app for Mac and Windows: hold a key, talk the way you think, let go, and clean text lands wherever your cursor is. I designed and built its website, heysaral.com, from a blank file, and redesigned the app’s workspace.
a logo that speaks your language.
Saral is a Hindi word, and most of its users think in more than one language. so the logo learns yours. the orange caret doubles as an eraser: it sweeps right to wipe out “saral”, then sweeps back to write it again in your script, chosen from your browser language or Cloudflare’s edge location.
every word is a pre-outlined SVG path, shaped with HarfBuzz from Noto Sans and weighing 2 to 4 KB. nobody downloads an entire Indic webfont to read one word, and it still looks hand-set.
try it. pick a language, or just watch it show off.
one key fails. your flow doesn’t.
Saral’s best trick is invisible: add as many API keys as you like, and when one gets rate limited, rejected or times out, it quietly moves to the next and rests the tired one. if every cloud key is down, it falls back to Whisper running on your own machine.
that is hard to sell with a paragraph, so the site has a playground that runs the same rotation and cooldown rules as the app. here’s a pocket version. go on, break things.
- rate limited rests about a minute
- rejected key rests an hour
- timeout rests a few seconds
- 1Groqkey 1 · gsk_••••9f2aready
- 2Groqkey 2 · gsk_••••81c6ready
- 3Deepgramkey 1 · dg_••••7b13ready
- 4On-device Whisperno key, no internetstandby
“let’s ship it friday if QA signs off.”
all keys healthy. suspiciously healthy.
cooldowns run 30× faster here, because you have places to be.
the rest of the site.




decisions i’d make again.
- no framework
plain HTML, CSS and JavaScript, no build step, no runtime dependencies. the whole site is lighter than most hero videos, and every bug is, unfortunately, mine.
- UI as illustration
no stock photos anywhere. the speech route list, the transcript and the keys are drawn as real interface, so the picture is also the explanation.
- a download button that knows
it detects Mac or Windows, then reads the newest release from GitHub for sizes and checksums, so the site never says “v1.2.4” a week after 1.2.5 ships.
- one tiny edge function
a single Cloudflare Pages Function at
/api/geopicks the logo’s script when the browser language doesn’t. everything else is static files. - motion that can sit still
every animation respects reduced motion. the logo just stays in English and nobody gets seasick.
and inside the app.
the app itself is an Electron window around a bundled Python engine, cloud clients and a local Whisper runtime, built and led by Swapnil Kumar. my part there: a redesign of the workspace, the screen you live in between dictations, plus the new Saral Studio features and a macOS polish pass.
translation: i moved a lot of pixels, and then moved them 2px back.
11 octRedesign the workspace and add the Saral Studio features11 octPolish the redesign for macOS
small log, large diff.