Skip to content

Latest commit

 

History

1,751 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project is developed with the assistance of an LLM

MacSurf

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 rendering hackaday.com on a Power Macintosh G3 iMac
MacSurf 2.0.5 on a Power Mac G3 iMac, rendering hackaday.com at full desktop width over native HTTPS.


🆓 Free monthly stable

A tested build on macsurf.org, free for everyone, with real hardware testing behind it.

Next stable: TBA

⭐ Semi-Weekly, for supporters

In-progress builds land in Beta-Box every week, ahead of every stable release, with dev notes along the way.

Become a supporter →

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

Support on Ko-fi   Support on Patreon   Sponsor on GitHub

Follow along

Join our Discord   Follow on Bluesky

Thanks to our supporters: Mack Chamberlain, Chris Marks, Joseph Mulvaney, Shlooom, Kestral, Mothra (Patreon) · kilgeist, Turuun, Rogue (Ko-Fi)

The MacSurf 2.0 About box crediting supporters


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.

Why this exists

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.

Real sites, on real hardware

Every shot below is a live site, captured on a Power Mac G3 running Mac OS 9.2.2 with MacSurf 2.0.5.

hackaday.com
hackaday.com
A modern, JavaScript-heavy news site at full desktop width.
68kmla.org forum
68kmla.org
A full XenForo forum: logged in, full-width, correct text size.
macintoshgarden.org
macintoshgarden.org
Image-heavy and fully styled, over native HTTPS.
Hacker News
news.ycombinator.com
Hacker News: login and front page, no phantom boxes.

New in 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 →

New in 2.0

Type-ahead address bar
Type-ahead address bar
History- and bookmark-backed suggestions as you type.
History manager
History manager
Day-grouped, searchable, clearable. A real window.
Bookmark manager
Bookmark manager
Save, organize, and jump straight from the menu.
Earlier shots: the same sites on previous builds
68kmla.org forum
68kmla.org
Macintosh Garden
macintoshgarden.org
Macintosh Repository
macintoshrepository.org
Mac Hut
machut.net
Lobsters thread about MacSurf
lobste.rs
DuckDuckGo search
DuckDuckGo
How it got here: a couple of early milestones
JavaScript on Mac OS 9
v0.2: JavaScript on Mac OS 9
The first JS-bearing page evaluating live, on-device.
CSS Grid on Mac OS 9
CSS Grid
Real Grid layout: spans, full-row heroes, auto-wrap.

The pieces

ComponentLanguagePurpose
browser/ C (C89, CW8) NetSurf fork with a macos9 frontend. Carbon for the UI, QuickDraw for drawing, Open Transport for networking, macQJS for JavaScript.
macTLS
sibling 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.
macQJS
sibling repo
C (CW8) A QuickJS port for Classic Mac OS: modern ES2023 JavaScript on PowerPC.

What works today

Rendering

  • Full NetSurf fetch, parse, cascade, layout, plot
  • Native libcss with var(), about 150 properties consumed in layout
  • Flexbox, CSS Grid, gradients, border-radius, box-shadow, opacity, transforms, z-index stacking
  • PNG (real alpha), GIF, JPEG, BMP, TIFF
  • Downloadable web-font icon glyphs

Full status →

JavaScript, macQJS (QuickJS, ES2023)

  • let/const, arrows, classes, template literals, Promises, generators, modern regex
  • Runs real site bundles on-device

Networking

  • HTTP/1.1: chunked, keep-alive, 3xx follow, connection pooling
  • HTTPS via macTLS: TLS 1.3, 1.2 fallback, full CA bundle
  • Cookies and logins that persist

Chrome

  • Address bar, back / forward / reload / home, bookmarks menu, downloads manager
  • Text input: caret, selection, cut / copy / paste, Tab between fields
  • Multi-window, smooth scroll bar, keyboard scrolling

Download

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.

Building

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


For Gary & Kaija

About

A modern web browser for Classic Mac OS 9 PowerPC. Real CSS3, ES5 JavaScript, native HTTPS. Built with CodeWarrior on the Carbon API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

268 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages