supabase / auth-helpers

A collection of framework specific Auth utilities for working with Supabase.
https://supabase.github.io/auth-helpers/
MIT License
893 stars 240 forks source link

Bundle size / unused JS / Tree shaking? #693

Open kaumac opened 7 months ago

kaumac commented 7 months ago

Bug report

Describe the bug

I'm currently optimizing the marketing pages of my application (built with nextjs and supabase). One of the problems I'm facing is that I'm using createMiddlewareClient on the nextjs middleware to handle the authentication on my app. The problem is that the nextjs middleware is browser based, so the imported modules gets to the bundle fetched by the user. Importing createMiddlewareClient adds a around ~30kb to the bundle, the problem is that Lighthouse tests indicates that ~23kb of that is unused.

To Reproduce

Steps to reproduce the behavior, please provide code snippets or a repository:

  1. import { createMiddlewareClient } from '@supabase/auth-helpers-nextjs' on nextjs middleware.
  2. Deploy application and analyze the generated bundle
  3. Supabase code will be fetched by users when visiting pages that are affected by the middleware.
  4. A lot of code is not used.

Expected behavior

I'm not really sure if the supabase code is tree shaken. Ideally unused code should not get to the js bundle

taxsta commented 7 months ago

Same problem here too. Been trying to figure out how to fix this as supabase has doubled our _app bundle size too.

chriskrogh commented 2 months ago

same here. I noticed that the docs now recommend using @supabase/ssr over @supabase/auth-helpers-nextjs, but the bundle size of ssr is still pretty hefty (25.92 KB Gzipped on version "^0.3.0")

Screenshot 2024-04-13 at 9 44 06 AM

anyone on the team got any recommendations for tree shaking?