The day the plugin stopped

Adobe pulled the plug on Flash at midnight on 31 December 2020, erasing two decades of browser culture in a single planned obsolescence.
What the shutdown actually meant
Flash Player was not a file format or a website — it was a plugin, a piece of software installed separately from the browser that intercepted certain content types and executed them inside its own sandboxed runtime. When Adobe announced in July 2017 that it would end support on 31 December 2020, the company was not simply retiring a product. It was setting an expiry date on an entire execution environment, and everything that had ever run inside it would stop running the moment that environment was withdrawn.
The mechanics of the shutdown were unusually thorough. Adobe did not merely stop issuing security patches, which would have been the slow decline most deprecated software experiences. It built a kill switch directly into the final versions of Flash Player: on 12 January 2021, Flash Player began actively blocking Flash content from running, displaying a prompt telling users the technology was no longer supported. Major browsers — Chrome, Firefox, Safari, Edge — had already removed plugin support or disabled Flash specifically before that date. Microsoft later used Windows Update to forcibly uninstall Flash Player from Windows machines entirely. The shutdown was engineered, not just announced.
The scale of what went offline is difficult to overstate. Animated shorts, interactive advertisements, educational tools, news graphics, and an enormous volume of games — from tiny experiments on personal homepages to the polished titles that ran on dedicated portals serving millions of users — had all been built inside this single runtime. The Internet Archive estimated the scale of Flash content in the hundreds of thousands of distinct SWF files, and that figure covered only what had been crawled and identified; the real number was certainly larger.
Flash had been the dominant delivery mechanism for browser-based interactive content from roughly the mid-1990s through the mid-2010s.
The long road to midnight

Adobe had not always owned Flash. The technology originated with FutureSplash Animator, a product developed by FutureWave Software and acquired by Macromedia in 1996, which renamed it Flash. Adobe acquired Macromedia in 2005 and inherited the product along with the rest of that company's portfolio. By that point Flash was already ubiquitous: it ran inside Internet Explorer via ActiveX, inside Netscape and Firefox via the NPAPI plugin interface, and it had become so embedded in ordinary browsing that many users had no idea it was a separate piece of software at all.
The first serious challenge came not from a standards body but from Apple. When Apple launched the iPhone in 2007 and the iPad in 2010, Steve Jobs declined to support Flash on either device, and in April 2010 Apple published a detailed technical and strategic explanation of that decision. Jobs argued that Flash was proprietary, that it performed poorly on mobile hardware, that it was a significant source of security vulnerabilities, and that the web had matured enough — through HTML5 and related standards — to deliver the same experiences without a plugin. Whether or not every argument was correct, the practical consequence was stark: Flash was absent from the fastest-growing segment of computing, and the HTML5 specification being developed collaboratively by browser vendors was acquiring the capabilities — the Canvas element, video, audio — that Flash had previously supplied alone.
The shift accelerated across the following decade. Google began flagging Flash content in Chrome in 2016, requiring a click-to-play confirmation before the plugin would run. Mozilla introduced similar restrictions in Firefox. Both companies announced specific end dates. The formal sunset was, in that sense, the last frame of a very long fade.
By 2017, when Adobe made its own announcement, the death had already been prefigured by years of incremental withdrawal.
Who preserved what, and at what cost
Preservation happened in two places simultaneously: inside browsers and outside them. Inside the browser, the Ruffle emulator — an open-source project that reimplements the Flash virtual machine in WebAssembly, the binary instruction format that modern browsers can execute at near-native speed — offered the most technically ambitious approach. Ruffle runs SWF files without any plugin, interpreting Flash's ActionScript bytecode inside its own runtime, compiled to WebAssembly. It is incomplete; ActionScript 3, the version used by more sophisticated games and applications, remains only partially supported, meaning complex titles either run with errors or do not run at all. Simple animations and early-era games fare considerably better.
Outside the browser, the Flashpoint project — a volunteer archiving effort that began in 2018 — took a different approach: download and package the original SWF files alongside a local web server and a bundled, offline-capable version of Flash Player, so that the content runs in its original runtime rather than an emulation of it. Flashpoint had archived over 70,000 games and 8,000 animations across multiple platform families by the time of the shutdown, making it the largest single repository of playable Flash content. The trade-off is that running Flashpoint requires a desktop installation, not a browser visit — the casual, frictionless access that made Flash content part of everyday browsing is not recoverable by this method.
What neither project could preserve was the content that depended on a live server to function. Multiplayer games, persistent worlds, anything with a backend that had already been switched off before or during the shutdown — these were gone irrespective of what happened to the client-side SWF file. The plugin dying was one event; the servers dying was another, and the two often coincided because operators saw no point in maintaining infrastructure for content that could no longer be played.

What replaced it, and what it costs
The native browser stack that replaced Flash — Canvas for 2D raster drawing, WebGL for hardware-accelerated 3D graphics, Web Audio for sound, and the broader HTML5 family of APIs — is more capable in absolute terms than Flash ever was. It is also more fragmented: where Flash offered a single authoring environment and a single runtime with predictable performance characteristics, the native stack requires developers to choose from a range of engines and frameworks, each with different trade-offs. Game engines like Unity and Godot can export to WebAssembly targets, reproducing something close to the old plugin experience — a compiled binary running in the browser — but the resulting files are larger and the load times longer than equivalent Flash content was.
The economic model changed as completely as the technical one. Flash games had largely been free at the point of consumption, paid for by portal advertising or by sponsorship deals between developers and portals. That model collapsed alongside the portals themselves. What replaced it, across the browser-game space and the much larger mobile and PC markets that absorbed the audience, was free-to-play monetisation: no upfront cost, revenue drawn instead from in-game purchases, cosmetic sales, battle passes and, in markets where regulation permits, gacha mechanics. The server has to be paid for somehow — and whoever is paying for the server is, ultimately, the player, whether or not the game announces a price at the door.
The day the plugin stopped was not the day browser games ended. It was the day a particular kind of browser game — lightweight, embeddable, built by one or two people in a single authoring environment, free to visit and immediately playable — became very difficult to make and nearly impossible to distribute the way it once had been.

Read next
Elsewhere on the site