For 20 years, if you played a game in your browser, you were almost certainly using Adobe Flash. Then, in 2010, Steve Jobs published an open letter, and within 10 years Flash was dead. Today, no major browser supports it. The replacement â HTML5 â runs every browser game on the modern internet. Here's the full story of how the web's gaming foundation got rebuilt from scratch.
The setup: Flash from 1996 to 2010
Flash launched in 1996 as a tool for vector animation on the web. Macromedia (the original maker, before Adobe bought them in 2005) realized quickly that the same engine could run interactive content. By 1999, Flash had ActionScript, a real programming language. By 2003, you could make actual games in it.
The Flash gold rush from 2003 to 2010 was wild. Sites like Newgrounds, Kongregate, ArmorGames, and Miniclip became distribution platforms. A teenager with a free copy of FlashDevelop could ship a game to millions of players. PopCap (Bejeweled, Plants vs Zombies), King.com (Candy Crush, originally a web Flash game), and Zynga (FarmVille) all started with Flash games.
By 2009, Flash was installed on 99% of internet-connected desktops. It was, effectively, a universal runtime. Every browser had the plug-in. Every webpage that wanted to do anything interactive used it. It was the dominant client-side technology on the web, period.
The problems Apple noticed
Behind that universal adoption, Flash had real problems. By 2008, those problems were getting harder to ignore:
Security vulnerabilities
Flash had become one of the most-attacked pieces of software on the planet. The plug-in had access to your computer's network, file system, microphone, and camera, all from inside any random webpage. Security researchers were finding new exploits every few weeks. Adobe was shipping emergency patches monthly. By 2010, Flash was probably the single largest vector for malware on the web.
Battery drain
Flash was implemented in C++ and ran as a plug-in inside the browser. It had its own rendering pipeline that didn't integrate well with the GPU-accelerated rendering modern browsers used for HTML and CSS. The result: a single Flash banner ad in a webpage could consume 30% of a laptop's CPU, draining battery life by half. By 2010, "click here to disable Flash on this site" was a popular browser extension.
The mobile problem
Most importantly: Flash didn't work well on mobile. Apple's first iPhone shipped in 2007 without Flash. Adobe spent three years trying to make a mobile version. They couldn't get the performance acceptable, the battery drain reasonable, or the touch input working â Flash assumed a mouse cursor, and mouse-based interfaces don't translate to touch. By 2010, mobile usage was about to overtake desktop usage. Flash had no answer.
Steve Jobs's letter: April 29, 2010
The killing blow came from Steve Jobs. On April 29, 2010, Apple published a letter on their website titled "Thoughts on Flash." It was 1,700 words and it was Jobs at his most ruthless. The letter laid out six reasons Apple wouldn't support Flash on iOS:
- It's proprietary (Adobe controls it, not the open web)
- Flash isn't necessary for video (HTML5 video can replace it)
- Reliability, security, and performance issues are documented
- Battery life is hurt by Flash's lack of hardware acceleration
- Touch interfaces don't work with rollover-based Flash content
- Cross-platform abstraction layers hurt platform innovation
Adobe responded. Many web designers were furious. But the battle was already over. Apple controlled the iPhone, the iPhone was the most important computing platform of the next decade, and Apple had decided. Within a year, Flash usage on the web started declining for the first time since 1996.
The HTML5 alternative
The replacement Apple was pushing was a set of new web standards collectively called HTML5. The key pieces, for game development, were:
The <canvas> element
Canvas, added in HTML5, gave web pages a drawing surface that JavaScript could draw on. You could paint pixels, draw shapes, render text, and update the contents at 60 frames per second. Combined with the existing <script> element and JavaScript, this was â finally â the basis of a real game runtime.
WebGL (3D graphics)
WebGL added GPU-accelerated 3D graphics, ratified in 2011. For the first time, you could write OpenGL-style 3D code that ran in a browser tab without any plug-in. Combined with canvas, this meant any rendering Flash could do, HTML5 could do â usually faster and definitely with less battery drain.
The Web Audio API
Audio in Flash was straightforward; audio in HTML5 was a mess at first. The original <audio> tag was for playing music, not for sound effects. Web Audio (released in 2013) finally gave HTML5 a proper, low-latency sound engine. Without this, HTML5 games would have felt subtly broken.
Pointer Events and Touch Events
These standards (mostly finalized 2013-2015) gave HTML5 the input model that mobile devices needed. A single API could handle mouse, touch, stylus, and pen, on any device. Flash never had this.
The transition: 2014-2020
The transition was painful. Most existing Flash games couldn't be automatically converted to HTML5. The two technologies used different rendering models, different scripting languages (ActionScript vs. JavaScript), and different audio engines. Porting a game required a near-total rewrite.
Some classic Flash games made the jump because their developers cared. Line Rider got an HTML5 version. The World's Hardest Game got remade. Bloons Tower Defense moved to HTML5 in 2014 and became one of the most successful HTML5 games of the decade.
Most Flash games didn't make the jump. They sat on Newgrounds and Kongregate, gradually breaking as browsers disabled Flash one by one. By 2017, Chrome required users to manually enable Flash for each site. By 2019, Flash was off by default in every major browser. On December 31, 2020, Adobe officially killed Flash forever â the runtime stopped functioning even for users who had it installed.
The Internet Archive's preservation effort
One bright spot: the Internet Archive launched a preservation project called Flashpoint. As of 2026, Flashpoint contains over 100,000 Flash games, all playable in a special emulator that mimics the Flash runtime in HTML5. It's the largest preservation effort for browser-based gaming history, and you can still play Bloons Tower Defense 1, Line Rider, the original Helicopter Game, and thousands of forgotten classics through it.
Without Flashpoint, an entire generation of game design history would have been lost. The Internet Archive deserves credit for understanding that ephemeral software is still cultural heritage.
What HTML5 made possible that Flash couldn't
The transition wasn't just about replacing one technology with another. HTML5 enabled things Flash never could:
Mobile-first games
HTML5 games run natively on phones and tablets. Most modern browser games are designed for portrait-orientation, touch-input, short-session play. Flash games were always desktop-first.
Better integration with the rest of the web
HTML5 games can read URL parameters, communicate with parent pages, use browser features like localStorage for save games, and link to other web content easily. Flash was a sealed black box.
Faster load times
HTML5 games are made of small text files (HTML, CSS, JavaScript) and a few images. They load incrementally. Flash games were monolithic SWF files that had to download fully before playing â often 5+ MB on a slow connection. Our Snake game is roughly 8 KB. The difference is decades of progress.
Open and inspectable
You can right-click any HTML5 game and "View Source." You can read the code. You can learn from it. Flash content was compiled binary; you needed special tools to even inspect it. HTML5 games are part of the open web in a way Flash never was.
The aftermath: where we are in 2026
Today, browser gaming is healthier than it was during the Flash era, by almost every measure:
- Games run on all devices
- Load times are seconds, not minutes
- Security risks are minimal
- Battery drain is comparable to a regular webpage
- Developer tooling (Phaser, PixiJS, Three.js) is excellent
- WebAssembly lets you compile C++ games to run in browsers
The downsides? The transition cost the industry years of progress. Many small Flash studios closed. Many Flash games were lost. The casual gaming culture that surrounded Flash portals splintered into mobile app stores and HTML5 portals. Newgrounds is still alive, but it's a fraction of its 2008 self.
The lesson
The Flash story is a cautionary tale about depending on proprietary technology controlled by a single vendor. Flash dominated the web because it was easy to use and universally installed â but its proprietary nature meant when one company (Adobe) couldn't keep up, the entire ecosystem suffered. HTML5 won because it's an open standard maintained by the W3C and developed by all major browser vendors collaboratively.
The next platform shift in browser gaming is already happening. WebAssembly is letting console games run in browsers. WebGPU is bringing modern GPU APIs to the web. Cloud gaming services are streaming AAA games through browser tabs. The technology will keep evolving. As long as it stays open and standards-based, the web will keep being able to play.
If you want to see what HTML5 can do today, our full game library has 80+ free HTML5 games. They all load instantly, work on any device, and don't require any plug-ins. That's the post-Flash world we live in now.