VS Code Extensions That Actually Make Me More Productive
My curated list of VS Code extensions that earn their place. No fluff, just tools that improve my daily workflow.
I’ve tried hundreds of VS Code extensions. Most got uninstalled after a day. These are the ones that stuck because they genuinely make me faster and happier.
The Essential Ones
1. Prettier - Code Formatter
Why: Never think about formatting again.
Settings I use:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"prettier.singleQuote": true,
"prettier.trailingComma": "es5"
}
Format on save = zero effort, perfect consistency.
2. ESLint
Why: Catch errors before they become bugs.
Works with Prettier. Configure once, forget about it.
{
"eslint.autoFixOnSave": true,
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
]
}
3. GitLens
Why: Git superpowers built-in.
Features I use:
- Blame annotations (who wrote this line?)
- File history viewer
- Compare branches
- Rich commit search
The blame lens in particular saves me daily.
Language-Specific
4. ES7+ React/Redux/React-Native snippets
Why: Type less boilerplate.
rafce → React Arrow Function Component Export
useS → useState hook
useE → useEffect hook
Massive time saver for React work.
5. TypeScript Error Translator
Why: Makes TS errors actually readable.
Turns this:
Type 'string | undefined' is not assignable to type 'string'.
Type 'undefined' is not assignable to type 'string'.
Into plain English explanations. Life-changing for beginners.
6. Tailwind CSS IntelliSense
Why: Autocomplete for Tailwind classes.
If you use Tailwind, this is non-negotiable. Autocomplete, linting, and hover previews.
Quality of Life
7. Auto Rename Tag
Why: Change opening tag, closing tag updates automatically.
<div>...</div>
<!-- Change div to section -->
<section>...</section> <!-- Updates automatically! -->
Small thing, huge time saver.
8. Bracket Pair Colorizer (Built-in now!)
Why: Match brackets visually.
Actually built into VS Code now:
{
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active"
}
Makes nested code readable.
9. Better Comments
Why: Highlight different comment types.
// TODO: Fix this bug
// ! IMPORTANT: Security issue
// ? Should this be async?
// * Key feature here
Color-coded comments are easier to scan.
10. Error Lens
Why: See errors inline.
Instead of hovering over red squiggles, see the error message right in your code:
const x: number = "string"; // ← Type 'string' not assignable to 'number'
Controversial extension (some find it noisy), but I love it.
Navigation & Search
11. Path Intellisense
Why: Autocomplete file paths.
import './components/Button' // Autocompletes as you type
Especially useful for deep folder structures.
12. Advanced-new-file
Why: Create files fast.
Cmd+N → Type path → File created with directories
components/Button/Button.tsx // Creates directories if needed
13. Bookmarks
Why: Mark important lines.
Toggle bookmarks with Cmd+Alt+K, jump between them with Cmd+Alt+L.
Great for navigating large files.
Testing & Debugging
14. Jest Runner
Why: Run tests directly in editor.
Click gutter icon to run a single test. See results inline. No terminal switching.
test('adds numbers', () => { // ← Click to run
expect(add(1, 2)).toBe(3);
});
15. Thunder Client
Why: Postman alternative inside VS Code.
Test APIs without leaving your editor. Lighter than Postman, perfect for quick tests.
Appearance
16. Material Icon Theme
Why: Beautiful file icons.
Makes the file tree actually pleasant to look at. Different icons for .tsx, .test.ts, etc.
17. GitHub Theme (or your favorite)
Why: Easy on the eyes.
My current theme. Changes with the seasons (literally, I switch themes).
Other favorites:
- Dracula Official
- Night Owl
- Nord
- Catppuccin
Productivity Hacks
18. Paste JSON as Code
Why: Generate types from JSON.
Copy JSON, run command, get TypeScript interfaces. Magic.
{ "name": "Kevin", "age": 30 }
Becomes:
interface Root {
name: string;
age: number;
}
19. TODO Highlight
Why: Never lose track of TODOs.
Highlights TODO, FIXME, HACK in your code. Can list all TODOs in a sidebar.
20. Import Cost
Why: See bundle impact of imports.
import _ from 'lodash'; // 72.5kb (gzipped: 24.7kb)
import debounce from 'lodash/debounce'; // 2.3kb (gzipped: 1.1kb)
Helps me make better import decisions.
Remote Development
21. Remote - SSH
Why: Edit files on remote servers.
Connect to any server via SSH, edit files like they’re local. Full VS Code experience.
22. Dev Containers
Why: Develop inside Docker containers.
Full development environment in a container. Everyone on the team has identical setup.
The Settings I Actually Changed
{
// Editor
"editor.fontSize": 14,
"editor.lineHeight": 1.6,
"editor.fontFamily": "JetBrains Mono, Menlo, Monaco, monospace",
"editor.fontLigatures": true,
"editor.tabSize": 2,
"editor.minimap.enabled": false,
"editor.renderWhitespace": "boundary",
// Files
"files.autoSave": "onFocusChange",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
// Terminal
"terminal.integrated.fontSize": 13,
"terminal.integrated.fontFamily": "JetBrains Mono",
// Workbench
"workbench.startupEditor": "none",
"workbench.editor.enablePreview": false,
// Git
"git.autofetch": true,
"git.confirmSync": false,
// Emmet
"emmet.includeLanguages": {
"javascript": "javascriptreact"
}
}
Extensions I Uninstalled
Auto Import - Too aggressive, broken imports Code Spell Checker - Too many false positives Live Share - Rarely used, resource heavy Settings Sync - Now built-in
Keyboard Shortcuts I Actually Use
{
// My custom shortcuts
"key": "cmd+shift+e",
"command": "workbench.view.explorer" // Toggle file explorer
},
{
"key": "cmd+shift+f",
"command": "workbench.action.findInFiles" // Search in files
},
{
"key": "cmd+shift+d",
"command": "editor.action.duplicateLine" // Duplicate line
}
Performance Tips
Too many extensions = slow VS Code.
Check what’s slow:
Cmd+Shift+P→ “Developer: Show Running Extensions”- Sort by activation time
- Uninstall slowest ones you don’t use
My rule: If I haven’t used an extension in a month, it’s gone.
Theme-Based Workflow
I use different themes for different modes:
- Day: GitHub Light
- Night: GitHub Dark
- Focus: Night Owl (minimal distractions)
Switch with Cmd+K Cmd+T
The Setup Process
New machine? Here’s my checklist:
- Install VS Code
- Sign in to sync settings
- Extensions auto-install
- Configure terminal (oh-my-zsh)
- Set up Git config
- Ready in 10 minutes
Extension Packs I Avoid
“React Extension Pack” with 20 extensions? No thanks.
I prefer installing only what I need. Keeps VS Code fast.
What I Use Outside VS Code
- Warp - Terminal
- Raycast - Launcher
- Rectangle - Window management
- Obsidian - Notes
VS Code is for coding. Other tools for other tasks.
Conclusion
Extensions should enhance your workflow, not complicate it. Start minimal, add as you find pain points.
My core setup:
- Prettier + ESLint (code quality)
- GitLens (git visibility)
- Language-specific intellisense
- A theme I like looking at
Everything else is optional. Find what works for you.
What extensions do you use? Always curious about hidden gems!
Happy coding! 🚀
Keep reading
Why I'm Using Moondream Instead of Cloud Vision APIs
Moondream vs GPT Vision vs Gemini: local vision AI that runs on your laptop. Free image captioning, OCR, object detection, and visual Q&A without API costs. Includes Python examples and GitHub repo.
Computer Vision
Maybe LLM CLI Is All You Need.
Boost developer productivity with command-line AI tools. Learn Simon Willison's LLM CLI, build custom translation tools, and automate git commits. Practical examples for terminal-based AI workflows.
Developer Tools
LLM Data Extraction: A Complete Guide to Document Processing Libraries and Tools
Master document processing for LLMs with this comprehensive guide covering open-source libraries, premium APIs, and cloud services. Compare PyMuPDF, Unstructured.io, Docling, and LlamaParse for your RAG systems.
AI Engineering