Macsurf, "modern" web browser for macOS 9
Recorded: May 30, 2026, 2:03 p.m.
| Original | Summarized |
GitHub - mplsllc/macsurf: A modern web browser for Classic Mac OS 9 PowerPC. Real CSS3, ES5 JavaScript, native HTTPS — built with CodeWarrior on the Carbon API. · GitHub Skip to content Navigation Menu Toggle navigation
Sign in
Appearance settings PlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub SparkBuild and deploy intelligent appsGitHub ModelsManage and compare promptsMCP RegistryNewIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityAcceleratorGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricing Search or jump to... Search code, repositories, users, issues, pull requests...
Search Clear
Search syntax tips Provide feedback Include my email address so I can be contacted Cancel Submit feedback Saved searches
Name Query To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up
Appearance settings Resetting focus You signed in with another tab or window. Reload to refresh your session. Dismiss alert mplsllc macsurf Public
Notifications
Fork
Star Code Issues Pull requests Discussions Actions Projects Security and quality Insights
Additional navigation options
Code Issues Pull requests Discussions Actions Projects Security and quality Insights
masterBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History830 Commits830 Commits.github/ISSUE_TEMPLATE.github/ISSUE_TEMPLATE .vscode.vscode browserbrowser buildsbuilds docsdocs forclaudeforclaude imgimg macLinkmacLink proxyproxy screenshotsscreenshots scriptsscripts teststests toolstools .gitignore.gitignore Access Paths.xmlAccess Paths.xml CLAUDE.mdCLAUDE.md CODE_OF_CONDUCT.mdCODE_OF_CONDUCT.md CONTRIBUTING.mdCONTRIBUTING.md CSS_IMPLEMENTATION_PLAN.mdCSS_IMPLEMENTATION_PLAN.md CSS_SUPPORT_MATRIX.mdCSS_SUPPORT_MATRIX.md GEMINI.mdGEMINI.md LICENSELICENSE MacSurf.sitMacSurf.sit README.mdREADME.md SAFETY_REPORT.mdSAFETY_REPORT.md SECURITY.mdSECURITY.md mactrovesource.txtmactrovesource.txt puffpuff.pngpuffpuff.png View all filesRepository files navigationREADMECode of conductContributingLicenseSecurity The modern web, on a 25-year-old Mac. MacSurf is a web browser for Classic Mac OS 9 PowerPC. CSS3, ES5 JavaScript, PNGs with alpha, running on a G3 iMac. WarningMacSurf is early alpha. It runs, it renders, it talks TLS 1.2 natively to real HTTPS sites (as of May 2026), and it executes JavaScript on a 233 MHz G3. That doesn't mean it's ready for daily driving — most of the modern web still won't work in it. Heavy SPAs, modern CSS features we haven't shipped, missing form interactions, slow JS on real hardware. Plenty is rough. Why this exists The progression v0.2: JavaScript on Mac OS 9 fixes73: CSS transforms fixes74d: radial gradients fixes77: CSS animations fixes79b: PNG transparency fixes136: word-break / overflow-wrap fixes147: stacking contexts fixes151: CSS Grid column placement v1.0: Showcase The pieces ComponentLanguagePurpose browser/ proxy/ macTLSsibling repo What works today Rendering pipeline Full NetSurf fetch → parse → cascade → layout → plot CSS — around 150 properties consumed in layout Custom properties and var() Full CSS status → JavaScript — Duktape 2.7.0, full ES5 Closures, prototypes, regex, JSON Images — all five formats PNG with real per-pixel alpha (lodepng + CopyMask) Networking Open Transport TCP, plain non-InContext calls Browser chrome Address bar, back / forward / reload / home Download MacSurf.sit — the v1.3.1 binary, ready to run. Expand on Mac OS 9.1+ with CarbonLib 1.5+ and launch. Earlier alpha notes if you want context: docs/release-notes/MacSurf-0.1a1.md. Getting started Building the browser Mac-side build guide Running the proxy About A modern web browser for Classic Mac OS 9 PowerPC. Real CSS3, ES5 JavaScript, native HTTPS — built with CodeWarrior on the Carbon API. macsurf.org Topics javascript css3 duktape web-browser powerpc macintosh quickdraw carbon-api codewarrior retro-computing bearssl netsurf open-transport mac-os-9 classic-mac Resources Readme View license Code of conduct Code of conduct Contributing Contributing Security policy Security policy Uh oh! There was an error while loading. Please reload this page. Activity 87 6 4 Report repository Releases MacSurf v1.3.1 — Forward, refined Latest Packages
Uh oh! There was an error while loading. Please reload this page. Contributors Uh oh! There was an error while loading. Please reload this page. Languages C HTML CSS C++ Logos RPC Other
Footer © 2026 GitHub, Inc. Footer navigation Terms Privacy Security Status Community Docs Contact Manage cookies Do not share my personal information You can’t perform that action at this time. |
MacSurf is presented as a modern web browser designed specifically for Classic Mac OS 9 PowerPC systems. The project aims to bring modern web standards, such as CSS3, ES5 JavaScript, and native HTTPS capabilities, to this legacy hardware, developed using tools like CodeWarrior and the Carbon API. Although currently in an early alpha stage, the project demonstrates significant progress, offering a foundation for exploring the limits of web rendering on vintage systems. The development philosophy centers on making the modern web accessible on machines like a G3 or G4, addressing the issue that modern web features often outpaced the capabilities of Classic Mac OS. The core functionality of MacSurf relies on a specific technological stack. The browser itself is built in C89, utilizing the Carbon API for the user interface, QuickDraw for rendering, and Open Transport for networking. A critical component is the macTLS library, which provides a native implementation of TLS 1.2, leveraging the BearSSL stack with 121 trust anchors baked into the binary, thereby enabling native HTTPS communication without relying on external proxies. This development has progressed to support TLS 1.3, incorporating multi-curve ECDHE support, including X25519, secp256r1, and secp384r1, which allows it to interface with modern security protocols. The rendering pipeline integrates native CSS layouts, which has been substantially enhanced through iterative development. MacSurf successfully implements features like CSS Grid, CSS custom properties with variable resolution, transforms (rotate, scale, translate), layout properties such as Flexbox alignment, and advanced styling like box-shadow and gradients. Furthermore, the project successfully incorporates real-time JavaScript execution using Duktape 2.7.0, enabling complex logic involving closures, prototypes, regular expressions, and the implementation of Promises. Image handling is also a feature, with support for rendering PNGs with per-pixel alpha, GIFs, JPEGs, BMPs, and TIFFs. The evolutionary progression of MacSurf highlights specific milestones in feature implementation. Early versions focused on foundational elements like executing JavaScript on Mac OS 9 and implementing native CSS transforms and radial gradients. Subsequent versions focused on advanced layout structures, such as implementing CSS Grid positioning and stacking contexts based on CSS 2.1 painting order, as well as handling modern text layout features like word-break and overflow wrapping. Recent updates, such as version 1.3.1, focused heavily on advancing the networking layer by incorporating native TLS 1.3 features, ensuring secure, direct communication with the web, which was previously dependent on external proxy methods. The project’s architecture includes a separate Go binary acting as an HTTP proxy, although the native macTLS implementation has largely superseded the need for this external component. The build process involves cross-compilation against the Retro68 PowerPC GCC, which contributes to the project's cross-platform nature. In summary, MacSurf represents an ambitious effort to merge modern web technologies with the constraints of legacy hardware, demonstrating success in implementing a rich set of web standards directly on Classic Mac OS 9 with native security and layout capabilities. |