The modern web, on a 25-year-old Mac.
Submit logs directly from your mac! Link tested on IE 5 and Netscape 4.77/7. Also includes a link to a much more comprensive logger verson of MacSurf. - http://macsurf.org/debugs.html
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 on a Power Mac G3 iMac, rendering home.macsurf.org over native HTTPS.
MacSurf is a full-time project. If it brought your old Mac back to the web, a few dollars keeps development going — and you'll get the dev logs.
Thanks to our supporters: Shlooom, Kestral, Mothra (Patreon) · kilgeist, Turuun, Rogue (Ko-Fi)
Note
2.0 fixes the blank-screen bug on high-RAM Macs, loads a whole class of cross-signed HTTPS sites (macintoshgarden.org included), cuts heavy forums from minutes to seconds with lazy image loading, and adds a type-ahead address bar plus real History and Bookmark managers — all on the macQJS JavaScript engine and native TLS 1.3, on a 233 MHz G3. It's at its best on hand-built pages, retro sites, and forums. Very heavy modern apps — GitHub, video, React-heavy SPAs — still don't 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 — no screenshot proxy, no remote-terminal trick. It's 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's 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.
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 (2026-07-11) — the blank-screen fix for high-RAM Macs, cross-signed HTTPS (macintoshgarden.org and a whole family of sites), viewport lazy image loading (heavy forums load in seconds instead of minutes), a type-ahead address bar with a suggestions dropdown, real History and Bookmark manager windows, and a refreshed interface — all on native TLS 1.3 and the macQJS ES2023 JavaScript engine. Full release 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 — GitHub doesn't render on-device yet.
- All releases →
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

















