the world contains an absurd amount of abandoned code
a short look at what happens to software after people stop maintaining it, using three real pieces of source code that are still sitting online.
There is an enormous amount of software out there, which still exists, but is essentially dead.
In 2025, GitHub announced that it had 630 million repositories, with 395 million of those being public. the fact that 395 million are public doesn’t necessarily mean they’re abandoned. surprisingly, “abandoned” is very difficult to define. A 2020 study of 2,927 active open-source projects showed that 16 percent of the projects stopped being maintained after only 1 year.
what’s also interesting about dead software is that it does not go away. it remains where it is.
1. Atom
Atom is probably the most clear-cut example.
the developer @ GitHub created the Atom editor and released it in 2014. this led to hundreds of thousands of commits; the developers then decided to stop development. today, the main Atom/Atom repository includes over 38 thousand commits. as well as a large banner across the top of the page indicating that the repository has been archived. the entire repository is now read-only.
despite this, the source for everything is still present. there are over 1500 lines of JavaScript in src/Atom-environment.js. you could browse through the class that created the editor’s global Atom environment, read comments written by developers for future maintainers, look through bug reports, or review thousands of past pull requests. unfortunately, there are no longer going to be any future maintainers. fig. 1 — part of Atom-environment.js preserved in the archived Atom repository.
2. Request
then there is Request, a Node.js HTTP library.
its README now starts with only one word: deprecated!
on February 11th, 2020, the project was fully deprecated. however, npm still lists more than 53 thousand packages as dependents of Request. its repository contains more than 2000 commits, plus years worth of issues, test cases, documentation, etc., and the actual implementation of its HTTP client.
this shows that code can be abandoned without losing relevance. somewhere today, old production software is likely making calls to a function from a library that has had no updates since its maintainers explicitly stated that “no new changes would occur here”, six years ago. fig. 2 — the Request constructor inside Request/Request.js.
3. AngularJS
AngularJS is different because it wasn’t some small side project. Google released it and as such an enormous community developed around it. official support for AngularJS officially ended in January of 2022. the GitHub repository was finally archived in April of 2024. it contained more than 9000 commits. src/ng/rootscope.js was one section of the framework, which included the original implementation of $watch, $digest, scopes, along with comments explaining why a particular decision was made at least several years ago. although the framework is effectively dead as far as maintenance goes, the logic behind it isn’t. fig. 3 — AngularJS's $watch implementation in the archived source tree.
4. software archaeology
this seems strange to me.
we typically think of abandoned items as physical: buildings, factories, ships, towns.
software creates ruin too, however unlike other types of ruin software does not rot like buildings do. a repository can simply stop working on some normal day and be frozen into nearly perfect preservation from that moment forward: every variable name, argument, TODO, failed experiment, issue, commit message, etc.
GitHub has actually taken this concept literally.
in 2020, it put a 21 terabyte snapshot of public repositories onto 186 reels of archival film inside a former coal mine in Svalbard for purposes of preserving the code for approximately 1000 years.
we are generating so much code that we are creating archaeology prior to the end of our civilization.
references
- GitHub, Octoverse 2025.
- Coelho et al., is this GitHub project maintained? (2020)
Atom/Atom, GitHubRequest/Request, GitHub & npmangular/angular.js, GitHub & AngularJS documentation- GitHub Archive Program, arctic code vault.
comments