From cb35e1f98e38db4f6eeaef2f9b2bce4151d69d9e Mon Sep 17 00:00:00 2001 From: Saxon Fletcher Date: Tue, 11 Aug 2026 13:37:32 +1000 Subject: [PATCH] chore(library): update routes, redirects, and naming (#48668) Our UI Library registry is expanding to include blocks that go beyond UI and in some cases focus purely on back-end. This PR is a precursor to adding more back-end related blocks. This PR includes the `ui-library -> library` rename plus redirects and small UI copy updates. Since this is a rename we'll need to update Vercel configuration. ## Vercel rollout Keep the Library project Root Directory as `apps/ui-library` 1. In the **Library** Vercel project, set: `NEXT_PUBLIC_BASE_PATH=/library` Apply it to Preview and Production, then redeploy the Library project. 2. In the **www** Vercel project, add: `NEXT_PUBLIC_LIBRARY_URL=` Apply it to Preview and Production. Keep `NEXT_PUBLIC_UI_LIBRARY_URL` during the migration, then redeploy the www project. 3. Deploy in this order: 1. Library project 2. www project 4. Validate: - `/library` - `/library/docs/nextjs/password-based-auth` - `/ui` redirects to `/library` - `/ui/docs/nextjs/password-based-auth` redirects to `/library/docs/nextjs/password-based-auth` - `/ui/docs/ai-editors-rules/*` still uses its existing Docs redirects No Vercel dashboard redirect rules are needed. Environment-variable changes require a new deployment. ## Summary by CodeRabbit * **New Features** * Supabase UI Library has been renamed to **Supabase Library** across navigation, pages, documentation, and resource links. * The Library is now available at `/library`, with updated descriptions covering components, blocks, and developer tools. * **Bug Fixes** * Added permanent redirects from legacy `/ui` URLs to corresponding `/library` paths. * Updated links throughout the site and documentation to prevent broken navigation and references. --- apps/design-system/content/docs/index.mdx | 4 +-- apps/docs/app/page.tsx | 4 +-- .../Navigation/Navigation.commands.tsx | 4 +-- .../NavigationMenu.constants.ts | 4 +-- apps/docs/content/_partials/uiLibCta.mdx | 2 +- .../getting-started/quickstarts/tanstack.mdx | 2 +- .../getting-started/tutorials/with-nextjs.mdx | 2 +- .../integrations/supabase-for-platforms.mdx | 2 +- .../data/content-listings/realtime.data.ts | 14 +++++----- apps/learn/components/tanstack-beta.tsx | 5 ++-- apps/learn/content/foundations/quickstart.mdx | 2 +- apps/learn/scripts/build-llms-txt.ts | 2 +- apps/studio/TANSTACK_MIGRATION.md | 4 +-- .../interfaces/ConnectSheet/connect.schema.ts | 6 ++--- .../content/steps/shadcn/command/content.tsx | 2 +- apps/ui-library/.env | 2 +- apps/ui-library/app/(app)/page.tsx | 6 ++--- apps/ui-library/app/layout.tsx | 4 +-- apps/ui-library/components/command-menu.tsx | 2 +- .../ui-library/components/side-navigation.tsx | 4 +-- apps/ui-library/components/site-footer.tsx | 2 +- apps/ui-library/components/tanstack-beta.tsx | 4 +-- .../tanstack-db-generator/index.tsx | 4 +-- .../content/docs/getting-started/faq.mdx | 10 +++---- .../docs/getting-started/introduction.mdx | 6 ++--- .../docs/getting-started/quickstart.mdx | 2 +- .../ui-library/content/docs/nextjs/client.mdx | 2 +- .../docs/nextjs/password-based-auth.mdx | 2 +- .../content/docs/nextjs/social-auth.mdx | 2 +- .../ui-library/content/docs/nuxtjs/client.mdx | 2 +- .../docs/react-router/password-based-auth.mdx | 2 +- .../content/docs/react-router/social-auth.mdx | 2 +- .../docs/react/password-based-auth.mdx | 2 +- .../content/docs/react/social-auth.mdx | 2 +- .../docs/tanstack/password-based-auth.mdx | 2 +- .../content/docs/tanstack/social-auth.mdx | 2 +- apps/ui-library/package.json | 2 +- apps/ui-library/public/r/registry.json | 6 ++--- .../registry/default/components/ui/link.tsx | 2 +- .../default/fixtures/lib/supabase/client.ts | 2 +- apps/ui-library/registry/index.ts | 4 +-- apps/ui-library/scripts/build-llms-txt.ts | 4 +-- apps/ui-library/supabase/config.toml | 2 +- apps/www/.env | 2 +- .../_blog/2025-03-31-supabase-ui-library.mdx | 18 ++++++------- .../2025-07-14-supabase-ui-platform-kit.mdx | 4 +-- ...-05-introducing-supabase-for-platforms.mdx | 4 +-- .../Wrapped/Pages/ProductAnnouncements.tsx | 4 +-- apps/www/data/Developers.tsx | 4 +-- apps/www/data/Footer.ts | 4 +-- apps/www/lib/redirects.js | 10 +++++++ apps/www/lib/rewrites.js | 10 ++++--- apps/www/next.config.test.ts | 26 +++++++++++++++++++ apps/www/turbo.jsonc | 2 ++ packages/common/telemetry-constants.ts | 2 +- 55 files changed, 140 insertions(+), 97 deletions(-) diff --git a/apps/design-system/content/docs/index.mdx b/apps/design-system/content/docs/index.mdx index 2d9559606e4..c8ab85f5a28 100644 --- a/apps/design-system/content/docs/index.mdx +++ b/apps/design-system/content/docs/index.mdx @@ -39,10 +39,10 @@ One of the drawback of packaging the components in an npm package is that the st - I was looking for Supabase UI Library + I was looking for Supabase Library - If you are looking for the Supabase UI, you can find it [here](https://supabase.com/ui). + You can find Supabase Library [here](https://supabase.com/library). diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx index f3b5ea7822a..2a66ed19c35 100644 --- a/apps/docs/app/page.tsx +++ b/apps/docs/app/page.tsx @@ -204,10 +204,10 @@ const additionalResources = [ href: '/guides/integrations', }, { - title: 'Supabase UI', + title: 'Supabase Library', description: 'A collection of pre-built Supabase components to speed up your project.', icon: 'ui', - href: 'https://supabase.com/ui', + href: 'https://supabase.com/library', external: true, }, { diff --git a/apps/docs/components/Navigation/Navigation.commands.tsx b/apps/docs/components/Navigation/Navigation.commands.tsx index 0a00c936c99..9a9c6c92f18 100644 --- a/apps/docs/components/Navigation/Navigation.commands.tsx +++ b/apps/docs/components/Navigation/Navigation.commands.tsx @@ -153,8 +153,8 @@ const navCommands = [ }, { id: 'nav-ui', - name: 'Go to Supabase UI Library', - route: 'https://supabase.com/ui', + name: 'Go to Supabase Library', + route: 'https://supabase.com/library', icon: () => , }, ] satisfies Array diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts index 77cbb1c8ef8..d04c48cb3b3 100644 --- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts +++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts @@ -298,9 +298,9 @@ export const GLOBAL_MENU_ITEMS: GlobalMenuItems = [ level: 'reference_javascript', }, { - label: 'UI Library', + label: 'Library', icon: 'ui', - href: 'https://supabase.com/ui' as `/${string}`, + href: 'https://supabase.com/library' as `/${string}`, level: 'ui', }, ], diff --git a/apps/docs/content/_partials/uiLibCta.mdx b/apps/docs/content/_partials/uiLibCta.mdx index 0457e8e4c0a..ba65465796b 100644 --- a/apps/docs/content/_partials/uiLibCta.mdx +++ b/apps/docs/content/_partials/uiLibCta.mdx @@ -3,7 +3,7 @@ UI components built on shadcn/ui that connect to Supabase via a single command. diff --git a/apps/docs/content/guides/getting-started/quickstarts/tanstack.mdx b/apps/docs/content/guides/getting-started/quickstarts/tanstack.mdx index 53a7e5aaf2c..ff9a466be80 100644 --- a/apps/docs/content/guides/getting-started/quickstarts/tanstack.mdx +++ b/apps/docs/content/guides/getting-started/quickstarts/tanstack.mdx @@ -139,7 +139,7 @@ npm run dev ## Next steps - Learn how to [protect routes and check sessions](/docs/guides/auth/server-side/creating-a-client?queryGroups=framework&framework=tanstack) with the server client -- Set up a complete [login and sign-up flow](/ui/docs/tanstack/password-based-auth) from the Supabase UI Library +- Set up a complete [login and sign-up flow](/library/docs/tanstack/password-based-auth) from Supabase Library - Explore [drop-in UI components](/ui) for your Supabase app - [Insert more data](/docs/guides/database/import-data) into your database - Upload and serve static files using [Storage](/docs/guides/storage) diff --git a/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx b/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx index 762d159ea33..9fd1f84564e 100644 --- a/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx +++ b/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx @@ -276,6 +276,6 @@ At this stage you have a fully functional application! - See the complete [example on GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/nextjs-user-management) and deploy it to Vercel - [Build a Twitter Clone with the Next.js App Router and Supabase - free egghead course](https://egghead.io/courses/build-a-twitter-clone-with-the-next-js-app-router-and-supabase-19bebadb) -- Explore the [pre-built Auth components](/ui/docs/nextjs/password-based-auth) +- Explore the [pre-built Auth components](/library/docs/nextjs/password-based-auth) - Explore the [Supabase Cache Helpers](https://github.com/psteinroe/supabase-cache-helpers) - See the [Next.js Subscription Payments Starter](https://github.com/vercel/nextjs-subscription-payments) template on GitHub diff --git a/apps/docs/content/guides/integrations/supabase-for-platforms.mdx b/apps/docs/content/guides/integrations/supabase-for-platforms.mdx index f20fca78d71..d2927d00856 100644 --- a/apps/docs/content/guides/integrations/supabase-for-platforms.mdx +++ b/apps/docs/content/guides/integrations/supabase-for-platforms.mdx @@ -393,7 +393,7 @@ Before transferring the project to your user's org, make sure to remove any cust ## Platform kit -Docs: https://supabase.com/ui/docs/platform/platform-kit +Docs: https://supabase.com/library/docs/platform/platform-kit