I was tired of next-themes being abandoned, so I built a drop-in replacement
next-themes has 22 million weekly downloads. It hasn't had a release in over a year. There are 43 open issues and 16 unmerged PRs sitting there, including React 19 compatibility bugs that affect ev...

Source: DEV Community
next-themes has 22 million weekly downloads. It hasn't had a release in over a year. There are 43 open issues and 16 unmerged PRs sitting there, including React 19 compatibility bugs that affect every project upgrading to Next.js 16. I got tired of waiting. So I built @wrksz/themes. The problem with next-themes When Next.js 16 and React 19 dropped, projects started hitting a wall. The most common issues: React 19 script warning - next-themes renders an inline <script> inside a Client Component. React 19 started warning about this explicitly: Encountered a script tag while rendering React component. Scripts inside React components are never executed when rendering on the client. Stale theme with cacheComponents - next-themes uses useState + useContext, which causes stale theme values when React's Activity or cacheComponents suspend and resume a subtree. Your theme gets stuck. __name minification bug - production builds that minify function names break next-themes internals silentl