Voice to Text for WebStorm
You're building a React component in WebStorm. The logic is done. Now you need to document the props, explain why you chose this state management approach, and write a commit message. Your brain is still in JavaScript mode, but you need to switch to documentation mode. Blurt lets you speak your JSDoc comments, React prop documentation, and Vue component descriptions directly into WebStorm. Hold a button, say what you need, release. Text appears at your cursor. Your hands stay on the keyboard. Your flow stays intact. Works everywhere in WebStorm — JavaScript files, TypeScript, JSX, Vue single-file components, anywhere you can type.
The Typing Problem
JSDoc comments that never get written
Your utility function works perfectly. But the @param and @return tags are empty. You know what to write — you could explain the function in 20 seconds out loud. But typing the JSDoc syntax with all those asterisks and annotations feels tedious. So you skip it. Three months later, you're staring at your own function wondering what format that date parameter expects.
React prop documentation you keep postponing
Your component accepts eight props. Some are optional. Some have specific format requirements. Some interact with each other in non-obvious ways. The TypeScript types help, but they don't explain why. A comment would clarify everything, but after getting the component working, documenting props feels like busywork. The component ships with implicit knowledge baked in.
Vue component descriptions that stay empty
Your Vue component has a computed property with subtle reactivity behavior. It needs a comment. You could explain the edge case verbally in 15 seconds. Typing it out means breaking your flow, remembering the exact behavior, formatting the comment nicely. So you move on. The next developer will discover the edge case the hard way.
Commit messages that say nothing useful
You just spent an hour refactoring the authentication flow to support OAuth. Git is asking for a commit message. You could explain the security implications, the breaking changes, the migration steps. Instead, you type 'refactor auth' because switching mental gears from code to prose is exhausting. The git history becomes archaeology instead of documentation.
TODO comments without context
You hit a browser compatibility edge case that needs handling later. You type 'TODO: fix Safari' and move on. Six months later, that TODO is still there. What's broken in Safari? What was the proposed fix? The TODO provides a landmark but zero context. Future you will have to rediscover the entire problem.
How It Works
Blurt works in every context within WebStorm — your JavaScript and TypeScript files, JSX and TSX components, Vue single-file components, the integrated terminal, source control panel, everywhere you can place a cursor.
Hold your hotkey
Press your chosen shortcut anywhere in WebStorm. A small indicator shows Blurt is listening.
Speak naturally
Dictate your JSDoc comment, prop documentation, or commit message. Blurt handles punctuation and capitalization.
Release and done
Text appears at your cursor in WebStorm. No extra steps. Keep coding.
Real Scenarios
Dictating JSDoc comments for utility functions
You just wrote a date formatting utility that handles timezone conversion. Position your cursor above the function, hold your hotkey and speak: 'Formats a date string for display in the user's local timezone. Takes a UTC timestamp as the first parameter and an optional format string using date-fns patterns. Returns the formatted date string or null if the input is invalid. Throws if the format string contains unsupported patterns.' Complete JSDoc in 12 seconds. The function is now self-documenting.
Documenting React component props
Your DataTable component has complex prop interactions. Hold button above the interface: 'DataTable displays paginated tabular data with optional sorting and filtering. The data prop accepts an array of objects matching the column definitions. Set sortable to true to enable click-to-sort on column headers. The onRowSelect callback fires when selection changes and receives the selected row indices.' TypeScript tells the types. Your voice explains the intent.
Explaining Vue computed properties
Your computed property has non-obvious caching behavior. Hold button: 'This computed recalculates when either the user object or permissions array changes. We use a computed instead of a method because the permission check is expensive and the result should be cached across multiple template references. Invalidates automatically when the store updates.' Future maintainers will understand the design decision.
Writing meaningful commit messages
You've refactored the API client to support request cancellation. Hold your hotkey in the commit panel: 'Refactor API client to support request cancellation via AbortController. All fetch calls now accept an optional signal parameter. Pending requests are automatically cancelled on component unmount. Breaking change: API client methods now return an object with response and cancel function.' A commit message that's actually useful.
Inline comments for tricky JavaScript
You wrote a closure that captures variables in a non-obvious way. Hold button: 'This closure captures the loop variable by value, not reference, using the IIFE pattern. Without this, all click handlers would reference the final value of i. See MDN closures documentation for explanation.' The next developer won't accidentally break it.
Explaining workarounds for framework quirks
You're working around a React state batching issue. Hold button: 'We use flushSync here because React's automatic batching delays the state update past when the third-party library reads the DOM. This is a known issue with this library version. Remove when upgrading to version 4.' The workaround is documented, not mysterious.
TODO comments with actionable context
You found a performance issue that's not blocking but needs attention. Hold button: 'TODO: Replace this array.find with a Map lookup. Current implementation is O of n on every keystroke. Not blocking because datasets are small in practice, but will become a problem with enterprise customers. See performance ticket PERF-234 for profiling data.' A TODO that someone can actually act on.
Why WebStorm developers choose Blurt over built-in dictation
| Blurt | macOS Dictation | |
|---|---|---|
| Activation | Single hotkey, instant start | Double-tap Fn or menu bar click |
| Speed | Text appears in under 500ms | 2-3 second delay before transcription starts |
| JavaScript vocabulary | Handles React, Vue, and JS terminology | Often misinterprets camelCase and framework terms |
| Reliability | Works consistently in all WebStorm contexts | Sometimes fails silently in dialogs or tool windows |
| Price | $10/month or $99/year | Free (built into macOS) |
| Free tier | First 1,000 words free | Unlimited but unreliable |
Frequently Asked Questions
Start Typing Faster Today
Free to try — no credit card required
Download Blurt