Comfort Browser is an offline-first browser shell / tab workspace that runs entirely in your own browser. It's a single-page app that manages tabs, tab groups, split-screen tiling, bookmarks, notes, and sessions — loading web pages inside panes so you can arrange your browsing the way you like it.
Think of it as a customizable "browser inside your browser": vertical tabs, Vivaldi-style tiling, focus-mode site blocking, a notes scratchpad, and saveable sessions — all local, no accounts, no server.
Internally the project is versioned as Convenience Browser v4 (the
ccb5:storage keys are from that lineage). "Comfort Browser" is the friendlier public name for the same thing.
Comfort Browser is a frontend shell, not a real browser engine. It does not render pages itself — it loads them in <iframe> panes. This has one big, unavoidable consequence:
Many major sites refuse to load in an iframe. Google, YouTube, most banks, X/Twitter, and lots of others send an X-Frame-Options / CSP header that blocks embedding. Those sites will show a blank or refused pane — that's the site's choice, not a bug in Comfort Browser. For those, use the ↗ "Open in real browser tab" button.
So Comfort Browser is best understood as:
- A tab/workspace manager and layout tool for the sites that do allow embedding
- A neat local dashboard with split view, notes, bookmarks, and sessions
- A fun experiment in building a browser-like UI from scratch
It is not a replacement for a real browser, and it can't bypass a site's embedding rules (nothing frontend can).
Comfort Browser is stable and usable, and it's the one project in the family I might develop further in the future — but not right now.
For the moment it's feature-complete for what it is. You may encounter:
- Sites that won't embed (see above — that's the headline limitation)
- iframe-related quirks (audio can't be truly muted, some features limited in frames)
- Browser-specific behavior
If you'd like to build on it, fork away — I may return to it later.
Created and directed by me, a human. Most of the code was generated with Microsoft Copilot Thinking Mode, with occasional input from other Copilot modes.
My role was designing the features, testing, reviewing behavior, and directing the UI/UX. I know very little about traditional software development, so if you open the code and find something odd, please have mercy.
The internals are compact — index.html + app.js + style.css. The JS is written in a dense, terse style (lots of one-liners), so it's small but reads like it's in a hurry. It works; it just has opinions.
Download all three files and keep them in the same folder:
index.htmlapp.jsstyle.css
Then open index.html in a browser.
Preferably use a Chromium-based browser (Chrome, Edge, Brave, Vivaldi). Everything works most predictably there.
Note: because it relies on iframes, running it from a proper browser tab (not inside another sandboxed embed) gives the best results.
- Open
index.html. - You'll land on a custom homepage. Type a URL or search in the address bar and hit ↵.
- Open more tabs with + (top) — or switch to vertical tabs with the ▤ button.
- Turn on Tile to split the screen into 2–4 panes and browse side-by-side.
- Use the ☰ notes panel to jot things down and save your session so it's there next time.
- If a site refuses to load, click ↗ to open it in a real browser tab.
- Standard top tab strip and optional vertical tabs
- Tab groups (create named groups, switch between them)
- Split tiling — 2, 3, or 4 panes at once (Vivaldi-style), with a draggable resize gutter for 2-pane
- Drag tabs between panes
- New-tab buttons in both the top strip and the vertical rail
- Omnibox (address bar) that detects URLs vs. searches
- Configurable search engine (Google, Bing, DuckDuckGo, or custom
%sURL) - Back / forward / reload per tab (with per-tab history)
- Custom homepage (
chrome://homestyle landing page with shortcuts)
- Bookmark the current page (☆)
- Bulk bookmark editor (☷) — one
Name | URLper line - Right-click a bookmark to remove it
- Focus mode — block distracting domains (e.g.
tiktok.com) with an "open anyway" escape hatch - Soft mute / cover — a visual attention-cover for a pane (note: frontend JS can't truly mute arbitrary iframe audio, so this is a visual cover, honestly labeled as such)
- Side notes panel (autosaving scratchpad)
- Save / Load session (tabs, groups, layout, notes) to localStorage
- Export / Import session as a JSON file — move your whole setup between devices
- Auto-restores your last session on reopen
- Screenshot / screen capture (via the screen-capture API)
- Fullscreen
- Light Chrome-style theme + a Vivaldi-ish accent mode
- Responsive layout (adapts for smaller screens)
- Ctrl/Cmd + T — new tab
- Ctrl/Cmd + W — close tab
- Ctrl/Cmd + L — focus address bar
- Ctrl/Cmd + D — toggle split tiling
- Ctrl/Cmd + E — toggle vertical tabs
- Ctrl/Cmd + B — toggle notes panel
- Ctrl/Cmd + M — soft mute / cover
- Ctrl/Cmd + S — save session
Everything is local. Comfort Browser stores your preferences, bookmarks, notes, and sessions in localStorage (keys prefixed ccb5:). It has no backend, sends no telemetry, and can't see the contents of the pages loaded in its iframes.
Because it's browser storage, the usual caveats apply — clearing site data, switching browsers, or privacy settings can wipe your saved sessions. Export a session to JSON if you want a real backup.
Find the license in LICENSE I guess.
Part of the Navi family of local browser tools (alongside NaviWriter, NaviPlayer, and NaviPlayer Pro), even though this one browses instead of playing media. 🌐