Firn
Calm native Mac browser on WebKit: vertical tabs, per-space sign-ins, Lookout previews, split view.
Firn is a free, open-source Mac browser written in Swift, SwiftUI and WebKit by David Wurgler. It borrows ideas from Arc, Dia and Zen but keeps things simple: a vertical sidebar, Spaces that are each their own browser (separate tabs, cookies, sign-ins and history unless you choose to share), Basecamp tiles, flat tab groups, Lookout link previews, two-pane split view and a command bar. Idle tabs are tidied away, ads and trackers are blocked by default, and it can import Arc spaces, favorites and pinned tabs. There are no accounts, no telemetry and no extensions. An earlier Electron/Chromium Firn was retired in October 2026 and its data does not carry over.
52% Arc feature parity (yes = 1, partial = ½).
No AI
No AI features; an on-device Apple-model helper is only an undecided idea in the design notes.
github.comNot counted in Arc parity: some people want AI, some avoid it.
None found
No accounts, analytics or crash reports; ads and trackers are blocked. Update checks stay off until you say yes on the second launch.
github.comAds, crypto, paid upsells, news feeds, default-on telemetry, required accounts.
Organization
| Feature | Firn | Arc | Note |
|---|---|---|---|
| Vertical sidebarTabs live in a vertical sidebar that is the main tab UI and can be hidden. | ✓ | ✓ | Vertical tab list is the only tab UI; sidebar collapses and peeks at the left edge.github.com |
| SpacesSeveral workspaces per window, each with its own pinned and open tabs, switched by swipe or shortcut. | ✓ | ✓ | Each space has its own Basecamp tiles, groups, tabs and colour; ⌃1–9 switches.github.com |
| Profiles per Space (shareable)Each Space can use its own browser profile (separate cookies, logins, history), and one profile can be shared by several Spaces. | ✓ | ✓ | Each space gets its own WebKit data store; a new space can instead share another space's sign-ins.github.com |
| Global favoritesPinned icons at the top of the sidebar shared by every Space (Zen calls them Essentials). | ◐ | ✓ | Basecamp tile grid (max 12) at the top of the sidebar, but different in every space.github.com |
| Pinned tabs & foldersPer-space pinned tabs that act like bookmarks, with nested folders. | ◐ | ✓ | Per-space Basecamp tiles and flat groups that never auto-tidy; no nested folders.github.com |
| Auto-archive tabsUnpinned tabs close automatically after a set time and stay recoverable in an archive. | ✓ | ✓ | Idle loose tabs move to Tidied away after 1, 7 (default) or 30 days of use, or never; kept 30 days.github.com |
| Space themesPer-space colour or gradient themes. | ✓ | ✓ | Each space has one of 8 colours that tints the frame and welcome; no gradients or custom colours.github.com |
Browsing
| Feature | Firn | Arc | Note |
|---|---|---|---|
| Split ViewTwo or more tabs side by side in one window. | ◐ | ✓ | Two pages side by side only, with a draggable divider (30–70%).github.com |
| Link previewOpen a link in an overlay without leaving the current page (Zen calls it Glance). | ✓ | ✓ | Lookout: Shift-click a link opens a floating preview that can be kept as a tab.github.com |
| Mini windowA small, chrome-less window for links opened from other apps or a quick search. | ✕ | ✓ | Listed under "Deliberately not doing"; links from other apps open as a tab in the main window.github.com |
| Command barA ⌘T palette that searches tabs, history, bookmarks and browser commands. | ✓ | ✓ | ⌘T bar searches open tabs, tidied and closed tabs, history and actions by name.github.com |
| Link routingRules that send links from other apps to a chosen space or profile. | ◐ | ✓ | External links open in the space last used; no per-site rules.github.com |
| Site customizationPer-site custom CSS/JS, or zapping elements off a page. | ✕ | ✓ | Boosts are listed under "Deliberately not doing".github.com |
| Auto picture-in-picturePlaying video pops out into picture-in-picture automatically when you switch tabs. | ✕ | ✓ | No picture-in-picture code; the mini player only plays or pauses a tab's audio.github.com |
Compatibility & migration
| Feature | Firn | Arc | Note |
|---|---|---|---|
| Arc importImports Arc spaces, pinned tabs and folders. | ✓ | – | Reads StorableSidebar.json: spaces, favorites and pinned tabs; nested folders flatten to groups.github.com |
| Chrome extensionsInstalls extensions from the Chrome Web Store. | ✕ | ✓ | WebKit app with no extension support; extensions are only a research item.github.com |
| DRM (Widevine)Netflix, Disney+, Spotify web and other DRM video/audio play. Chromium forks need a Google Widevine licence. | ? | ✓ | |
| PasskeysWebAuthn passkeys, Touch ID and the system/iCloud keychain. | ? | ✓ | |
| SyncSpaces, pinned tabs and settings sync across devices. | ✕ | ✓ | No sync; the data model is sync-ready but sync is an open question.github.com |
| Mobile appiPhone, iPad or Android app that shares spaces with desktop. | ✕ | ◐ | Mac only in 1.0.1; iOS is planned ("iOS later") and not in a release.github.com |
Extras
| Feature | Firn | Arc | Note |
|---|---|---|---|
| Built-in ad blockerAd and tracker blocking without installing an extension. | ✓ | ✓ | Built-in EasyList and EasyPrivacy blocking, on by default, switchable per site.github.com |
Extension support
Which extension formats and stores run, beyond the Chrome Web Store row above. Not counted in Arc parity.
| Feature | Firn | Arc | Note |
|---|---|---|---|
| Manifest V2 extensionsThe older extension format Chrome removed in 2025. Needed for full uBlock Origin and other extensions that block requests. | – | ✕ | WebKit app with no extension support; extensions are only a research item.github.com |
| Manifest V3 extensionsThe current extension format used by the Chrome Web Store (and supported by Firefox and Safari). | – | ✓ | WebKit app with no extension support; extensions are only a research item.github.com |
| Firefox add-onsAdd-ons from addons.mozilla.org or .xpi files install and run. | – | ✕ | WebKit app with no extension support; extensions are only a research item.github.com |
| Safari extensionsSafari web extensions (the App Store extension apps Safari uses) install and run. | – | ✕ | WebKit app with no extension support; extensions are only a research item.github.com |