Refrax
my Arc Browser replacement I made from scratch
Details
- External ID
- 47483155
- Source
- HN
- Company
- —
- Product
- Refrax
- Website domain
- refrax.website
- Launched
- March 22, 2026
- Cohort
- —
- Upvotes
- 12
- Upvotes percentile
- 0.6439114391143912
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:26 p.m.
- Updated at
- Sept. 7, 2026, 9:26 p.m.
Description
Open the same tab in two browser windows. In Chrome or Safari, you get two unconnected pages. In Arc, one window shows a placeholder. In Zen, it silently creates a duplicate.In Refrax, the browser I built, both windows show the same page updating live. The same web page, in as many windows as you want.This shouldn't be possible. WebKit's WKWebView can exist in exactly one view hierarchy at a time. With macOS 26, Apple added a SwiftUI API separating WebView from WebPage, so you can end up with multiple views referencing the same page. But if you try it, your app crashes. WebKit source code has a precondition with this comment: "We can't have multiple owning pages regardless, but we'll want to decide if it's an error, if we can handle it gracefully, and how deterministic it might even be..."So here's how I did it.CAPortalLayer is an undocumented private class that's been in macOS since 10.12. It mirrors a layer's composited output by referencing the same GPU memory, not copying it. Every scroll, animation, or repaint reflects instantly. This is what powers Liquid Glass effects, the iOS text selection magnifier, and ghost images during drag and drop. Apple uses portals for effects. I use them to put the same web page in two windows.Refrax keeps one real WKWebView per tab and displays a CAPortalLayer mirror everywhere else. When you click a different window, the coordinator moves the real view there and the old window gets a portal. You can't tell which is which.This sounds simple in theory, but making this actually work seamlessly took quite a lot of effort. Each macOS window has its own rendering context, and the context ID updates asynchronously, so creating a portal immediately captures a stale ID and renders nothing. The portal creation needs to be delayed, but delaying creates a visual gap. I capture a GPU snapshot using a private CoreGraphics function and place it behind the portal as a fallback. Another hard part is that none of it is documented. Portals are very capricious and would crash the app if you use them incorrectly. I had to inspect the headers and then disassemble the binaries to explore exactly how it works in order to build something robust.I never worked on a browser before this, I've only been a user. I started using Arc in 2022. I remember asking for an invite, learning the shortcuts, slowly getting used to it. I didn't like it at first as it had too much Google Chrome in it for my taste, and I'd been using Safari at the time. But it grew on me, and by the time it was essentially abandoned and sold to Atlassian, I couldn't go back to Safari anymore. I tried everything: Zen, SigmaOS, Helium. None felt right, and I didn't want another Chromium fork. WebKit ships with the OS, but all you get is the rendering engine. Tabs, history, bookmarks, passwords, extensions, everything else has to be made separately. And so, being a very reasonable person, I decided to make my own Arc replacement from scratch.And I did. Refrax is built in Swift and Objective-C with no external dependencies. The app itself is less than 30 MB. I have 393 tabs open right now using 442 MB of RAM; 150 tabs in Safari was already over 1 GB. I've been using it daily for over a month, and so have some of my friends.The portal mirror is just one feature. The same approach, finding what Apple built for themselves and using it to create something they didn't think about, runs through the entire browser. You can tint your glass windows with adjustable blend modes and transparency. The sidebar in compact mode samples the page and matches the colors. And it has support for Firefox and Chrome extensions.The alpha is public. Download from the linked website, enter REFRAX-ALPHA-HACKERNEWS to activate. No account needed. Telemetry is crash reports and a daily active-user ping, nothing else. And if you find a bug – I built this alone, so I'll actually read your report.
Enrichment
- Theme
- cross-device control and OS utilities
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- B2C
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- browser built from scratch
- Manually corrected
- False
Could you build this?
Partial Scaffolding a basic macOS WebKit wrapper is achievable, but implementing live state synchronization across multiple windows, extensions, and password autofill requires deep native systems programming.
What it would actually take: The architecture involves a native Swift/AppKit application wrapping Apple's WebKit framework. The difficult components include synchronizing live DOM and session state across multiple WKWebView instances without reloading or duplicating tabs, building a custom extension runtime, and integrating with macOS Keychain and AppKit window managers. This demands specialized native macOS development and deep familiarity with WebKit internals.
Discussion
8 comments analyzed.
Competitors mentioned: Arc browser, Dia browser
Concerns raised: Security concerns with CLI installation, Long-term maintenance and security patch handling, Should be open source to gain developer adoption, Non-developer audience won't care without open source
Feature requests: iCloud syncing (already noted as implemented), Open source the project
Competitors
Other products that read as similar to this one — 43 launches clear the similarity bar, closest 8 shown.
Attention rank: #24 of 44 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 110 days after the earliest competitor.
- Arcmark · hn · 2026-02-14 · 94 upvotes · similarity 0.45
- SplitWeb · ph · 2026-09-12 · 2 upvotes · similarity 0.42
- WindowReturn · ph · 2026-09-17 · 2 upvotes · similarity 0.41
- Web Frames · ph · 2026-09-18 · 1 upvotes · similarity 0.40
- Coii Ref · ph · 2026-09-22 · 1 upvotes · similarity 0.39
- Split · ph · 2026-09-25 · 57 upvotes · similarity 0.39
- Parall · ph · 2026-09-24 · 79 upvotes · similarity 0.39
- I reverse engineered Apple's video wallpapers · hn · 2026-05-20 · 428 upvotes · similarity 0.39
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.