WebStorm IDE — Complete Developer's Guide
WebStorm is a full-featured IDE by JetBrains designed specifically for JavaScript, TypeScript, and React development. Unlike lightweight editors, WebStorm provides deep code analysis, intelligent refactoring, and integrated tooling out of the box.
In this tutorial, you will learn how to set up WebStorm for web development, use its powerful debugging and refactoring tools, integrate version control, leverage Live Edit for real-time browser preview, and master its built-in tools like the HTTP client and database tools. DodaTech engineers use WebStorm for complex frontend and full-stack development in Doda Browser.
What You’ll Learn
By the end of this guide, you will be productive in WebStorm — debugging applications step by step, refactoring code with confidence, managing Git branches from the IDE, and using Live Edit for instant feedback during development.
Why WebStorm Matters
WebStorm’s deep static analysis catches errors that even well-configured ESLint setups miss. Its refactoring tools (rename, extract, inline, move) understand scope across your entire project. For teams building large JavaScript applications, this intelligence directly reduces bugs and accelerates development.
WebStorm Learning Path
flowchart LR
A[Setup] --> B[Debugging]
A --> C[Refactoring]
B --> D[Version Control]
C --> D
D --> E[Live Edit & Tools]
E --> F{You Are Here}
style F fill:#f90,color:#fff
Installation and Setup
Download WebStorm from jetbrains.com/webstorm. Install via the JetBrains Toolbox App for automatic updates and multiple version management.
Initial Configuration
When first launched, WebStorm indexes your project — this builds its internal model of your code. Let it complete before editing. Enable these settings:
// Settings → Editor → General → Appearance
"Show quick documentation on mouse move": true
"Show parameter name hints": true
// Settings → Editor → Code Style → JavaScript
"Use semicolons": true
"Trailing comma": "All"
"Single quote": trueProject Structure
WebStorm understands project structures from package.json, tsconfig.json, and .eslintrc. Open an existing project or create a new one from the welcome screen.
Debugging
WebStorm’s debugger is one of its strongest features. Set breakpoints by clicking the gutter. Debug Node.js, browser JavaScript, or React applications without leaving the IDE.
Node.js Debugging
Create a run configuration (Run → Edit Configurations → + → Node.js):
// index.js
function calculateMetrics(data) {
const total = data.reduce((sum, item) => sum + item.value, 0);
const avg = total / data.length;
return { total, avg, count: data.length };
}
const result = calculateMetrics([{ value: 10 }, { value: 20 }, { value: 30 }]);
console.log(result);Expected output in debug console
Breakpoint hit at line 3 in index.js
Variables: data = Array(3), sum = 0, item = {value: 10}
Step over → sum = 10
Step over → item = {value: 20}, sum = 30Browser Debugging
For React apps, use the JavaScript Debug run configuration. WebStorm launches Chrome with remote debugging enabled, mapping source files directly to your code.
Evaluation expression during a breakpoint:
// In the Evaluate Expression dialog:
document.title
// → "My App"
Refactoring
WebStorm provides safe, project-wide refactoring. Select code and press Ctrl+T (or right-click → Refactor).
| Refactoring | Shortcut | What It Does |
|---|---|---|
| Rename | Shift+F6 | Renames symbol across all files, respecting scope |
| Extract Variable | Ctrl+Alt+V | Wraps selected expression in a variable |
| Extract Function | Ctrl+Alt+M | Extracts selected code into a new function |
| Inline | Ctrl+Alt+N | Replaces a variable/function with its value |
| Move | F6 | Moves file or symbol to a different location |
| Change Signature | Ctrl+F6 | Adds/removes/reorders function parameters |
// Before refactoring
function getGreeting(name) {
return "Hello, " + name + "!";
}
// After Extract Variable (Ctrl+Alt+V)
function getGreeting(name) {
const greeting = "Hello, " + name + "!";
return greeting;
}
// After Change Signature to add prefix
function getGreeting(name, prefix = "Hello") {
return prefix + ", " + name + "!";
}Expected output
getGreeting("Alice") → "Hello, Alice!"
getGreeting("Bob", "Hi") → "Hi, Bob!"Version Control Integration
WebStorm integrates Git, GitHub, Mercurial, and more. The VCS menu provides commit, push, pull, branch management, and history.
Branch Operations
| Action | Shortcut |
|---|---|
| Commit | Ctrl+K |
| Push | Ctrl+Shift+K |
| Update Project | Ctrl+T |
| Git Log | Alt+9 |
Interactive Rebase
Right-click a commit in the Log and select “Interactively Rebase from Here.” Squash, reword, reorder, or drop commits using the visual interface — no terminal needed.
Live Edit
Live Edit updates your browser in real time as you edit HTML, CSS, and JavaScript, without manual refresh.
Enable it: Settings → Build, Execution, Deployment → Debugger → Live Edit → Update Node.js application in Chrome on changes.
Works with the built-in web server or any dev server running on localhost.
Built-in Tools
HTTP Client
Create .http files to test REST APIs directly in the IDE:
### Get all users
GET http://localhost:3000/api/users
Accept: application/json
### Create a user
POST http://localhost:3000/api/users
Content-Type: application/json
{
"name": "Alice",
"email": "alice@example.com"
}
### Expected response (from the Services tool window)
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 1,
"name": "Alice",
"email": "alice@example.com"
}Database Tools
Connect to MySQL, PostgreSQL, or SQLite directly from WebStorm. Browse schemas, run queries, and edit data. Results appear in a spreadsheet-like view.
Terminal
WebStorm includes a full integrated terminal (Alt+F12). It uses your system shell and can run npm, git, and build commands.
Common Errors
1. Indexing Taking Too Long
Large node_modules directories slow indexing. Exclude them: right-click node_modules → Mark Directory as → Excluded.
2. ESLint and WebStorm Formatting Conflicts
When the built-in formatter disagrees with ESLint, enable “Run eslint –fix on save” in Settings → Languages & Frameworks → JavaScript → Code Quality Tools → ESLint → Run on save.
3. Debugger Not Connecting to Chrome
Ensure Chrome is installed and the JetBrains Chrome Extension is enabled. Restart the debug configuration and allow remote debugging in Chrome’s command line.
4. Live Edit Not Working
Live Edit requires the JavaScript Debug configuration (not Node.js). Create a new “JavaScript Debug” run configuration pointing to your app’s URL.
5. Git Merge Conflicts Not Showing
Ensure the VCS tool window is visible (Alt+9). In the Log view, unresolved files show a red badge. Double-click files to resolve conflicts in the merge dialog.
6. TypeScript Not Transpiling
Check that TypeScript is enabled in Settings → Languages & Frameworks → TypeScript. Set the compiler version to the one in your node_modules or a globally installed one.
7. HTTP Client Returns Connection Refused
Ensure your server is running before executing .http requests. Click the green arrow next to each request to run it individually.
Practice Questions
1. What is the difference between Extract Variable and Extract Function?
Extract Variable (Ctrl+Alt+V) assigns a selected expression to a new variable. Extract Function (Ctrl+Alt+M) wraps selected code into a new function, with parameters for used variables.
2. How do you run a Git commit in WebStorm?
Press Ctrl+K, review the changes in the Commit dialog, enter a commit message, and click Commit (or Commit and Push to push simultaneously).
3. What is Live Edit and when would you use it?
Live Edit updates browser content in real time when you modify HTML, CSS, or JavaScript. You use it during frontend development to see changes instantly without reloading the page.
4. How do you debug a Node.js application in WebStorm?
Create a Node.js run configuration, set breakpoints in the gutter, and click Debug. Use the debugger toolbar to step over, step into, or continue execution.
5. Challenge: Extract a React component
Open a React component file. Select a block of JSX, press Ctrl+Alt+M, name the extracted component, and let WebStorm create the new file with proper imports.
Mini Project: WebStorm Workspace Setup
Configure a WebStorm project with full toolchain integration:
- Create a new Node.js Express project with
package.json - Enable ESLint and Prettier via
Settings → Languages & Frameworks → JavaScript → Code Quality Tools - Set up a JavaScript Debug configuration pointing to
http://localhost:3000 - Create a
.httpfile with three API test requests - Enable Live Edit and test that HTML/CSS changes appear instantly in the browser
This setup mirrors how DodaTech’s frontend team configures WebStorm for development of Doda Browser user interfaces.
FAQ
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro