Skip to content

2 min read#chrome-extension#javascript#developer-tools#open-source#productivity

The Frustration That Started It All

Every developer has those small daily frustrations that they learn to live with. For us, one of those was JSFiddle's sidebar. JSFiddle is a fantastic tool for quick code experiments and sharing snippets. At some point, though, the sidebar toggle was locked behind JSFiddle PRO. That toggle gives you a cleaner, wider editing area. The sidebar itself was still there in the DOM, fully functional. It was just hidden behind a paywall check.

Rather than paying for a subscription or switching to a different tool, we built a Chrome extension that restores the sidebar toggle. It is a tiny project: just a manifest.json and a content script. It solved a real friction point in our daily workflow. It also turned into a useful exercise in Chrome extension architecture.

How Chrome Extensions Work

A Chrome extension is fundamentally a bundle of web technologies (HTML, CSS, and JavaScript) with a manifest file that tells Chrome what the extension does and what permissions it needs. The manifest.json declares the extension's name, version, permissions, and which scripts to inject into which pages.

For jsfiddle-give-sidebar, the architecture is minimal. A content script runs on JSFiddle pages and modifies the DOM to restore the sidebar toggle behaviour. Content scripts have access to the page's DOM, but they run in an isolated JavaScript context. As a result, they cannot interfere with the page's own scripts, or vice versa. This isolation is a security feature, but it also means you sometimes need creative approaches to interact with the host page.

The extension is distributed through GitHub releases. Users download the release, enable Developer Mode in Chrome, and load the unpacked extension. It is not on the Chrome Web Store because the use case is niche and the approval process is not worth it for a personal productivity tool.

Lessons for Developer Tool Builders

The most important lesson from this project is that not every problem needs a complex solution. The entire extension is a handful of files. There is no build step, no framework, no bundler. It loads instantly because there is almost nothing to load. When the goal is to fix a specific workflow friction, simplicity is a feature.

The second lesson is that developer tools do not need to be ambitious to be valuable. A Chrome extension that saves you ten seconds every time you open JSFiddle adds up to hours over a year. These micro-improvements compound. The best developer tools are often the smallest ones, such as a shell alias, a git hook, or a browser extension. Each removes a specific source of friction from a task you do every day.

If you spot a workflow problem that you encounter daily, consider whether a small Chrome extension could fix it. The Chrome extension API is well-documented, and the development cycle is fast: edit, reload, test. The result is a tool that lives right where you work, in the browser.