/ tech-stacks / Best Tech Stack for a VS Code Extension as a Solo Developer
tech-stacks 6 min read

Best Tech Stack for a VS Code Extension as a Solo Developer

The best tech stack for building a VS Code extension as a solo developer - frameworks, databases, hosting, and tools.

Best Tech Stack for a VS Code Extension as a Solo Developer

VS Code extensions are an underrated solo developer play. The marketplace has over 40,000 extensions and millions of active users. If you can solve a real developer pain point, you've got built-in distribution through the VS Code marketplace with zero marketing budget. The key is picking a tech stack that keeps development fast and testing painless.

Here's the exact stack I'd recommend for building a VS Code extension in 2025.

Layer Pick
Language TypeScript (required, essentially)
Extension API VS Code Extension API
UI Webview (React) for complex UI, native API for simple
Bundler esbuild
Backend (if needed) Hono on Cloudflare Workers
Database (if needed) Cloudflare D1 or Turso
Testing Vitest + @vscode/test-electron

The Core: TypeScript + VS Code Extension API

There's no real choice here. While VS Code extensions technically support JavaScript, TypeScript is the only practical option. The VS Code Extension API is entirely typed, and trying to build without those types is like coding blindfolded. Every example in the docs uses TypeScript. Every popular extension uses TypeScript. Use TypeScript.

The VS Code Extension API itself is massive and well-documented. You get access to the editor, file system, terminal, source control, debug adapter, language server protocol, and more. The yo code generator scaffolds a working extension in under a minute.

Start with the official generator:

npx --package yo --package generator-code -- yo code

Pick TypeScript, and you'll have a working "Hello World" extension with proper project structure, launch configurations, and a test setup.

Frontend / UI: It Depends on Complexity

VS Code extensions have two UI approaches, and picking the right one matters:

Native API (for most extensions): Use VS Code's built-in UI components: TreeViews, QuickPicks, StatusBar items, InputBoxes, and Notifications. These are fast, consistent with the editor's look, and require zero frontend framework knowledge. If your extension is a linter, formatter, snippet collection, or command palette tool, native API is all you need.

Webview Panels (for rich UI): If you're building something visual like a dashboard, diagram editor, or settings panel, you'll need Webview panels. These are essentially iframes that can render any HTML/CSS/JS. Use React with a lightweight setup. The @vscode/webview-ui-toolkit package gives you components that match VS Code's design system.

One thing to watch out for: Webviews can't directly access the VS Code API. Communication happens through message passing (postMessage / onDidReceiveMessage), so plan your data flow accordingly.

Bundler: esbuild

The VS Code team officially recommends esbuild for bundling extensions, and for good reason. It's orders of magnitude faster than webpack, the configuration is minimal, and it produces small bundles that make your extension load quickly.

A slow-loading extension gets bad reviews fast. Users notice when your extension adds 500ms to their startup time. esbuild keeps your bundle tight and your activation time low.

The yo code generator includes esbuild configuration out of the box. Stick with it.

Backend: Cloudflare Workers (If Needed)

Many VS Code extensions are purely local and don't need a backend. But if yours requires authentication, a license server, syncing settings across machines, or AI/API features, you need something lightweight.

Cloudflare Workers with Hono is ideal for solo developers building extension backends:

  1. Zero cold starts - Your API responds instantly, which matters when users trigger it from their editor.
  2. Free tier - 100,000 requests/day is more than enough for a growing extension.
  3. Global edge deployment - Low latency for developers worldwide.
  4. Simple deployment - wrangler deploy and you're done.

For extensions that need to store user data or license keys, pair Workers with Cloudflare D1 (SQLite at the edge) or Turso (distributed SQLite). Both have generous free tiers and dead-simple setup.

Database: Keep It Local First

Before reaching for a remote database, remember that VS Code has built-in storage APIs:

  • context.globalState - Key-value storage that syncs with Settings Sync
  • context.workspaceState - Per-workspace key-value storage
  • context.secrets - Encrypted storage for API keys and tokens

For most extensions, these built-in options are sufficient. Only add a remote database when you genuinely need server-side data persistence, like a license system or cross-device sync beyond what Settings Sync provides.

Testing: Vitest + VS Code Test Runner

Testing VS Code extensions has gotten much better. Use Vitest for unit testing your business logic (anything that doesn't touch the VS Code API directly). It's fast and has great TypeScript support.

For integration tests that need the actual VS Code environment, use @vscode/test-electron. It launches a real VS Code instance, installs your extension, and runs your test suite. It's slower but essential for testing commands, UI interactions, and API integration.

Nice-to-Haves

  • vsce - Official CLI for packaging and publishing to the marketplace
  • Sentry - Error tracking (VS Code extensions can silently fail without you knowing)
  • LemurSqueezer or Gumroad - If you want to sell a premium version
  • GitHub Actions - Automate publishing on git tag push

Monthly Cost Breakdown

Service Cost
VS Code Marketplace $0 (free to publish)
Cloudflare Workers (if needed) $0 (free tier)
Cloudflare D1 (if needed) $0 (free tier)
Sentry (free tier) $0
Total $0/month

That's right. You can build, host, and distribute a VS Code extension for absolutely nothing. The marketplace listing is free, Cloudflare's free tier covers most extensions, and your users install directly from VS Code.

Conclusion

The ideal stack for a solo developer building a VS Code extension: TypeScript with esbuild for the extension itself, native VS Code UI components first (Webview + React only when needed), and Cloudflare Workers if you need a backend. Total monthly cost: zero dollars.

VS Code extensions are one of the few software products where distribution is truly free, infrastructure can be free, and a single developer can compete with teams. Focus your energy on solving a real developer problem, keep the technical complexity low, and let the marketplace do the distribution work for you.