# firefox-second-sidebar gives Firefox the web panel sidebar it never shipped

> firefox-second-sidebar is a userChrome.js script that adds a second sidebar with web panels to Firefox, plus per panel controls for containers, zoom, loading and hiding elements. It gives you Vivaldi style web panels without leaving Firefox, at the cost of two about:config preferences and a script that lives in your profile.

**aminought/firefox-second-sidebar** — A Firefox userChrome.js script that brings a second sidebar with web panels like in Vivaldi/Edge/Floorp but better.

- Repository: https://github.com/aminought/firefox-second-sidebar
- Stars: 646 · Forks: 35
- Language: JavaScript
- License: MPL-2.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/aminought-firefox-second-sidebar

## The sidebar Firefox never shipped

The motivation section is short and blunt. The author tried Vivaldi, Edge, Floorp and Zen, and they all have one thing in common that the author cannot imagine using a browser without, which is the sidebar. Firefox, which the author feels most closely aligns with their needs in terms of spirit and functionality, has a rather unsatisfactory sidebar. So the author built another one. The project description says the same thing in one line, a Firefox userChrome.js script that brings a second sidebar with web panels like in Vivaldi, Edge or Floorp but better, and the README carries a wide promotional image and a demo recording. The word second in the name is the important design decision. Rather than trying to replace Firefox's own sidebar, with its bookmarks and history and add-ons, the script adds a second one alongside it. So the built in sidebar keeps doing what it does, and the new one holds web panels, which are embedded pages in a tab-like frame. That framing matters for a browser user, because the alternative to a panel is another tab, and tabs are where the tab strip, the address bar and the search field all compete for space.

## What a web panel can do beyond showing a page

The web panel feature list is long, and the grouping tells you the design. The actions cover the lifecycle of a panel: create, delete, edit, change position and size, reset position and size, unload, mute, unmute, pin, unpin, change zoom, go back, go forward, reload and go home. Extensions support is listed on its own, and so is popup notification support for permissions to use the microphone, camera or location, which matters because a panel that embeds a site needing those permissions has to handle the prompt without breaking the frame. The link context menu adds Open Link in Second Sidebar and Preview Link in Second Sidebar, and the README is specific that the preview entry is shown only for links Firefox can open in a tab. Each panel then carries its own settings, and the list is worth reading as a set of answers to the questions a panel raises. The General group has URL, Multi-Account Container, Temporary, Mobile view and Zoom. The Title and Favicon groups each offer Dynamic or a static value, so a panel can be labelled the way you want rather than by the page's own title. Position and size has a Mode of Floating or Pinned, an Always on top option, a position anchor, horizontal and vertical offsets, width and height. The Loading group decides whether a panel loads into memory at startup, restores the last opened page, unloads from memory after closing, or reloads periodically.

## The sidebar is a configurable surface, not a fixed strip

The sidebar settings are the part that decide whether the script survives contact with your own workflow. Position is Left or Right, so you can put it where your other tools are, and there is a Width setting and an Allow window dragging option. Visibility is the interesting group. There is an Auto-hide sidebar option, an Auto-hide behaviour that is Inline or Overlay, a Hide web panel when sidebar is hidden option, and a layout-independent shortcut to hide or show the sidebar. Inline means the sidebar takes space and pushes the page, and Overlay means it floats above the page, and that distinction changes what the rest of the interface feels like. The Web panel group adds a Default floating panel offset, a New panel position with the choice of before or after the plus button, a Show geometry hint option, and a layout-independent shortcut to open or close the last active panel. The Web panel button group controls the container indicator, with Off, Left, Right, Top, Bottom and Around as the positions, the tooltip content with Off, Title, URL or Title and URL, and a Show full URL in tooltip toggle. The toolbar group has auto-hide for the forward and back buttons, and the Animations group toggles animating the sidebar and animating the web panel toolbar. There is also a Widgets entry, a Second Sidebar widget to show or hide the sidebar, and the whole thing is reachable through the standard Customize Toolbar interface, which is what the Actions entry, Show and Hide, is for.

## Installing it means writing into your Firefox profile

This is the part that decides whether the project is for you, and it is worth reading twice. The installation is five steps and the first one is not a download from a store. You install fx-autoconfig, a separate tool, then you copy the contents of the src/ directory, namely second_sidebar/ and second_sidebar.uc.mjs, into the chrome/JS/ folder of your profile. Then you enable toolkit.legacyUserProfileCustomizations.stylesheets and dom.allow_scripts_to_close_windows in about:config. Then you clear the startup cache, with the README linking the cache clearing instructions from the fx-autoconfig project. Then have fun. The two preferences are the interesting part. toolkit.legacyUserProfileCustomizations.stylesheets is the gate Firefox puts in front of userChrome stylesheets, and dom.allow_scripts_to_close_windows is what lets a user script close a window, which a sidebar that can be hidden needs. Both are switches in a browser that is otherwise cautious about third party chrome, and both are documented here as required steps rather than hidden. The startup cache step is the one people miss. Because the profile caches the compiled chrome scripts at startup, a newly copied script will not run until that cache is cleared, and the symptom of skipping it is a script that appears to do nothing at all.

## What this approach costs, and what it buys

The script sits in the profile directory, not in an extension sandbox, and that single fact shapes everything. What it buys is control. A userChrome script can restyle the browser chrome itself, which is how a second sidebar can sit inside the window frame rather than beside it, and how the panel toolbar can have its own buttons rather than relying on the browser's. It also means no store review, no update channel, and no guarantee that a future Firefox release leaves the internals alone, since userChrome customisations sit on undocumented structures that can change between versions. The two about:config preferences are the price, and the one that allows scripts to close windows is a preference a security conscious administrator will notice. The second cost is update handling. There is no update mechanism described in the README, and the way to get a new version is to copy the new src/ contents over the old ones in chrome/JS/ and clear the startup cache again, which is a manual step repeated on every release. The repository listing shows what is in the project, with a src/ directory holding the script, an eslint.config.mjs and a .prettierrc for the JavaScript, a LICENSE file, an AGENTS.md and a .github/ directory, and the last push was on 2026-09-27 with releases v2.0.1 on 2026-05-19, v2.0 on 2025-11-03 and v1.4.3 on 2025-10-06, so the v2 line has been in place for most of a year and the recent patch releases are the maintenance tail.

## How it compares to just using the browsers that ship one

The honest comparison is against the browsers named in the README, and the difference in approach is what the author is complaining about. Vivaldi, Edge and Floorp ship a sidebar as part of the product, so there is no profile editing, no about:config switch and no manual file copying, and the panels are integrated with the browser's own lifecycle rather than bolted on. The cost of that integration is that you use that browser. Edge in particular is a browser with the panel behaviour already present and supported. Choosing firefox-second-sidebar is a statement that the rest of Firefox, its privacy stance, its extension model or its tab handling matters more to you than the sidebar being first class. A fourth option exists that the README does not mention but that the feature list implies, which is a set of pinned or containerised tabs, and that gets you the same content in a different shape with none of the profile surgery. What the script adds over that is the per panel controls, the containers per panel, the floating or pinned mode and the ability to unload a panel from memory, which is a differentiator when a panel is a service application rather than a document.

## Conclusion

firefox-second-sidebar suits a Firefox user who wants the web panel sidebar that Vivaldi, Edge and Floorp ship with, and who is willing to install a script into the browser profile and turn on two about:config preferences to allow it. It is the wrong tool for someone who wants a supported, store-listed extension, because this lives in the profile and is updated by replacing files, and it is the wrong tool if you are on a managed or locked down browser profile where userChrome customisations are disabled. Before you rely on it, install it as the README describes, then check that the sidebar survives a browser restart, since the startup cache has to be cleared for the change to take effect.

## FAQ

### How do I install firefox-second-sidebar?

Install fx-autoconfig, copy the contents of the src/ directory, namely second_sidebar/ and second_sidebar.uc.mjs, into the chrome/JS/ folder, enable toolkit.legacyUserProfileCustomizations.stylesheets and dom.allow_scripts_to_close_windows in about:config, then clear the startup cache.

### What can a web panel in firefox-second-sidebar do?

Each panel has its own URL, Multi-Account Container, temporary flag, mobile view and zoom, a dynamic or static title and favicon, a floating or pinned mode with position and size, loading options that include loading into memory at startup and unloading after closing, a keyboard shortcut, a CSS selector, and options to hide the toolbar, the sound icon and the notification badge.

### Does firefox-second-sidebar replace the built in Firefox sidebar?

No, the project adds a second sidebar with web panels alongside the Firefox one. The description calls it a second sidebar with web panels, and the sidebar settings include a position of Left or Right plus width and auto-hide options.

## Sources

- [aminought/firefox-second-sidebar on GitHub](https://github.com/aminought/firefox-second-sidebar)
- [Issues](https://github.com/aminought/firefox-second-sidebar/issues)
- [License: MPL-2.0](https://github.com/aminought/firefox-second-sidebar/blob/master/LICENSE)
- [README](https://github.com/aminought/firefox-second-sidebar/blob/master/README.md)
- [Releases](https://github.com/aminought/firefox-second-sidebar/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/aminought-firefox-second-sidebar
