Maintained forks of abandoned npm packages
OpenSource Framework is a monorepo dedicated to maintaining forks of abandoned npm packages. We ensure these valuable tools continue to receive security updates, bug fixes, and compatibility improvements.
We rigorously test our packages against a matrix of framework versions to ensure bulletproof backwards compatibility and safe migrations.
| Framework Versions | Status | Verified Packages |
|---|---|---|
| Next.js 16.1.6 / React 19.2.0 | ✅ SAFE | next-images, next-compose-plugins, next-mdx, next-session, next-auth, react-virtualized, and more |
| Next.js 15.2.0 / React 19.0.0 | ✅ SAFE | next-images, next-compose-plugins, next-mdx, next-session, next-auth, react-virtualized, and more |
| Next.js 14.2.24 / React 18.3.1 | ✅ SAFE | next-images, next-compose-plugins, next-mdx, next-session, next-auth, react-virtualized, and more |
Every package is verified for both CommonJS and ESM resolution using modern Node.js standards.
We use API Extractor to maintain a strict "contract" for our public API surface. All packages in the @opensourceframework ecosystem include a .api.md report (found in their etc/ directory) that catalogs every exported function, class, and interface.
- Zero Accidental Breaking Changes: Any modification to the public API surface is caught in CI using Turborepo, ensuring that migrations are always safe for our users.
- Dual-Package Support: Every package is verified for both CommonJS and ESM resolution using modern Node.js standards and
@arethetypeswrong/cli. - Comprehensive Coverage: 20+ packages are now protected by this regression suite.
We go beyond standard unit testing to ensure that our modernized forks are not just compatible, but also performant and visually identical to the originals.
We use Mitata to verify that our engine modernizations don't introduce performance regressions. For example, @opensourceframework/critters is verified to process HTML in microseconds:
| Task | Average Latency |
|---|---|
| Process Small HTML | ~123.83 µs |
| Process Small HTML (optimized) | ~58.09 µs |
For UI components like @opensourceframework/react-virtualized, we use Playwright to take pixel-perfect snapshots of components. This ensures that modernization (e.g., migrating to React 19) never breaks complex virtualization math or layout integrity.
Our ecosystem is under constant audit for dependency vulnerabilities. We maintain an active Security Audit Log and prioritize patching critical issues found in the dependency graph of abandoned forks.
To make migration as seamless as possible, we provide a dedicated codemod CLI to automatically update your codebase.
# Run the migration tool
npx @opensourceframework/codemods next-seo ./srcThis will automatically transform all next-seo imports and require calls to @opensourceframework/next-seo.
Many npm packages become abandoned over time, leaving projects vulnerable to security risks and framework obsolescence. OpenSource Framework provides a "Safe Haven" for critical utilities with a focus on:
- Legacy Preservation: We maintain "stable-forever" forks of popular versions (like NextAuth v3) that official maintainers have abandoned, ensuring legacy apps don't break as frameworks like Next.js evolve.
- Zero-Effort Migration: Unlike official major upgrades that often force complete rewrites (e.g.,
next-seov7), our forks prioritize drop-in compatibility. We restore removed components and provide compatibility aliases for legacy props to ensure your existing codebase stays functional. - Modern Standards: Every fork is migrated to modern tooling (
tsup,vitest,ESM) and strictly tested against the latest Next.js versions (including Next.js 16/17 compatibility). - Unified Ecosystem: A single namespace (
@opensourceframework) for a collection of drop-in replacements, reducing dependency fragmentation and audit fatigue. - Simplicity over Complexity: While other forks (like Serwist) shift philosophies, we prioritize maintaining the original, simple APIs that developers already know and love.
# Using npm
npm install @opensourceframework/[package-name]
# Using yarn
yarn add @opensourceframework/[package-name]
# Using pnpm
pnpm add @opensourceframework/[package-name]Simply update your imports:
- import { something } from 'original-package';
+ import { something } from '@opensourceframework/original-package';We welcome contributions! Please see our Contributing Guide for details.
- Node.js 18+
- pnpm 9+
# Clone the repository
git clone https://github.com/riceharvest/opensourceframework.git
cd opensourceframework
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Lint code
pnpm lintThis repository is licensed under the MIT License. Individual packages may retain their original licenses if different.
- Original package authors for their valuable contributions
- All contributors who help maintain these packages
Made with 💜 by the OpenSource Framework community