Skip to content

mplsllc/macsurf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,374 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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: August 22, 2026

⭐ 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: 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

License

Code of conduct

Contributing

Security policy

Stars

252 stars

Watchers

6 watching

Forks

Contributors