Skip to content

feat: publish SSR under deprecated auth-helpers package names#127

Merged
mandarini merged 1 commit into
supabase:mainfrom
mandarini:feat/auth-helpers-release
Sep 8, 2025
Merged

feat: publish SSR under deprecated auth-helpers package names#127
mandarini merged 1 commit into
supabase:mainfrom
mandarini:feat/auth-helpers-release

Conversation

@mandarini

@mandarini mandarini commented Aug 29, 2025

Copy link
Copy Markdown
Contributor

What kind of change does this PR introduce?

Feature - Package consolidation and multi-package publishing

What is the current behavior?

Currently, @supabase/ssr is only published under its own package name. Meanwhile, the deprecated @supabase/auth-helpers-* packages continue to receive thousands of weekly downloads, probably due to LLMs recommending them in code suggestions despite being deprecated for a long time.

The deprecated packages:

  • @supabase/auth-helpers-nextjs (159k weekly downloads)
  • @supabase/auth-helpers-react
  • @supabase/auth-helpers-remix
  • @supabase/auth-helpers-sveltekit

What is the new behavior?

This PR enables @supabase/ssr to be published under multiple package names simultaneously:

  1. Multi-package publishing: The release workflow now publishes the same codebase under 5 different npm package names:

    • @supabase/ssr (primary package)
    • @supabase/auth-helpers-nextjs
    • @supabase/auth-helpers-react
    • @supabase/auth-helpers-remix
    • @supabase/auth-helpers-sveltekit
  2. Console warnings: When imported as a deprecated auth-helpers package, users see a prominent warning.

  3. Updated documentation: README clearly explains the package consolidation and lists all deprecated packages.

Additional context

Users of the old auth-helpers packages will experience breaking changes when updating, as the APIs are not backward compatible. This is intentional - as discussed internally, we want to "break it loudly" to force users to notice and migrate.

Why this approach?

  • LLMs continue to recommend deprecated packages despite deprecation warnings
  • Traditional deprecation methods have proven ineffective
  • Publishing SSR under the old names ensures users get the maintained, working code
  • Console warnings guide users to the correct package

Related: supabase/auth-helpers#811

@mandarini mandarini force-pushed the feat/auth-helpers-release branch from af085d9 to 3eb87ae Compare August 29, 2025 13:26
@mandarini mandarini marked this pull request as ready for review August 29, 2025 13:42
@mandarini mandarini force-pushed the feat/auth-helpers-release branch from 3eb87ae to 68da49a Compare August 29, 2025 13:43
@mandarini mandarini changed the title feat!: publish SSR under deprecated auth-helpers package names feat: publish SSR under deprecated auth-helpers package names Aug 29, 2025
@mandarini mandarini force-pushed the feat/auth-helpers-release branch from 68da49a to b8a0358 Compare August 29, 2025 13:47
@mandarini mandarini self-assigned this Aug 29, 2025
@mandarini mandarini requested a review from hf August 29, 2025 13:47
@j4w8n

j4w8n commented Aug 29, 2025

Copy link
Copy Markdown
Contributor

I assume that if we're going to "break it loudly" then we're also going to shout it from the rooftops loudly one last time?? If I recall from past discussions, posts, etc, there are devs using the deprecated packages for targeted reasons - the react one specifically comes to mind but I may be mistaking it for the nextjs version.

Perhaps the "pre-LLM" devs have all migrated away by now, but if we're gonna up-and-break folks then I'd recommend treading empathetically on this one.

@hf hf left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@mandarini

Copy link
Copy Markdown
Contributor Author

@j4w8n thank you for your comment! What would your suggestion be in this case? Along with merging this PR, to create a new discussion post, or?

@j4w8n

j4w8n commented Sep 4, 2025

Copy link
Copy Markdown
Contributor

Hi @mandarini. Thanks for the follow-up.

I think we have two audiences here: developers and community support. I'd consider these:

  • a Changelog discussion post on the supabase repo
  • a post in the Discord server Announcements channel
  • a post on the teams-contributors Slack channel
  • a change to the below note on the SSR docs page (https://supabase.com/docs/guides/auth/server-side)
image

@j4w8n

j4w8n commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Maybe it won't be as bad as I think; especially if the published versions of the auth helpers stays the same.

@mandarini

Copy link
Copy Markdown
Contributor Author

@j4w8n the auth-helpers-* packages will be published with new versions, but the new versions will actually be the ssr code. The existing old versions for these packages will still be available on npm, as always. Does this make sense to you?

@j4w8n

j4w8n commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Absolutely. But that confirms why I think it would be good to give people a heads-up.

At the end of the day, it's Supabase's call; I just wanted to make sure I expressed my concern.

@mandarini

Copy link
Copy Markdown
Contributor Author

I'll be merging this PR @j4w8n , thank you for all your comments. I will follow along with some of the things you suggested to support the community through the migration!

@mandarini mandarini merged commit e8b6102 into supabase:main Sep 8, 2025
4 checks passed
mandarini pushed a commit that referenced this pull request Nov 26, 2025
🤖 I have created a release *beep* *boop*
---


## [0.8.0](v0.7.0...v0.8.0)
(2025-11-26)


### Features

* adds `cookies.encode` option allowing minimal cookie sizes
([#126](#126))
([cf38b22](cf38b22))
* publish SSR under deprecated auth-helpers package names
([#127](#127))
([e8b6102](e8b6102))
* update supabase-js to latest
([#133](#133))
([d65044d](d65044d))
* update supabase-js to latest
([#145](#145))
([08bf7d6](08bf7d6))


### Bug Fixes

* cookies console warnings
([#136](#136))
([64ff6b3](64ff6b3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
mandarini pushed a commit that referenced this pull request Jun 9, 2026
🤖 I have created a release *beep* *boop*
---


## [0.12.0](v0.11.0...v0.12.0)
(2026-06-09)


### Features

* adds `cookies.encode` option allowing minimal cookie sizes
([#126](#126))
([cf38b22](cf38b22))
* bump `cookie` to 1.0.2
([#113](#113))
([b4a77b4](b4a77b4))
* **cookies:** add clearAuthCookiesAtScopes migration helper
([#240](#240))
([4e47249](4e47249))
* full rewrite using `getAll` and `setAll` cookie methods
([#1](#1))
([b6ae192](b6ae192))
* improve cookie chunk handling via base64url+length encoding
([#90](#90))
([6deb687](6deb687))
* pass cache headers to setAll to prevent CDN caching of auth responses
([#176](#176))
([14962d2](14962d2))
* publish SSR under deprecated auth-helpers package names
([#127](#127))
([e8b6102](e8b6102))
* release workflow RC versioning and publish reliability
([#164](#164))
([81e68f4](81e68f4))
* update CI so it runs on release as well
([#33](#33))
([4517996](4517996))
* update supabase-js to latest
([#133](#133))
([d65044d](d65044d))
* update supabase-js to latest
([#145](#145))
([08bf7d6](08bf7d6))
* upgrade cookie dependency and cleanup imports
([#77](#77))
([9524528](9524528))


### Bug Fixes

* add @types/cookies to dependencies
([#63](#63))
([47e5f16](47e5f16))
* add `create*Client` string in `x-client-info`
([#85](#85))
([f271acc](f271acc))
* allow cookies encode without getAll/setAll on browser client
([#213](#213))
([89f3f28](89f3f28)),
closes [#170](#170)
* allow use of `createBrowserClient` without `window` present
([#20](#20))
([27d868d](27d868d))
* **auth:** respect user-provided auth options in createBrowserClient
([#167](#167))
([5f04837](5f04837))
* check chunkedCookie is string in server client
([#57](#57))
([549fe62](549fe62))
* **ci:** remove packageManager field
([#197](#197))
([6bf0226](6bf0226))
* cookies console warnings
([#136](#136))
([64ff6b3](64ff6b3))
* deprecate `parse`, `serialize` exports for more useful functions
([#14](#14))
([0b5f881](0b5f881))
* enable tree-shaking for browser bundles
([#216](#216))
([f009d71](f009d71))
* fix `createBrowserClient` deprecation tsdoc
([#17](#17))
([1df70ad](1df70ad))
* force release ([#98](#98))
([66710e8](66710e8))
* re-apply update CI so it runs on release as well
([#49](#49))
([51d5a43](51d5a43))
* **release:** pin npm to 11.5.2 so OIDC trusted publisher works
([#249](#249))
([4af89f7](4af89f7))
* remove optional dependencies
([#41](#41))
([a48fe6f](a48fe6f))
* remove usage of internal type params
([#123](#123))
([8f3e89e](8f3e89e))
* revert "update CI so it runs on release as well"
([#44](#44))
([9d0e859](9d0e859))
* **revert:** "feat: improve cookie chunk handling via base64url+length
encoding ([#90](#90))"
([#100](#100))
([2ea8e23](2ea8e23))
* set `max-age` default cookie option to 400 days
([#54](#54))
([f4ed2e0](f4ed2e0))
* set cookies for password recovery event
([#32](#32))
([7dc1837](7dc1837))
* set cookies when mfa challenge is verified
([#27](#27))
([c217f53](c217f53))
* **tsconfig:** set explicit rootDir to silence TS6059 in consumer IDEs
([#211](#211))
([a77ee8a](a77ee8a)),
closes [#209](#209)
* update conventional commits ci to use main instead of master
([#31](#31))
([bebce89](bebce89))
* update README session docs
([#159](#159))
([b859905](b859905))
* update type, remove unused imports, define AuthEvent type
([#47](#47))
([4f4a375](4f4a375))
* use skipAutoInitialize to prevent SSR token refresh race condition
([#131](#131))
([0b7be28](0b7be28))
* validate base64-prefixed chunked cookies decode to valid JSON
([#210](#210))
([302cc0e](302cc0e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: supabase-releaser[bot] <223506987+supabase-releaser[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants