MediaWiki history

MediaWiki is free software originally (since 2001–2002) written for Wikipedia (later, Wikimedia projects) by its own community.

Phase I: UseModWiki

Wikipedia was launched in January 2001. At the time, it was mostly an experiment to try to boost the production of content for Nupedia, a free-content but peer-reviewed, encyclopedia created by Jimmy Wales. Because it was an experiment, Wikipedia was originally powered by UseModWiki, an existing GPL wiki engine written in Perl, using CamelCase and storing all pages in individual text files with no history of changes made.

It soon appeared that CamelCase wasn't really appropriate to name encyclopedia articles. In late January 2001, UseModWiki developer and Wikipedia participant Clifford Adams added a new feature to UseModWiki: free links, e.g., the ability to link to pages with a special syntax (double square brackets), instead of automatic CamelCase linking. A few weeks later, Wikipedia upgraded to the new version of UseModWiki supporting free links and enabled them.

While this initial phase isn't about MediaWiki, it provides some context and shows that, even before MediaWiki was created, Wikipedia started to shape the software's features that powered it. UseModWiki also influenced some of MediaWiki's features, for example, its markup language. The Nostalgia Wikipedia contains a complete copy of the Wikipedia database from December 2001, when Wikipedia still used UseModWiki.

Phase II: the PHP script

In 2001, Wikipedia was not yet a top 10 website; it was an obscure project sitting in a dark corner of the Interwebs, unknown to most search engines, and hosted on a single server. Still, performance was already an issue, notably because UseModWiki stored its content in a flat-file database. At the time, Wikipedians were worried about being "inundated with traffic" following articles in the New York Times, Slashdot or Wired.

So, in the summer of 2001, Wikipedia participant Magnus Manske (then a university student) started to work on a dedicated Wikipedia wiki engine in his free time. He aimed to improve Wikipedia's performance using a database-driven app and to be able to develop Wikipedia-specific features that a "generic" wiki engine couldn't provide. Written in PHP and MySQL-backed, the new engine was called the "PHP script", "PHP wiki", "Wikipedia software", or "phase II".

The "PHP script" was made available in August 2001, shared on SourceForge in September, and tested until late 2001. As Wikipedia suffered from recurring performance issues because of increasing traffic, the English language Wikipedia eventually switched from UseModWiki to the PHP script in January 2002. Other language versions also created in 2001 were slowly upgraded, although some of them would stay powered by UseModWiki until 2004. An automated program, called "User:Conversion script", converted the last version of the existing articles to the phase II format; Brooke Vibber partly restored previous revisions of the UseModWiki history on the English Wikipedia in September 2002.

As PHP software using a MySQL database, the PHP script was the first iteration of what would later become MediaWiki. It also introduced many critical features still in use today, like namespaces to organize content (including talk pages), skins, and special pages (including maintenance reports, a contributions list, and a user watchlist).

The last version of the Phase II branch is available in SVN (see r1289). It can also be obtained from the Sourceforge CVS repository using this command: cvs -z3 co -P phpwiki

Phase III: MediaWiki

Despite the improvements from the PHP script and database back-end, the combination of increasing traffic, expensive features, and limited hardware continued to cause performance issues on Wikipedia. In 2002, Lee Daniel Crocker rewrote the code again, calling the new software "Phase III". Because the site was experiencing frequent difficulties, Lee thought there "wasn't much time to sit down and properly architect and develop a solution", so he "just reorganized the existing architecture for better performance and hacked all the code". Profiling features were added to track down slow functions.

The Phase III software kept the same basic interface and was designed to look and behave as much as the Phase II software. A few new features were also added, like a new file upload system, side-by-side diffs of content changes, and interwiki links.

It was deployed to the English Wikipedia in July 2002, along with a hardware move to a new (but still single) server. Other features were added over 2002 like new maintenance special pages or the "edit on double click" option. Performance issues quickly reappeared, though. For example, in November 2002, administrators had to temporarily disable the "view count" and "site" statistics, which were causing two database writes on every page view. They occasionally switched the site to read-only mode to maintain the service for readers and disable expensive maintenance pages during high-access times because of table locking problems.

In early 2003, developers discussed whether they should properly re-engineer and re-architect the software from scratch before the fire-fighting became unmanageable or continue to tweak and improve the existing code base. They chose the latter solution, mostly because most developers were sufficiently happy with the code base and confident that further iterative improvements would be enough to keep up with the site's growth.

Around the same time, Brooke Vibber effectively took over as lead developer and release manager of the software. The code is now maintained by a large and active group of Developers .

In June 2003, administrators added a second server, the first database server separate from the web server. (The new machine was also the web server for non-English Wikipedia sites.) Load-balancing between the two servers would be set up later that year. Admins also enabled a new page caching system that used the filesystem to cache rendered, ready-to-output pages for anonymous users.

June 2003 is also when Jimmy Wales created the Wikimedia Foundation, a nonprofit to support Wikipedia and manage its infrastructure and day-to-day operations. The "Wikipedia software" was officially named "MediaWiki" in July, as wordplay by Daniel Mayer on the Wikimedia Foundation's name. What was thought at the time to be a clever pun would confuse generations of users and developers.

New features were added in July, like the automatically generated table of contents and the ability to edit page sections, both still in use today. The first release under the name "MediaWiki" happened in August 2003, concluding the long genesis of an application whose overall structure would remain fairly stable from there on.

There are no plans for Phase IV of the software. MediaWiki development has been happening incrementally and continuously for more than two decades now (see Release notes ). This is likely to continue long into the future!

Growth and volunteers

MediaWiki owes its existence and explosive growth to volunteer developers . Here are some notable examples of their work. Some were later hired to work on MediaWiki professionally.

MediaWiki software





Wikisource tools

Other extensions

Some of the MediaWiki extensions used on WMF wikis originally created and/or currently maintained by volunteers:

And many widely used extensions for non-Wikimedia wikis, like:

See also