The modern web, on a 25-year-old Mac.
A native web browser for Classic Mac OS 9 on PowerPC: real CSS3, modern JavaScript, and HTTPS, running on a G3 iMac. No proxy, no second machine.
MacSurf 2.0.5 on a Power Mac G3 iMac, rendering hackaday.com at full desktop width over native HTTPS.
|
A tested build on macsurf.org, free for everyone, with real hardware testing behind it. Next stable: August 22, 2026 |
In-progress builds land in Beta-Box every week, ahead of every stable release, with dev notes along the way. |
Every project stays free as source. Build it yourself and you never need Beta-Box. You are paying for the build and the cadence, not for access.
Support development
Follow along
Thanks to our supporters: Shlooom, Kestral, Mothra (Patreon) · kilgeist, Turuun, Rogue (Ko-Fi)
Note
2.0.5 "HACKADAY" is a polish release over 2.0: point it at hackaday.com and the front page renders at real desktop width, with the right fonts and the article cards laid out. Under that headline is a browser-wide text-size fix (author font-size was drawing about 25% too small, which is why so many sites came up cramped), a large modern-CSS pass, a more capable on-device JavaScript engine, and tracker/ad-network blocking. It is still at its best on hand-built pages, retro sites, and forums. Very heavy modern apps (GitHub, video, React-heavy SPAs) still do not render. This is honest, in-progress software. Got a G3 or G4? Load it up and tell us what breaks. See docs/status.md for the current punch list.
The web outgrew Classic Mac OS twenty years ago, and modern HTTPS finished the job around 2016. Pull a G3 or G4 out of the closet today and it can barely reach a single live site.
MacSurf fixes that on the machine itself, with no screenshot proxy and no remote-terminal trick. It is a native browser built with the tools that shipped on the platform: CodeWarrior, Carbon, QuickDraw, Open Transport. It speaks TLS 1.3 straight to the modern web through macTLS, a BearSSL-based stack baked into the binary with the full Mozilla CA bundle, and runs modern JavaScript through macQJS, a QuickJS port for Mac OS 9.
As far as we can tell, it is the first serious NetSurf port to Classic Mac OS, and the first Mac OS 9 browser with native CSS Grid, CSS custom properties, and an on-device modern JavaScript engine.
Every shot below is a live site, captured on a Power Mac G3 running Mac OS 9.2.2 with MacSurf 2.0.5.
The headline is hackaday.com rendering at full desktop width (shown above): correct type, article cards, and images in place.
Under it: text is measured in real device pixels (author font-size no longer draws 25% too small), a large modern-CSS pass (justified text, soft hyphens, logical properties, box-alignment shorthands, grid auto-sizing), a more capable JavaScript engine (real fetch/XHR, resolving Promise chains, DOM traversal, document.cookie), and tracker/ad-network blocking. Full 2.0.5 notes →
Earlier shots: the same sites on previous builds
![]() 68kmla.org |
![]() macintoshgarden.org |
![]() macintoshrepository.org |
![]() machut.net |
![]() lobste.rs |
![]() DuckDuckGo |
How it got here: a couple of early milestones
![]() v0.2: JavaScript on Mac OS 9 The first JS-bearing page evaluating live, on-device. |
![]() CSS Grid Real Grid layout: spans, full-row heroes, auto-wrap. |
| Component | Language | Purpose |
|---|---|---|
browser/ |
C (C89, CW8) | NetSurf fork with a macos9 frontend. Carbon for the UI, QuickDraw for drawing, Open Transport for networking, macQJS for JavaScript. |
macTLSsibling repo |
C (CW8) | Native TLS 1.3 (1.2 fallback) for OS 9: HTTPS straight from the Mac. BearSSL underneath, full Mozilla CA bundle baked in. |
macQJSsibling repo |
C (CW8) | A QuickJS port for Classic Mac OS: modern ES2023 JavaScript on PowerPC. |
|
Rendering
|
JavaScript, macQJS (QuickJS, ES2023)
Networking
Chrome
|
MacSurf 2.0.5 "HACKADAY" (2026-07-17). See what changed in the full release notes → or the 2.0 notes →.
- Download the .sit →: expand with StuffIt Expander on Mac OS 9.1+ (CarbonLib 1.5+) and double-click. No installer.
- Already on a Mac OS 9 machine? Grab it from the plain-HTTP macsurf.org, since GitHub does not render on-device yet.
- All releases →
Want the builds between releases? Weekly in-progress builds land in Beta-Box for supporters, ahead of every stable release.
MacSurf builds on Mac OS 9 with CodeWarrior 8 Pro (8.3 update). The source is cross-compile-clean against Retro68 PowerPC GCC, which we use for fast Linux-side syntax checks.
Native HTTPS via macTLS · JavaScript via macQJS · built on NetSurf · intro video

















