By language · JavaScript
Abandoned JavaScript projects looking for a new maintainer
A 2026 field guide to finding, evaluating, and adopting an abandoned npm package. Covers the npm deprecate workflow, the GitHub adopt-me topic, and how to read the maintenance signals in your package.json.
Published July 13, 2026 · ~3 min read
The short version
- Use
npm deprecate <package> "message"when stepping back — it surfaces a warning on every install. - The canonical signal vocabulary is the GitHub
adopt-metopic + thelooking-for-maintainershield + a pinned issue. - 15% of widely-used npm packages become abandoned within 6 years (2025 ICSE study). Bus factor 1 is the default for solo JS projects.
- For evaluation, check Snyk Advisor +
npm view <package> time+ GitHubgit shortlog.
How to find abandoned JavaScript projects
The fastest way is the BreakPoint feed filtered to JavaScript. Three other signals to layer on top:
- GitHub topic search:
https://github.com/topics/adopt-me?l=javascript— direct, real-time. - npm CLI:
npm view <package> timeshows the last release date.npm view <package> deprecatedshows the deprecation message.npm view <package> maintainersshows the bus factor. - Snyk Advisor: scores every npm package on maintenance, security, and popularity. A "low maintenance" score is a real adoption-candidate signal.
The npm deprecate workflow
If you're stepping back from a JavaScript project, the npm-native way to signal it is npm deprecate <package> "<message>". The message shows up on every npm install of the package, which is the right place to surface it. A good message includes (1) when the deprecation started, (2) what to use instead, (3) a link to a migration guide. Also set the deprecated field in package.json. The deprecation does NOT delete the package — it just warns. The package continues to install and work for everyone who depends on it, with the warning visible to anyone adding it to a new project.
If you want to fully archive the project (the equivalent of a GitHub archive), use npm deprecate plus a clear "this project is no longer maintained" banner in the README. Don't npm unpublish unless the package is less than 72 hours old — npm blocks unpublishing of older packages to protect dependents.
If you maintain: how to signal "looking for a maintainer"
See the maintainer handoff guide for the full 5-step playbook. The JavaScript-specific bits: add the adopt-me GitHub topic, add the shields.io looking-for-maintainer badge to the README, pin a "Seeking new maintainer" issue, run npm deprecate for users who depend on you, and drop the project on BreakPoint. JavaScript's release culture means a 3-month silence is already a real signal — don't wait until the issues queue is unmanageable before you start the handoff.
Frequently asked questions
How do I find abandoned JavaScript projects?
Three places: the BreakPoint feed filtered to JavaScript, the GitHub adopt-me topic, and Snyk Advisor.
How do I deprecate an npm package?
npm deprecate <package> "<message>" — the message shows up on every install. Also set the deprecated field in package.json.
What's the bus factor in JavaScript?
Bus factor 1 is the default for solo JS projects. 15% of widely-used npm packages become abandoned within 6 years (2025 ICSE study).
Related reading
Adopter guide
How to take over an abandoned open source project
The 6-step playbook that applies to every language, including the cross-language contact-and-fork workflow.
Find a JavaScript project
The BreakPoint feed — fresh adoptions, filtered to your stack
Median drop-to-first-PR is 23 days. The right JS project is here.