History of the Pale Moon project

1.5/2.0 era

This project started off as merely fiddling with the build process on Windows, seeing first off if (at the time just one person) it could be managed to make own Windows builds of the Firefox browser and then seeing how these builds compared to official ones. Finding the difference significant, the resulting browsers (simply "own Firefox builds") were given to a number of friends to use, with very positive results.
This was back in the time when Firefox was still in its 1.5.x stage.

3.x era

Since then, Firefox, Thunderbird and Seamonkey versions specifically for different systems were built, gaining experience, learning the quirks and following code development. Eventually, with Firefox 3.5.2, it was settled on what was an optimal compromise between speed, features and useability of the browser for general use. At that point in time, the Pale Moon project was given shape, releasing the highly optimized browser to the public from Oct 4th, 2009 onwards.

Since its release, it has become rather popular, with no less than 15,000 visits to the home page just in the first month of release. With many downloads from a wide range of locations, not all of them monitored or counted, it is anyone's guess how many people were actually using it, but it surpassed anything that was initially expected.

Feedback had been positive, and as a result of several requests from people, a second build version was created of Pale Moon, to cater specifically to the capabilities of Athlon XP and Athlon MP processors, still extremely popular processors for systems used at the time that could not meet the minimum processor requirements otherwise. Later on, a portable version was also created to allow people to take Pale Moon with them on USB stick or removable drives.

As the source code developed, so did Pale Moon, and a few major changes had been made with the transition from 3.5 to 3.6 versions and later on to separate Pale Moon installations from Firefox ones. Always attempting to strike a balance, some minor features were removed, and later added again; feedback from the users has always been taken into account, and the development of Pale Moon has therefore been given shape, in part, by its users.

4-20 era

When version 4.0 of the Firefox code arrived, after extensive betas, Pale Moon deviated further from its sibling by also making changes to the standard UI (User Interface) layout. UI design choices made to "innovate" the user interface, removing quite essential user feedback and changing the layout of navigation controls were considered to be poor choices, and were altered to provide a more familiar, and also more intuitive, interface to the browser.
At this point it was also decided to keep developing the 3.6.x branch separately, while version 4 and later became the "next generation" branch.

An accelerated major version release scheme was started on in early 2011, with ambitious plans by Mozilla to make faster changes to Firefox. When version 5.0 arrived, though, it turned out to be a release that could just as well have been numbered 4.1 or similar, as there was surprisingly little that had changed, apart from correcting some mistakes made in the implementation of 4.0. 5.0 can therefore best be considered a "bugfix release" of 4.0, and not really a new product.
Version 6.0 saw a similarly small amount of changes and both 5.0 and 6.0 have been considered to be a continuation of the "next generation" branch of the Firefox product started with version 4.0. As such, 4.0 and 5.0 were discontinued for Pale Moon. This trend was continued for later versions.

In Oct 2011, a new milestone was reached with Pale Moon 7: better resource use, faster code, and maturation of the code base to a level where 3.x now became depreciated in favor of this version - still, the old branch continued to be supported and developed because there was still a clear need for it, and remained the browser of choice for "special needs" environments.

From this point on, development on the Next Generation (versions 4 and up) branch continued, following Mozilla Firefox for most major releases, while the 3.6.x (Legacy) branch continued to see patches for bugfixes, security issues and some performance improvements, including continued support beyond Mozilla's EoL (End of Life) date for the 3.x branch. Inevitably, though, the older engine started falling terribly short of its intended purpose, and as more and more sites became problematic, the legacy branch was discontinued in the summer of 2012.

April 2012 saw another milestone with the release of version 12, at which point the release schedule stopped following Mozilla's rapid release schedule of Firefox. From this point on, development and release of Pale Moon became fully independent and more specifically aimed at refining the engine and features and implementing additional, Pale Moon specific features. Pale Moon diverged from its sibling with each release into a separate, independent browser not longer necessarily tied to Firefox code development or release, although a close parallel was maintained for extension compatibility by rebasing Pale Moon code on top of later Firefox versions.

24-26 era

With the release of Firefox 24 (and Pale Moon of the same version), Pale Moon's already divergent development direction started to more clearly separate from Firefox than it had already done before, by focusing much more strongly on individual development of interface, features and back-end, while adopting continued security updates through Firefox's ESR channel. After a year of this development (and turbulent times for Firefox with the growing dislike for the decisions made about the browser by their development and management teams), the decision was made for Pale Moon to completely and decisively break the existing direct ties with Firefox (in the form of how it identifies itself) and be a completely independent force on the browser market.
With Pale Moon 25 and later this brought us a fully independent browser product on a sharply diverging path.
With the 26.0 milestone, we changed to our own layout and rendering engine called Goanna, which has been forked off from Gecko, debuting in the Pale Moon 26 milestone release after more than 6 months in pre-release development. It should be noted that this was merely the culmination of on-going changes to the Gecko-named engine previously and that it had already developed in its own direction for some time (the first real split-off point of note was, in fact, with 24.6).

v27 era (code name "Tycho")

In 2016, a fresh fork point from mozilla-central code and subsequent individual development led to the release of the v27.* versions of Pale Moon, which in many ways laid the groundwork for the future in terms of a collection of components ready for re-use and re-application on UXP (see below). Tycho tackled many issues that were pivotal to the maturation of Pale Moon into a modern equal of what v24 started out as, matured Goanna through its 3.* versions, and uplifted all front-end code to be compatible with a much more JavaScript-heavy web. Many individual developments took place on v27, including an almost complete rewrite of the media back-end and many changes and improvements of the JavaScript engine to implement the many points of the (massive) specification called ECMAScript v6.

When we created Tycho (Pale Moon 27) from a hybrid of our own independent development being ported to a platform base of ESR38 plus the Pale Moon 24-26 application code, completely bypassing and removing the "native" Firefox application code that came with the esr38 tree, we expected that would be the last time we would do such a thing. We had a good foundation and retained practically all of Pale Moon as an application.

The reason we expected Tycho to be the last time was because by the next ESR Mozilla had planned to destroy enough of itself that the foundational technologies such as XUL, XBL, XPCOM would be a shadow of their former selves if not changed to a degree that was simply unuseable to anyone outside of MozCo, or simply gone and tossed into the void.

Obviously, this wasn't the case when we (or they!) thought it would be. ESR45 was largely okay but it wasn't enough to justify a jump in our eyes since so much more development on Tycho had happened since, especially in the media subsystem. Why throw that away?

Well, Mozilla has been known to take forever to do things, and the rapid release schedule they've been on since Firefox 4.0 never changed that; it just increased the pace of immature code changes being shipped out to end users, and not much else. Surely, the next ESR would be too damaged to use right? So Tycho continued the way it was developing.
Enter Firefox ESR52: more destruction happened and more co-op of fundamental technologies happened, but also some good CSS and JS support of a significant nature was present. Still, we didn't want to throw Tycho away so we continued on, back porting and continuing forward with our own independent development.

Despite the efforts and investments in Tycho, it ultimately took on a transitional position due to the fact that certain landmark features could not be ported from Mozilla because of lack of community involvement, making the browser lose some of its functional backbone required for a web landscape more and more built on limited, JS-heavy frameworks.

Interstitial: UXP and Basilisk

Firefox Quantum happened, along with the end to Mozilla-style extensions (XUL/toolkit/overlay, bootstrap, and jetpack). This raised an issue... Mozilla had finally begun the final destruction of their technology. All of it was now fair game. On one hand we were glad they were finally doing it without any further pretense, but on the other hand we were saddened by the tragic destruction without even the thinnest of hopes left that they may change course and avert it.

Moonchild decided that the Quantum and general extension refugees deserved a browser that, unlike Pale Moon, would stay much closer to what they had then and there. An Australis Firefox drop-in replacement. Many of this second major wave of Mozilla refugees were less likely to fit into the Pale Moon box and just wanted a then-current-day Firefox. Of course, the surface garbage like pocket and other Mozilla Service tie-ins would be scraped off. This became Basilisk.

With Basilisk came a platform, of course.
We knew we couldn't maintain two platform codebases in the long run, so the Möbius project started at the end of 2017, creating an independent application platform to be used as the basis for future Pale Moon versions and other XUL-based applications, called the Unified XUL Platform (UXP), with the intent to port Pale Moon to it as well just like we did with Tycho. However, in the meantime Basilisk and the Möbius platform needed to reach a polish level beyond Mozilla before that could happen.

Initially, we proceeded from a code standpoint of gecko/53 as a base, and backporting from 54 and 55 heavily. This is why Basilisk carried a Mozilla version number of 55 during that time. After some months, Basilisk was released but development continued.

With the dawn of 2018 came Tobin's resurgence in participation in the Pale Moon project, who previously conducted the primary vNext research that lead to inital porting up the line that helped make Tycho possible.
It was time to pull the same trick twice to bring Pale Moon to the new platform... but there was a problem! Unbeknownst to us, Mozilla had landed a refactoring storm of changes immediately after 52 that largely made the platform difficult to use, if not flat-out unuseable, for anything but Firefox (there were workarounds for SeaMonkey and Thunderbird in dev but even those had not been fully worked out yet).

This was game ending for Pale Moon that would either spell delays and potental busting of Pale Moon on some fundamental levels or just take much too long to reverse in the platform. We were stuck.

Taking a step back, Tobin checked Firefox ESR-52 and it was suitable, so the Take 2 plan for the Unified XUL Platform was drafted. UXP based on the Mozilla platform code at the Firefox ESR-52 level had several pros and cons. The cons were obvious: lose all the work we had already done with Basilisk and Möbius as well as more backporting work required to reach proper code maturity levels. The pros, however, were abundant and could not be ignored: If we were to use the platform as a platform we should use the most historically complete version of it that also matched current day platform code of other projects that would reach dead ends at Mozilla with Quantum. An additional pro was that Pale Moon as an application would work with standard porting strategies developed during vNext, without any major expected problems.

Take 2 was agreed on, and that is where we are today with Pale Moon, Basilisk, and the other allied and non-aligned UXP based projects.

v28+ era

Going from UXP Take 2, Pale Moon's front-end (application code) was once again adapted to a different platform to retain its customizability and ergonomics while supporting its core browsing features with Goanna 4.* and UXP. After a long and busy 9 months, August 2018 saw the first release of the new milestone of Pale Moon on UXP.

Make no mistake though: this is it. There can never be another vNext/Tycho/Möbius type of forking situation of the Mozilla code. There isn't enough of the Mozilla platform technology left in the now fully Firefox-centric codebase. It isn't even a platform codebase for many applications anymore. Not even a Firefox-first platform. There is just Firefox and nothing else, there.

2021, or: how Open Source ends

In the summer of 2021, with Pale Moon solidly going into milestone 29, the project came under attack from a group of primarily Eastern European/former Soviet state individuals for defending its rights under the Mozilla Public License, in particular requiring that source code forms of forks be made available to the public and that branding be respected. This attack ranged from threats (both legal and to life) to attempted de-platforming of the project, to flat-out stealing of unpublished code and spinning off copies of unfinished applications based on it.
Ultimately, this destroyed the possibility of open, collaborative development for the project as a whole (including other applications like Basilisk and Interlink) and set a pretty grim precedent for Open Source, wherein licensing is considered "optional" to follow (or selectively, for that matter, taking advantage of the rights but not adhering to the obligations). The hard decision was made to stop publishing source code repositories and having public and transparent development progress, and return to a much earlier state of releasing the browser alongside source code snapshots in release state only.

Unfortunately this was too restrictive of an environment to properly develop in so we were forced to eventually open our repositories back up, albeit with a serious lesson learned about the general approach to Open Source and total lack of respect shown by the people who are supposed to be colleagues in the spirit of collaborative development, even if goals and visions are different between groups operating generally in the same area.

A (failed) reboot into the Goanna Runtime Environment™

As 2022 rolled around and with the worst of the Corona pandemic behind us, following a controversial probe into the desires of the browser's end-user's wishes and priorities in late 2021, Pale Moon had a reboot. UXP was abandoned as a concept with lack of collaboration and increasing difficulty attracting people actually wanting to help maintain and support a very broad multi-use multi-target platform (the main reason, as it turned out, being the overbearing control of one bad faith actor, see below). UXP was released to the community to further use if desired for various forks and spin-offs, but no longer developed by the Pale Moon team.

This reboot, however, turned out to be a total failure because of the bad faith of one of the project's main contributors, Matt A. Tobin (colloquially known as "Tobin") where the real reason behind this split off was to support the self-expressed notion of "making the project [his] own or utterly destroying it". In March of that year, things came to a head with how it came out that extrension compatibility was factually less in the new setup (not more, as Tobin asserted initially) and porting bugs had become tenfold more difficult, (i.e. having to do everything Tobin's way from that point forward) and ultimately, when it became clear the rest of the project was giving increasing resistance to his attempted "coup", ending in a successful hacking attempt by Tobin of the project's DNS structure, removing access to critical services (shutting down servers he operated for the project), taking down the entire project for a short time and effectively halting development for a while as damage control and recovery of critical services was done. This therefore played out exactly as the threat that had been made early in the year (which came to light several months later thanks to saved IRC logs of a space Tobin assumed was not monitored by anyone in the core of the project, but ultimately relayed to Moonchild and coming out in the wash).
With the Goanna Runtime Environment (GRE) being effectively nothing but an obfuscation attempt that was executed without proper communication, testing (resulting in very difficult to pinpoint instability and functional issues) or adherence to the project's maintained vision and strategies to put the user first, it was dismissed and development returned to UXP after communicating intensively with the community core contributors about how to move forward.

UXP development returned to a more open development strategy, more historical compatibility with Mozilla, and a stronger reliance on the community itself to use their own judgement and common sense moving forward instead of the (attempted) tight control by Tobin at various key points. As the year 2022 continued, more and more control points came to light and were addressed with solutions favoring collaboration, transparency and open development.

As part of this "return to sanity", several other thing were reverted like the removal of Macintosh code from UXP, allowing a collaboration with the main Mac developer (of "White Star") and unnecessary restrictions in both the code base and now self-hosted add-ons website.

Later in 2022, a new balance was found without Tobin, but with more active support of the community surrounding the browser and platform, giving rise to new applications like Epyrus and a successful restart of the Basilisk browser (which was initially discontinued to make room for GRE and closed "cathedral-style" development) under a new developer. The focus had once again become one of true cooperation and doing our best to help out sibling applications and projects.

Future directions

With our independence in Pale Moon, the future of it is continued support for the existing extension ecosystem (XUL extensions), a focus on desktop computing, improving web compatibility and maintaining (and possibly extending) the flexibility of the platform used to build the browser and other applications on.
The future for broad web compatibility in a generic web browser is uncertain as the big players (specifically Google) continue to grow the behemoth of web specifications with unnecessary fluff that go far, far beyond what would be required for sane web development; with the continued focus on client computing for Web 3.0 and beyond, UXP and Pale Moon's focus may ultimately become much more specialized for specific environments as opposed to the commercialized web.

More information can be found on our future roadmap.

Site and contents Copyright © 2009-2023 Moonchild Productions - All rights reserved
Pale Moon is subject to the following licensing.
Policies: Cookies - User Content - Privacy.