Skip to content

Ravinduflash/Windows-Side-Bar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Custom Edge Sidebar (Windows Desktop App)

⬇ Download the latest release — installer (recommended) or portable exe. No build tools needed.

A Windows desktop sidebar inspired by the classic Microsoft Edge sidebar. It docks to the right edge of your screen as a thin icon strip. Click an icon and a panel slides open with that web app — WhatsApp, ChatGPT, Gmail, Claude, or any site you pin. Built with Electron; every site runs as a real top-level page, so logins, cookies, and sessions persist just like a normal browser.

The icon strip docked at the screen's right edge Standby clock and the right-click app menu


Table of Contents

  1. Installation
  2. First Launch
  3. Basic Usage
  4. Adding Sites to the Sidebar (4 ways)
  5. The Right-Click App Menu
  6. Pin vs Auto-Hide
  7. Resizing the Panel
  8. Keyboard Shortcuts
  9. The System Tray Menu
  10. Settings (Themes, Sizes)
  11. Backup: Export / Import / Editing the JSON
  12. Changing App Icons
  13. Logging In to Sites
  14. Troubleshooting
  15. Where Your Data Lives

1. Installation

Run from source

Requires Node.js 18+.

cd sidebar-desktop
npm install
npm start

Build a Windows .exe

npm run build

This produces a portable .exe and an NSIS installer in the dist/ folder. The portable exe needs no installation — copy it anywhere and run it. The installer is the better choice for daily use (Start Menu entry, clean uninstall, and reliable Start with Windows).

⚠️ Windows SmartScreen note: the exe is unsigned, so on first run Windows may show "Windows protected your PC". Click More info → Run anyway. This is normal for unsigned open-source apps — removing the warning requires a paid code-signing certificate, which most hobby projects skip. The app is fully local and sends no data anywhere.

Start with Windows

Right-click the tray icon → check Start with Windows.


2. First Launch

On first run the sidebar comes pre-loaded with a starter set of apps: ChatGPT, Claude, Gemini, Copilot, Grok, DeepSeek, Kimi, Perplexity, Meta AI, Mistral, Merlin, STORM, Manus, Wan, Gmail, Gemini Notebook (NotebookLM), WhatsApp, Telegram, Messenger, YouTube Music, GitHub, and Google Translate.

You can remove any of them (right-click → Remove App) and add your own — the defaults only appear the very first time; after that the sidebar shows exactly what you configured.


3. Basic Usage

Action How
Open an app Click its icon on the strip
Close / minimize the panel Click the active icon again, press Alt+S, or just click outside the sidebar (if not pinned)
Switch apps Click a different icon — each app keeps running in the background, so switching is instant and nothing reloads
Reorder icons Drag an icon up or down the strip
Scroll the strip If you have many apps, scroll the icon area with the mouse wheel — the + and buttons always stay visible at the bottom
Quit the app Right-click the tray icon → Quit

The sidebar has no taskbar button — it lives in the system tray (near the clock; check the ^ overflow area).


4. Adding Sites to the Sidebar

There are four ways, from easiest to most manual:

Way 1 — The + button (grabs your browser tab)

Open the site in your normal browser (Edge, Chrome, Brave, or Vivaldi), then click the + button on the strip. The sidebar detects the page open in your most recently used browser window and pins it instantly — URL, title, and icon.

Way 2 — Right-click the + button (manual URL)

Right-click + to open the manual "Add Pinned App" form. Type any URL and an optional title. Bonus: if you've copied a URL to the clipboard, the URL field is pre-filled automatically.

Add Pinned App form

Way 3 — From your browser (companion extension)

If you use the companion browser extension (the custom-edge-sidebar extension in the parent folder), right-click any page in your browser → "Add this page to Desktop Sidebar". The desktop app must be running.

Way 4 — Editing the backup JSON

Export your workspace (Settings → Export Backup JSON), add entries to the savedApps array in the file, and import it back. See section 11 for the format. This is the power-user way to add many sites at once with custom icons.


5. The Right-Click App Menu

Right-click any app icon on the strip:

Menu item What it does
📌 Pin / Unpin Panel Pinned apps stay open when you click outside the sidebar. Unpinned apps auto-hide. Saved per app.
📱 Switch to Mobile Version / 💻 Desktop Version Reloads the app pretending to be an Android phone. Mobile layouts usually fit the narrow panel much better (great for Gmail, YouTube, news sites). Saved per app.
🔄 Reload App Clears the app's remembered deep link and reloads it fresh from its base URL. Use this if an app gets stuck on a weird page.
🗑️ Remove App Removes the icon from the sidebar. (Your login for that site is kept, so re-adding it later won't ask you to sign in again.)

Note: a few sites (notably WhatsApp Web) refuse phone browsers and will demand the mobile app — leave those on Desktop version.

Right-click app menu


6. Pin vs Auto-Hide

By default the sidebar behaves like the old Edge sidebar: open a panel, click into your browser or any other window, and the panel collapses back to the thin strip automatically.

If you want a panel to stay open while you work elsewhere (e.g. WhatsApp on the side while writing emails):

  • Click the 📌 button at the top of the strip while that app is open, or
  • Right-click the app's icon → Pin Panel.

The 📌 button is highlighted blue when the current app is pinned. Pinning is remembered per app — WhatsApp can be pinned while everything else auto-hides.


7. Resizing the Panel

While a panel is open, drag the left edge of the sidebar with your mouse — exactly like resizing any window. The width (300–1400px) is remembered and used for all panels. The collapsed strip itself is fixed-width (configurable in Settings: 40/48/56px).


8. Keyboard Shortcuts

These work system-wide, even when the sidebar isn't focused:

Shortcut Action
Alt + S Toggle the sidebar open/collapsed
Alt + 1 Open pinned app #1 (first icon)
Alt + 2 Open pinned app #2
Alt + 3 Open pinned app #3

Reorder your icons (drag & drop) to control which apps get the number shortcuts.


9. The System Tray Menu

Right-click the tray icon:

  • Collapse / Show Sidebar — toggle the panel.
  • Your first 5 apps — jump straight to one.
  • Always on Top — keep the sidebar above all windows (on by default).
  • Start with Windows — launch at login.
  • Troubleshoot → Open DevTools (active app) — browser developer console for the current panel; use when a site misbehaves.
  • Troubleshoot → Open debug log — opens the log file with recorded crashes/load failures.
  • Quit — fully exit.

Left-clicking the tray icon toggles the sidebar open/closed.

System tray menu


10. Settings

Click at the bottom of the strip:

Setting Options
Theme Preset Slate Dark, Midnight Blue, Obsidian Black, Deep Purple, Forest Dark, or Custom Color (pick any hex color)
Font Size Small / Medium / Large / Extra Large — scales the sidebar UI text
Icon Size 26 / 32 / 38 px icons
Strip Width 40 / 48 / 56 px

All settings apply instantly and are saved automatically.

Sidebar Settings


11. Backup & Restore

Settings → Export Backup JSON downloads a single file containing your pinned apps, their order, icons, pin/mobile flags, remembered deep links, and theme settings. Import Backup JSON restores it — on a new PC, after a reset, or to share a setup with someone.

Logins are not in the backup (they're browser cookies, stored separately) — after importing on a new machine you'll sign in to each site once.

The JSON format

{
  "savedApps": [
    {
      "url": "https://chatgpt.com",          // the app's base URL (required)
      "icon": "https://.../favicon.webp",     // image URL for the strip icon
      "title": "ChatGPT",                     // tooltip text
      "mobile": false,                        // true = load as mobile site
      "pinned": false                         // true = panel doesn't auto-hide
    }
  ],
  "deepLinks": {
    "chatgpt.com": "https://chatgpt.com/some/last/page"
  },
  "customizations": {
    "theme": "slate", "customColor": "#0f172a",
    "fontSize": "small", "iconSize": "medium", "stripWidth": "medium"
  }
}
  • savedApps — one entry per icon, in strip order.
  • deepLinks — the last page you were on, per site; the sidebar reopens apps exactly where you left them. Safe to delete entries (or the whole object) — apps then open at their base URL.
  • mobile / pinned are optional; they default to false.

Edit the file in any text editor, save, and import it back.


12. Changing App Icons

The sidebar picks icons automatically: when an app loads, it grabs the site's own favicon. But favicons are often tiny (16–32px) and look blurry on the strip. To use a sharper icon:

  1. Export your backup JSON (Settings → Export Backup JSON).
  2. Find the app in savedApps and replace its "icon" value with any image URL — the site's high-res app icon, a Wikipedia/press-kit PNG, or icon packs like lobe-icons (e.g. https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/claude-color.png).
  3. Import the file back.

Custom icons are protected: the automatic favicon updater only ever replaces missing or generic fallback icons, never one you set yourself.

Tips for finding good icon URLs: open the site, press F12 → Network → filter "png/ico/webp", or search "<site> app icon png". Square images ≥64px look best.


13. Logging In to Sites

Sign in once per site, inside the sidebar — sessions are saved permanently after that (same as a browser profile).

  • Regular email/password logins — work as normal.
  • "Continue with Google" — works in the panel; some sites open a small sign-in popup window, finish the login there and it closes itself.
  • If Google ever refuses ("browser not secure") or a login loops: use the site's email-code / OTP option instead (ChatGPT, Claude, and many others email you a 6-digit code — no password, one time only).
  • WhatsApp — scan the QR code with your phone, as usual.

Why you can't reuse your Edge/Chrome logins: the sidebar is its own browser with its own cookie storage. Browsers never share sessions with other apps — that's a web security rule, not a limitation of this app.


14. Troubleshooting

Problem Fix
A site shows a blank/white panel Right-click its icon → Reload App. If it persists: tray → Troubleshoot → Open DevTools and check the Console tab for errors.
A site is stuck on an old/broken page Right-click icon → Reload App (clears the remembered deep link).
Alt+S / Alt+1-3 don't work Another app has grabbed the shortcut. Close the conflicting app (the browser extension version of this sidebar uses the same keys).
Site demands "download the app" / blocks phone view Right-click icon → Switch to Desktop Version.
Terminal shows red stun.cloudflare.com errors Harmless — that's WhatsApp preparing voice-call support and your network blocking STUN. Chats work fine; only in-sidebar voice/video calls would be affected.
Sidebar disappeared It's in the system tray (check the ^ overflow near the clock). Left-click the tray icon.
Start completely fresh Quit the app, delete %APPDATA%\custom-edge-sidebar-desktop\sidebar-store.json, start again (defaults return). To also wipe logins, delete the whole %APPDATA%\custom-edge-sidebar-desktop folder.
Packaging fails after upgrading Electron npm i -D electron-builder@latest

The app writes crashes and page-load failures to %APPDATA%\custom-edge-sidebar-desktop\debug.log (tray → Troubleshoot → Open debug log).


15. Where Your Data Lives

Everything is local — nothing is sent anywhere.

Data Location
Apps, order, icons, settings, deep links %APPDATA%\custom-edge-sidebar-desktop\sidebar-store.json
Logins / cookies / site data %APPDATA%\custom-edge-sidebar-desktop\Partitions\apps\
Debug log %APPDATA%\custom-edge-sidebar-desktop\debug.log

Architecture (for developers)

  • main.js — Electron main process: window docking/resize, one WebContentsView per app (partition persist:apps), tray, global shortcuts, deep-link tracking, favicon auto-update, per-app mobile UA, Google-login user-agent handling, localhost bridge (port 8971) for the browser extension, and the UI-Automation-based "+ add current tab".
  • preload.js — the safe IPC bridge exposed to the strip UI as window.electronAPI.
  • src/strip.html / strip.js / styles.css — the icon strip UI: rendering, drag & drop, context menu, modals, themes.
  • store.js — minimal JSON file store.
  • assets/get-active-tab.ps1 — reads the active browser tab's URL via Windows UI Automation (used by the + button).

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages