Your node_modules has a browser in it
Paste a package.json, or name a public repo. Every line the platform can delete, what it weighs, and whether it is safe yet.
Remove"framer-motion"
Use instead@starting-style with transition-behavior: allow-discrete
Remove"@mui/x-date-pickers"
Use instead<input type="date"> and <input type="time">
Remove"animejs"
Use insteadelement.animate()
Remove"@ng-select/ng-select"
Use insteadappearance: base-select on <select>
Remove"@floating-ui/react"
Use insteadThe Popover API with CSS anchor positioning
Remove"react-virtualized"
Use insteadcontent-visibility: auto
Where the catalog stands
- Baseline widely available
- In every major engine for years. Use these without a fallback.
- Baseline newly available
- In every major engine, but recently. Check your support target.
- Limited availability
- Missing from at least one engine. These need a fallback.
- 64
- 264
- 36
- 12
56% widely available, 25% newly available, 19% limited.
Start here
The rules with a worked demo behind them.
What this does not claim
A dependency being in your package.json is not proof of what you use it for. Someone installs Framer Motion for layout animations, not for fade-ins. So every finding here is a conditional, and it arrives with the cases where the library is still the better choice.
Sizes describe the whole package, so a total assumes a full replacement that may not apply to you. That is why the number always says "up to".
Or run it where the code is
npx youmightnotneedSame catalog, same conditions, no paste. Add --verbose to print every condition, or --json for scripts and agents.
Or hand it to an agent
Paste this into Claude Code, Cursor, Copilot or anything that runs commands. Matching is exact, so nothing guesses at what your packages do.
Or install it for good. MCP server v0.3.2, or the skill:
claude mcp add youmightnotneed -- npx -y youmightnotneed-mcp
npx skills add jomaendle/youmightnotneed