← All posts

Why I Build Browser and Editor Extensions

·
extensionsvscodechromesafari

Extensions are underrated. They live inside tools people already use every day — browsers and editors — and they can have an outsized impact on productivity with minimal surface area.

The Appeal of Small Software

Not everything needs to be a full app. Sometimes the best tool is a tiny extension that does one thing well:

  • A Safari extension that cleans up cluttered web pages
  • A Chrome extension that captures and organizes bookmarks intelligently
  • A VS Code extension that streamlines a repetitive workflow

These are small bets with high payoff. The distribution is built-in — app stores and marketplaces handle discovery.

Cross-Browser, Cross-Editor

Building extensions across Safari, Chrome, and VS Code means working with three different APIs. But the mental model is similar: you’re augmenting an existing host application with focused functionality.

// VS Code extension activation
export function activate(context) {
  const command = vscode.commands.registerCommand(
    'darthcoder.doSomething',
    () => { /* focused functionality */ }
  );
  context.subscriptions.push(command);
}

The constraint of working within a host app’s sandbox is actually freeing. You don’t need to build the entire UI from scratch. You just need to solve the problem.

What I’ve Learned

  1. Start small — ship a v1 that does one thing perfectly
  2. Respect the platform — follow the host app’s UX conventions
  3. Iterate based on feedback — real users surface edge cases you never imagined

More extensions are in the pipeline. Each one will be documented here with the thinking behind it.