Announcing the Next.js Supabase kit v3

V3 of the Next.js Supabase SaaS kit modernizes core libraries — Base UI, next-intl, Next Safe Action, Oxc — and adds teams-only mode for B2B apps.

I am really excited to announce that the Next.js Supabase SaaS kit is now updated to version 3, its largest ever update. This new version switches to more modern libraries and tooling, upgrading the core dependency stack that powers the SaaS Starter.

TLDR: V3 upgrades every library, replaced some core libraries with modern ones, and added the ability to run the kit in teams-only mode for B2B apps.

When building the Next.js ORM-based kits, I decided to drop some libraries in favor of more modern ones:

  • Base UI replaces Radix UI - but still using the Shadcn UI components as wrappers
  • next-intl replaced i18next
  • Next Safe Action replaced our home-grown library enhanceAction to write boilerplate-free Next.js Server Actions
  • and lately, we replaced ESLint and Prettier with Oxc for massive development-time performance boost
  • new teams-only mode — run the kit without personal accounts, as it's commonly done in B2B SaaS
  • TypeScript 6.0 is now the default, preparing your codebase for the upcoming Go-native TypeScript 7 compiler
  • all dependencies were updated to the latest versions, including Next.js 16.2, which brings a lot of DX and Agentic development improvements
  • the full documentation is now included in the repository, giving AI coding agents like Claude Code, Cursor, and Windsurf the context they need to build features correctly on the first try

The ORM kits also had various UX improvements; some of them made it into the new v3, while others I decided to postpone to a future v4 version.

Following the successful work on the ORM-kits, I decided it was time to do the same for the Next.js Supabase kits.

Beyond the library swaps, next-intl unlocks locale-prefixed routes for better SEO, the new teams-only mode lets you configure the kit for pure B2B use cases, and TypeScript 6.0 positions your project for a smooth transition to the Go-native TypeScript 7 compiler.

The new libraries are better maintained and built on foundations that will keep up with the ecosystem for years to come.

Let's go through the changes introduced in v3.

Base UI replaces Radix UI

Base UI is an API-compatible (mostly) successor to Radix UI Primitives, built by the same team that created Material UI and Radix UI. It provides unstyled, accessible components with a more modern API, better performance, and improved composability.

We still use Shadcn UI as our component wrapper layer, so the developer experience stays familiar. Under the hood, you get a lighter, actively maintained foundation.

next-intl replaces i18next

i18next is a generic internationalization library adapted to work with Next.js, but making it play nicely with the App Router required pulling in multiple packages and manual wiring for server vs. client components. next-intl is purpose-built for Next.js and solves all of that out of the box.

The biggest win is native support for locale-prefixed routes (e.g. /en/pricing, /it/pricing), which is a real SEO advantage for multilingual SaaS apps. The setup is also simpler: fewer packages, fewer config files, and less boilerplate.

Next Safe Action replaces enhanceAction

Next Safe Action replaces our home-grown enhanceAction utility with a well-established, community-maintained library for type-safe Next.js Server Actions.

It gives you built-in Zod validation, middleware chaining, optimistic updates, and structured error handling out of the box, all with excellent TypeScript inference.

By moving to a widely adopted library, you get better documentation, a larger ecosystem, and a faster pace of updates without us having to maintain the plumbing ourselves.

ESLint and Prettier replaced with Oxc

Oxc is a Rust-based toolchain that handles both linting and formatting in a single pass.

Replacing both ESLint and Prettier with Oxc means fewer dependencies, dramatically faster lint/format runs, and zero config conflicts between linter and formatter.

The developer experience improvement is immediately noticeable. CI pipelines are faster, editor feedback is near-instant, and you no longer need to juggle two separate tool configurations.

TypeScript 6.0 prepares you for TS 7

v3 ships with TypeScript 6.0 as the default compiler version. TypeScript 7 will be rewritten in Go for dramatically faster compile times, but it also introduces stricter type-checking and deprecates several legacy patterns.

By moving to TypeScript 6.0 now, your codebase picks up the latest type-system improvements and any deprecation warnings that flag code incompatible with the upcoming Go-native compiler. When TypeScript 7 lands, the upgrade should be straightforward rather than a scramble.

Teams-only mode for B2B apps

v3 introduces the ability to run the kit in teams-only mode, removing personal accounts entirely.

This is a common pattern in B2B SaaS where every user belongs to a team (or organization) and there's no concept of a personal workspace.

With a single configuration flag, the kit skips personal account creation on sign-up, redirects users straight to their team workspace, and adjusts the navigation accordingly. No need to hack around the default multi-tenant model.

Migration Guide

We have written a detailed migration guide for users on v2. The migration is split into 10 git tags.

Every git tag is an incremental change towards moving v2 to v3. Each tag will keep the application fully working, while slowly updating the internals.

Refer to the documentation for more info.

v2 is not going anywhere

We're not a weekend side project — supporting our customers is our top priority. Thousands of you are running real businesses on v2, and we don't take that lightly. Migrating from v2 to v3 may not be trivial, and we get that running a SaaS is hard enough without being forced into a major upgrade. That's why we commit to keeping v2 fully maintained — dependency updates, security patches, and important fixes — for as long as it's needed. Upgrade to v3 on your own terms, when it makes sense for your product. Don't rush it, don't FOMO.

Conclusion

The Next.js Supabase kit v3 builds on the strong foundations of v2 with newer, better maintained core libraries, setting your SaaS up for the long run.

Ready to get started? Check out the v3 migration guide or browse the full documentation.

Frequently Asked Questions

Is v3 a breaking change from v2?
Yes, v3 swaps several core libraries (Radix UI, i18next, enhanceAction, ESLint/Prettier), so it's not a drop-in upgrade. However, we provide a step-by-step migration guide split into 10 incremental git tags, each keeping your app fully functional.
Will v2 still be maintained?
Absolutely. We commit to keeping v2 up to date with dependency updates, security patches, and important fixes. Thousands of customers run their businesses on v2, and we won't leave them behind.
Does v3 add new features?
The main new feature is teams-only mode for B2B apps. Beyond that, v3 is focused on modernizing the underlying libraries rather than adding new functionality — the kit was already fully featured.
What is teams-only mode?
Teams-only mode removes personal accounts entirely, so every user belongs to a team or organization on sign-up. It's a single configuration flag — ideal for B2B SaaS apps where personal workspaces don't make sense.
Do I need to migrate to v3 right away?
No. Upgrade on your own terms, when it makes sense for your product. v2 will continue to receive updates and support.
Does v3 change the Shadcn UI components?
No. We still use Shadcn UI as the component wrapper layer. The change is under the hood — Base UI replaces Radix UI as the primitive layer, so the developer experience stays familiar.
Why TypeScript 6.0 now?
TypeScript 7 will be a Go-native rewrite with stricter defaults. By shipping 6.0 today, your codebase surfaces any deprecation warnings early, so the TS 7 upgrade will be smooth and low-risk.