A patchwork image of several wikis' landing pages

MWoffliner has spent the last 20 months catching up with MediaWiki. It can now turn almost any MediaWiki site into a ZIM — including JavaScript, categories, formulas and customizations. The interesting part is how we got there.

What MWoffliner actually does

Every ZIM of Wikipedia in the Kiwix library passes through MWoffliner, as it takes the sites and converts them into single ZIM file that you can download and read offline with Kiwix.

For years, that first sentence was followed by a fairly important asterisk.

MediaWiki kept changing.

Keeping up with MediaWiki became a project of its own

MWoffliner has been part of the Kiwix–Wikimedia Foundation partnership for years. The Foundation funds Kiwix to produce Wikimedia ZIMs and maintain the software that produces them.

But MediaWiki moved on. And an increasing number of wikis that have nothing to do with the Wikimedia world started to appear: game resources, community wikis, software documentation, and any number of other sites that people want to carry offline for any possible reason.

New parsers arrived. APIs we depended on were retired. Rendering a modern wiki reliably became a bigger job than we had originally planned. At the same time, MWoffliner was competing for the same engineering resources as everything else Kiwix does.

In early 2025, we decided to stop treating that as background maintenance and make MWoffliner a priority. The first release of the new cycle, 1.14, shipped in January 2025.

Then we started replacing the old machinery.

The boring work came first

Releases 1.15, 1.16 and 1.17 were not glamorous. They were important.

We moved rendering to MediaWiki’s standard action=parse API instead of relying on older APIs and rendering paths. We learned to detect each wiki’s skin automatically. We improved right-to-left and language-variant support. We made downloads more polite to the servers they came from, with maxlag, better retries and paced requests.

In other words, we spent a year making the thing less clever and more reliable.

That groundwork is what made 2.0 possible.

Then we taught it to behave like a wiki

MWoffliner 2.0 was released on 8 September 2026. The headline features are simple:

  • JavaScript support: wiki pages can now carry their ResourceLoader scripts into the ZIM, so things like collapsible navigation boxes and tabs can remain interactive offline.
  • Categories: category pages are included, so a ZIM can be browsed by topic rather than only through search and hyperlinks.

But there is more:

  • MathJax rendering for formulas
  • --customCss and --customJs
  • --onlyNamespaces, so you can choose which parts of a wiki to include
  • support for reviewed FlaggedRevs stable revisions
  • better handling of language variants
  • better handling of animated images

The old rendering options are gone. 2.0 has one rendering engine, based on action=parse.

That makes the tool simpler, but it is also a breaking change for people running MWoffliner themselves. If you’re upgrading, read the release notes.

And because software never stops being software, 2.1.0 followed on 2 October with flavour metadata, higher-resolution images, Redis recovery and a collection of fixes.

The bigger change: it is not really a Wikimedia tool anymore

This is the part we’re most excited about: MWoffliner started life around the needs of Wikimedia projects. Today, it can handle almost any MediaWiki site.

That matters because the world contains a lot more MediaWiki than Wikipedia.

We get requests for game wikis in particular. People also want documentation, specialist knowledge bases and community-maintained wikis available when there is no connection.

And something has started happening that we like even more.

People are running MWoffliner themselves.

They take their own wiki, generate a ZIM and send it to us so we can share it through the Kiwix ecosystem.

For years, the model was:

You ask. We build.

Increasingly, it is becoming:

You build. We share.

That’s a much more scalable model.

Why this matters for offline access

There is a subtle difference between making Wikipedia available offline and making MediaWiki available offline.

The first gives people access to one enormous encyclopedia.

The second gives communities a way to make their own knowledge portable.

A wiki maintained by a small community can be useful in a classroom, on a ship, in a remote field site, in a country with unreliable connectivity, or simply on somebody’s laptop when the internet isn’t available.

The people who maintain those wikis shouldn’t need Kiwix engineers to turn them into offline resources.

That’s what we want MWoffliner to enable.

Twenty months, six releases, one much bigger tool

The release numbers don’t tell the whole story:

Version Date What changed
1.14 Jan 2025 Start of the new development cycle
1.15 May 2025 action=parse renderer introduced
1.16 Jul 2025 Better RTL, CSS gadgets
1.17 Oct 2025 Skin detection, language variants, maxlag
2.0 Sep 2026 JavaScript, categories, MathJax, custom CSS/JS
2.1 Oct 2026 Recovery, metadata, image improvements and fixes

But the real progression is simpler:

Make it reliable → make it modern → make it general.

None of this was one person’s work

MWoffliner is a good example of what happens when a piece of infrastructure becomes important enough for several communities to care about it.

The Wikimedia Foundation funds Kiwix’s work on Wikimedia ZIMs and MWoffliner. C. Scott Ananian in particular provided invaluable help on MediaWiki’s parser and APIs, alongside other Wikimedia engineers and managers.

Inside Kiwix, we finally gave the project the dedicated engineering time it needed. And a long list of volunteer contributors supplied code, tests, bug reports, fixes and translations – chief among them Markus Rost, who basically became a co-maintainer and brought deep MediaWiki expertise to the project.

That is what infrastructure software looks like when it works: less like a product team and more like a relay race.

Your wiki can go offline too

If you run a MediaWiki site, you don’t need to wait for us to build a ZIM.

Run MWoffliner yourself, generate the ZIM and share it. If there’s a wiki you’d like to have offline but don’t want to build yourself, request a ZIM.

And if you just want to see what is already available, browse the Kiwix library.

The goal isn’t to make Kiwix the only way knowledge gets offline. The goal is to make going offline easy enough that everyone can do it.