68kMLA Classic Interface

This is a version of the 68kMLA forums for viewing on your favorite old mac. Visitors on modern platforms may prefer the main site.

Click here to select a new forum.
MacSurf — a real NetSurf-based browser for Mac OS 9 (CSS3, ES5 JS, native HTTPS)
Posted by: ptricky on 2026-05-20 20:02:44
Hi all,
I've been working on a browser for Mac OS 9 and figured it was time to put it in front of people who'd actually run it. It's called MacSurf.

Site: https://macsurf.org
Source: https://github.com/mplsllc/macsurf

It's a NetSurf fork with a new macos9 frontend. Carbon UI, QuickDraw plotters, Open Transport networking, Duktape for JavaScript. Built with CodeWarrior 8. Target hardware is a PowerPC G3/G4 with 64 MB of RAM.

Where it is right now:
  • Full NetSurf fetch → parse → cascade → layout → plot pipeline
  • Around 150 CSS properties consumed in layout, including Grid V1, Flex, var(), border-radius, box-shadow, opacity, linear/radial gradients, transforms, text-shadow, and z-index stacking
  • libcss with var() resolution; QuickDraw plotters drawing into an offscreen GWorld back-buffer
  • Duktape 2.7.0 ES5 — closures, prototypes, regex, JSON, Promise polyfill. ackermann(3,7) runs in about 6 seconds on a 233 MHz G3.
  • PNG with alpha plus the other usual formats
  • Cooperative-multitasking networking via Open Transport.
There are three pieces in the repo:
  • browser/ — the NetSurf fork and the macos9 frontend (C89, CW8)
  • proxy/ — a small Go HTTP-to-HTTPS proxy, stdlib only, one binary, no config. The Mac talks plain HTTP to it and it handles TLS to the outside world. Useful if you don't want to deal with TLS on the Mac itself.
  • macSSL (sibling repo) — a native TLS 1.2 library for OS 9 on top of BearSSL, with ten embedded root CAs, so the browser can do HTTPS directly without the proxy.
Prebuilt MacSurf.sit and a MacSurf-BuildPack.sit are in builds/ in the repo. There's also a Linux cross-dev workflow in the docs if you'd rather not build inside CodeWarrior. License is GPLv2 (NetSurf derivative, with the OpenSSL linking exception).

Things are still rough in plenty of places and I'd really value feedback from people running it on real hardware, what sites work, what blows up, what looks wrong. Bug reports and screenshots welcome, here or on GitHub.

Thanks for taking a look.
Posted by: greystash on 2026-05-20 20:18:31
Wow this is an AMAZING project!! I just had a quick try and it's very impressive, especially the flexbox and CSS3 support. Well done, I can't wait to see this progress!
Posted by: ptricky on 2026-05-20 20:20:08
That was fast! Websites obviously don't load perfectly at the moment but I'm slowly but surely getting through CSS elements.
Posted by: greystash on 2026-05-20 20:34:26
What does work already is crazy impressive! I had a few crashes with JS heavy sites e.g. Google, Apple, but otherwise it's a massive upgrade already compared to the existing browsers available on these systems
Posted by: ptricky on 2026-05-20 20:40:33
Awesome, glad to have eyes other than my own on it!

It went from "its not possible.." to "ok maybe a basic browse but no javascript.. no real css.."

Anyway, it's clear that a lot is possible and I am not assuming anything is impossible and push what it can display before assuming anything. I've been doing about 5-6 hrs a day on it the past month and a half so it's been serious work!

I'm also working on standalone TLS, which has also been proven, so I fully expect macsurf to load most sites on its own without a proxy server in the future.
Posted by: ptricky on 2026-05-20 20:42:21
Awesome, glad to have eyes other than my own on it!

It went from "its not possible.." to "ok maybe a basic browse but no javascript.. no real css.."

Anyway, it's clear that a lot is possible and I am not assuming anything is impossible and push what it can display before assuming anything. I've been doing about 5-6 hrs a day on it the past month and a half so it's been serious work!

I'm also working on standalone TLS, which has also been proven, so I fully expect macsurf to load most sites on its own without a proxy server in the future.
** Do note the proxy is on a Hetzner server so if google speaks to your in German that's why.
Posted by: greystash on 2026-05-20 20:48:01
It absolutely shows! I'm surprised you've manage to squeeze so much modern functionality into this. I'll try to do some bug testing when I get a little more time 🙂
** Do note the proxy is on a Hetzner server so if google speaks to your in German that's why.
Haha that's good to know!
Posted by: treellama on 2026-05-21 04:15:55
Why would you remove CLAUDE.md before posting this? Do you think it isn’t obvious?
Posted by: cheesestraws on 2026-05-21 05:14:16
bugger-this.PNG
Posted by: finkmac on 2026-05-21 05:50:19
1779367587381.png

trying to hide the machine that made it eh? that's a new low.
Posted by: luRaichu on 2026-05-21 05:55:06
At least it isn't a program that matters
Posted by: ArbysTPossum on 2026-05-21 06:55:59
Will this be or eventually be a competent replacement to Classizilla? It's a bit of a pig, so anything that runs in a smaller footprint would be neat.
Posted by: Nixontheknight on 2026-05-21 11:25:09
Will this be or eventually be a competent replacement to Classizilla? It's a bit of a pig, so anything that runs in a smaller footprint would be neat.
Same, would be cool to replace the aging Classilla
Posted by: ptricky on 2026-05-21 12:28:47
Will this be or eventually be a competent replacement to Classizilla? It's a bit of a pig, so anything that runs in a smaller footprint would be neat.
Absolutely. I am spending most of my time currently working on load times and compatibility with modern CSS. I also have a companion application that is working to handle TLS so a proxy is not needed.
Posted by: ptricky on 2026-05-21 12:30:12
Why would you remove CLAUDE.md before posting this? Do you think it isn’t obvious?
There was no effort to remove evidence of using claude, I have no problem admitting I use AI considering this is a massive project for one person. The most likely reason was a cleanup process before making the repo live to ensure I didn't include anything that wasn't critical to the application working.
Posted by: ptricky on 2026-05-21 12:32:52
To everyone that is upset someone in 2026 is using AI to bring modern internet to an iMac you're free to go into the lab and create it yourself.

This was a project for personal satisfaction, so that my own old hardware could load modern websites. I thought it would be awesome to share, and all of my websites and software have the missions of data minimization and privacy. I spend a lot of time ensuring the products I release are safe and secure, and while that is not a guarantee for anything product, I do my best.
Posted by: ArbysTPossum on 2026-05-21 13:57:58
To everyone that is upset someone in 2026 is using AI to bring modern internet to an iMac you're free to go into the lab and create it yourself.

This was a project for personal satisfaction, so that my own old hardware could load modern websites. I thought it would be awesome to share, and all of my websites and software have the missions of data minimization and privacy. I spend a lot of time ensuring the products I release are safe and secure, and while that is not a guarantee for anything product, I do my best.
You are in competition with no one, in a niche sector of a niche hobby.

Will this only run on MacOS9? Or will it run on older MacOS versions? Something something libraries.
Posted by: ptricky on 2026-05-21 14:01:03
You are in competition with no one, in a niche sector of a niche hobby.

Will this only run on MacOS9? Or will it run on older MacOS versions? Something something libraries.
It depends on CarbonLib so no it won't work, in it's current state, on system 8 or 7. I've ran it on my minitower and iMac so that's they only reference I can give. I haven't yet tried on sheepshaver or QEMU.
Posted by: obsolete on 2026-05-21 14:06:41
CarbonLib 1.6 works back to OS 8.6 AFAIK.
Posted by: ptricky on 2026-05-21 14:10:20
CarbonLib 1.6 works back to OS 8.6 AFAIK.
Ok yeah, you are correct. I'll have to install 8.6 on a drive on my minitower and see what it can handle.

Most of the work right now is getting it load to all those large sites. It can kinda handle Wikipedia but that's probably the biggest site it seems to push through atm.
1 >