You can enable the {title} wrapper right from the Supabase dashboard.
diff --git a/apps/docs/content/_partials/api_settings.mdx b/apps/docs/content/_partials/api_settings.mdx
index 15da66146f3..9479f2e8fac 100644
--- a/apps/docs/content/_partials/api_settings.mdx
+++ b/apps/docs/content/_partials/api_settings.mdx
@@ -5,7 +5,7 @@ To interact with data in database tables, you use the client libraries that wrap
-
+
[Read the API keys docs](/docs/guides/getting-started/api-keys) for a full explanation of all key types, their uses, and where to find them.
diff --git a/apps/docs/content/_partials/cost_warning.mdx b/apps/docs/content/_partials/cost_warning.mdx
index 6f8c536f5bb..4ed1c507f05 100644
--- a/apps/docs/content/_partials/cost_warning.mdx
+++ b/apps/docs/content/_partials/cost_warning.mdx
@@ -1,6 +1,6 @@
-To keep SMS sending costs under control, make sure you adjust your project's rate limits and [configure CAPTCHA](/docs/guides/auth/auth-captcha). See the [Production Checklist](/docs/guides/platform/going-into-prod) to learn more.
+To keep SMS sending costs under control, make sure you adjust your project's rate limits and [configure CAPTCHA](/docs/guides/auth/auth-captcha). See the [Production Checklist](/docs/guides/deployment/going-into-prod) to learn more.
Some countries have special regulations for services that send SMS messages to users, (e.g India's TRAI DLT regulations). Remember to look up and follow the regulations of countries where you operate.
diff --git a/apps/docs/content/_partials/create_client_snippet.mdx b/apps/docs/content/_partials/create_client_snippet.mdx
index 4e2fe443c23..cf0699b6260 100644
--- a/apps/docs/content/_partials/create_client_snippet.mdx
+++ b/apps/docs/content/_partials/create_client_snippet.mdx
@@ -1,4 +1,4 @@
-
+
Make sure you're using the right `supabase` client in the following code.
diff --git a/apps/docs/content/_partials/postgres_installation.mdx b/apps/docs/content/_partials/postgres_installation.mdx
index 876b02094f3..0dce71d4d26 100644
--- a/apps/docs/content/_partials/postgres_installation.mdx
+++ b/apps/docs/content/_partials/postgres_installation.mdx
@@ -47,7 +47,7 @@
psql --version
```
-
+
If you get an error that psql is not available or cannot be found, check that you have correctly added the binary to your system PATH. Also try restarting your terminal.
diff --git a/apps/docs/content/_partials/providers.mdx b/apps/docs/content/_partials/providers.mdx
index bb489af03d9..0c65a75ab1a 100644
--- a/apps/docs/content/_partials/providers.mdx
+++ b/apps/docs/content/_partials/providers.mdx
@@ -6,7 +6,7 @@ Supabase Auth works with many popular Auth methods, including Social and Phone A
-
+
You can also add any OAuth2 or OIDC-compatible identity provider using [Custom OAuth/OIDC Providers](/docs/guides/auth/custom-oauth-providers).
diff --git a/apps/docs/content/_partials/quickstart_db_setup.mdx b/apps/docs/content/_partials/quickstart_db_setup.mdx
index 08e577f4446..4c42ce98745 100644
--- a/apps/docs/content/_partials/quickstart_db_setup.mdx
+++ b/apps/docs/content/_partials/quickstart_db_setup.mdx
@@ -29,7 +29,7 @@ To start, you need a Supabase project.
Create a new Supabase project from [the Dashboard of any organization](/dashboard/new/_) you belong to.
-
+
Use [the Management API](/docs/reference/api/v1-create-a-project) or ask [the MCP server](/docs/guides/ai-tools/mcp#account-management) to create a new Supabase project.
@@ -41,13 +41,13 @@ When your Supabase project is up and running, create an `instruments` table with
Do these steps within your project's dashboard by copying and running the snippet in your project's [SQL Editor](/dashboard/project/_/sql/new).
-
+
Save some steps by clicking here to prefill the SQL in the SQL Editor, and then clicking **Run**.
-
+
You can use [the Management API](/docs/reference/api/v1-run-a-query) or ask [the MCP server](/docs/guides/ai-tools/mcp#database) to execute SQL queries.
diff --git a/apps/docs/content/_partials/uiLibCta.mdx b/apps/docs/content/_partials/uiLibCta.mdx
index 8973997dfc9..0457e8e4c0a 100644
--- a/apps/docs/content/_partials/uiLibCta.mdx
+++ b/apps/docs/content/_partials/uiLibCta.mdx
@@ -1,4 +1,4 @@
-
+
UI components built on shadcn/ui that connect to Supabase via a single command.
diff --git a/apps/docs/content/guides/ai-tools/byo-mcp.mdx b/apps/docs/content/guides/ai-tools/byo-mcp.mdx
index 2df8f11ed23..b56594e5748 100644
--- a/apps/docs/content/guides/ai-tools/byo-mcp.mdx
+++ b/apps/docs/content/guides/ai-tools/byo-mcp.mdx
@@ -49,7 +49,7 @@ Create a new Edge Function for your MCP server:
supabase functions new mcp
```
-
+
This tutorial uses the [official MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) with the `WebStandardStreamableHTTPServerTransport`, but you can use any MCP framework that's compatible with the [Edge Runtime](/docs/guides/functions), such as [mcp-lite](https://github.com/fiberplane/mcp-lite) or [mcp-handler](https://github.com/vercel/mcp-handler).
diff --git a/apps/docs/content/guides/ai-tools/mcp.mdx b/apps/docs/content/guides/ai-tools/mcp.mdx
index 6e2f5367a49..799d72aea89 100644
--- a/apps/docs/content/guides/ai-tools/mcp.mdx
+++ b/apps/docs/content/guides/ai-tools/mcp.mdx
@@ -32,13 +32,13 @@ To verify the client has access to the MCP server tools, try asking it to query
<$Show if="docs:prompts">
-For curated, ready-to-use prompts that work well with IDEs and AI agents, see our [AI Prompts](/docs/guides/getting-started/ai-prompts) collection.
+For curated, ready-to-use prompts that work well with IDEs and AI agents, see our [AI Prompts](/docs/guides/ai-tools/ai-prompts) collection.
$Show>
<$Show if="docs:agent_skills">
-Additionally, you can install Supabase agent skills alongside the MCP server, use the [Supabase Plugin for AI Coding Agents](/docs/guides/getting-started/plugins) for a combined one-step setup.
+Additionally, you can install Supabase agent skills alongside the MCP server, use the [Supabase Plugin for AI Coding Agents](/docs/guides/ai-tools/plugins) for a combined one-step setup.
$Show>
@@ -116,9 +116,9 @@ The [configuration panel above](#configure-your-ai-tool) can set these options f
Parameters can be combined: remote ?project_ref=abc123&read_only=true
-
+
-When using [Supabase CLI](/docs/guides/cli) for local development, the MCP server is available at local .
+When using [Supabase CLI](/docs/guides/local-development) for local development, the MCP server is available at local .
diff --git a/apps/docs/content/guides/ai/python-clients.mdx b/apps/docs/content/guides/ai/python-clients.mdx
index a03e5849960..2ae48ef404d 100644
--- a/apps/docs/content/guides/ai/python-clients.mdx
+++ b/apps/docs/content/guides/ai/python-clients.mdx
@@ -9,7 +9,7 @@ As described in [Structured & Unstructured Embeddings](/docs/guides/ai/structure
For data science or ephemeral workloads, the [Supabase Vecs](https://supabase.github.io/vecs/) client gets you started. You need a connection string and vecs handles setting up your database to store and query vectors with associated metadata.
-
+
Click [**Connect**](/dashboard/project/_/?showConnect=true) at the top of any project page to get your connection string.
diff --git a/apps/docs/content/guides/ai/rag-with-permissions.mdx b/apps/docs/content/guides/ai/rag-with-permissions.mdx
index 9ecd87c69ae..7b6ecae49b5 100644
--- a/apps/docs/content/guides/ai/rag-with-permissions.mdx
+++ b/apps/docs/content/guides/ai/rag-with-permissions.mdx
@@ -53,7 +53,7 @@ on document_sections for select to authenticated using (
);
```
-
+
In this example, the current user is determined using the built-in `auth.uid()` function when the query is executed through your project's auto-generated [REST API](/docs/guides/api). If you are connecting to your Supabase database through a direct Postgres connection, see [Direct Postgres Connection](#direct-postgres-connection) below for directions on how to achieve the same access control.
@@ -120,7 +120,7 @@ RLS is latency-sensitive, so extra caution should be taken before implementing t
-
+
For data sources other than Postgres, see [Foreign Data Wrappers](/docs/guides/database/extensions/wrappers/overview) for a list of external sources supported today. If your data lives in a source not provided in the list, contact [support](/dashboard/support/new) and we'll be happy to discuss your use case.
@@ -164,7 +164,7 @@ import foreign schema public limit to (users, documents)
from server foreign_server into external;
```
-
+
This example maps the `authenticated` role in Supabase to the `postgres` user in the external DB. In production, it's best to create a custom user on the external DB that has the minimum permissions necessary to access the information you need.
diff --git a/apps/docs/content/guides/ai/vector-columns.mdx b/apps/docs/content/guides/ai/vector-columns.mdx
index d3ab41c3aa9..15cb06746a2 100644
--- a/apps/docs/content/guides/ai/vector-columns.mdx
+++ b/apps/docs/content/guides/ai/vector-columns.mdx
@@ -61,7 +61,7 @@ create table documents (
In the SQL snippet above, we create a `documents` table with an `embedding` column. This is a standard Postgres column, so you can name it anything you like. The `embedding` column uses the `vector` data type with 384 dimensions. Change this number to match the dimensions your embedding model produces. For example, if you're [generating embeddings](/docs/guides/ai/quickstarts/generate-text-embeddings) using the open source [`gte-small`](https://huggingface.co/Supabase/gte-small) model, set this to 384.
-
+
In general, embeddings with fewer dimensions perform best. See our [analysis on fewer dimensions in pgvector](/blog/fewer-dimensions-are-better-pgvector).
@@ -156,13 +156,13 @@ const { data: documents } = await supabaseClient.rpc('match_documents', {
In this example `embedding` would be another embedding you wish to compare against your table of pre-generated embedding documents. For example if you were building a search engine, every time the user submits their query you would first generate an embedding on the search query itself, then pass it into the above `rpc()` function to match.
-
+
To filter your vector search by another column from the JS client, extend the function above with an extra parameter and `where` clause. See [Filtering vector search by metadata](/docs/guides/ai/semantic-search#filtering-vector-search-by-metadata) for a worked example.
-
+
Be sure to use embeddings produced from the same embedding model when calculating distance. Comparing embeddings from two different models will produce no meaningful result.
diff --git a/apps/docs/content/guides/api.mdx b/apps/docs/content/guides/api.mdx
index 9d0a4df90e7..d88c12e96a2 100644
--- a/apps/docs/content/guides/api.mdx
+++ b/apps/docs/content/guides/api.mdx
@@ -12,7 +12,7 @@ The API is auto-generated from your database and is designed to get you building
You can use them directly from the browser (two-tier architecture), or as a complement to your own API server (three-tier architecture).
-
+
- You can find the API URL in the [**Integrations > Data API**](/dashboard/project/_/integrations/data_api/overview) section of the Dashboard.
- You can find the API Keys in the [**Settings > API Keys**](/dashboard/project/_/settings/api-keys/) section of the Dashboard.
diff --git a/apps/docs/content/guides/api/handling-errors-in-supabase-js.mdx b/apps/docs/content/guides/api/handling-errors-in-supabase-js.mdx
index 76c549d3e2c..eea070910be 100644
--- a/apps/docs/content/guides/api/handling-errors-in-supabase-js.mdx
+++ b/apps/docs/content/guides/api/handling-errors-in-supabase-js.mdx
@@ -19,7 +19,7 @@ The `message` exposes the error reason, and `hint` gives you the literal SQL sta
The same pattern shows up across many Postgres errors — missing column? `hint` suggests the column name you probably meant. Type mismatch? `hint` shows the expected type. Whenever Postgres knows the fix, it puts it in `hint`.
-Log the full `error` object, not only `error.message`.
+Log the full `error` object, not only `error.message`.
## The recommended pattern
diff --git a/apps/docs/content/guides/auth/audit-logs.mdx b/apps/docs/content/guides/auth/audit-logs.mdx
index 3bf63c70e7a..773050533fe 100644
--- a/apps/docs/content/guides/auth/audit-logs.mdx
+++ b/apps/docs/content/guides/auth/audit-logs.mdx
@@ -32,7 +32,7 @@ You can disable Postgres storage to reduce database storage costs while keeping
3. Find the **Audit Logs** under **Configuration** section
4. Toggle on "Disable writing auth audit logs to project database" to disable database storage
-
+
Disabling Postgres storage reduces your database storage costs. Audit logs will still be available through the dashboard.
diff --git a/apps/docs/content/guides/auth/auth-mfa.mdx b/apps/docs/content/guides/auth/auth-mfa.mdx
index e7e1744b5c1..1a0c97bdde1 100644
--- a/apps/docs/content/guides/auth/auth-mfa.mdx
+++ b/apps/docs/content/guides/auth/auth-mfa.mdx
@@ -261,7 +261,7 @@ create policy "Policy name."
### Server-Side Rendering
-
+
When using the Supabase JavaScript library in a server-side rendering context, make sure you always create a new object for each request! This will prevent you from accidentally rendering and serving content belonging to different users.
diff --git a/apps/docs/content/guides/auth/auth-mfa/totp.mdx b/apps/docs/content/guides/auth/auth-mfa/totp.mdx
index c45751d91e9..2660dea758a 100644
--- a/apps/docs/content/guides/auth/auth-mfa/totp.mdx
+++ b/apps/docs/content/guides/auth/auth-mfa/totp.mdx
@@ -36,7 +36,7 @@ In the **setup flow**, a session already at AAL1 calls the Enroll API, which ret
In the **login flow**, the user signs in (upgrading the session to AAL1) and the List Factors API is called. If the user has one or more factors, they open their authenticator and enter a code, which follows the same Challenge and Verify path to reach AAL2. If they have no factors enrolled, they are sent through the setup flow first.
-
+
[TOTP MFA API](/docs/reference/javascript/auth-mfa-api) is free to use and is enabled on all Supabase projects by default.
diff --git a/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx b/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx
index 75e5841b52d..bcf19cffc81 100644
--- a/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx
+++ b/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx
@@ -5,7 +5,7 @@ description: 'Use Single Sign-On (SSO) authentication on your project with SAML
video: 'https://www.youtube.com/v/em1cpOAXknM'
---
-
+
Looking for guides on how to use Single Sign-On with the Supabase dashboard? Head on over to [Enable SSO for Your Organization](/docs/guides/platform/sso).
@@ -23,7 +23,7 @@ If you're having issues with identity provider software not on this list, [open
## Prerequisites
-This guide requires the use of the [Supabase CLI](/docs/guides/cli). Make sure you're using version v1.46.4 or higher. You can use `supabase -v` to see the currently installed version.
+This guide requires the use of the [Supabase CLI](/docs/guides/local-development). Make sure you're using version v1.46.4 or higher. You can use `supabase -v` to see the currently installed version.
You can use the `supabase sso` [subcommands](/docs/reference/cli/supabase-sso) to manage your project's configuration.
SAML 2.0 support is disabled by default on Supabase projects. You can configure this on the [Auth Providers](/dashboard/project/_/auth/providers) page on your project.
@@ -279,7 +279,7 @@ For example, the following JSON structure configures attribute mapping for the `
}
```
-When creating or updating an identity provider with the [Supabase CLI](/docs/guides/cli) you can include this JSON as a file with the `--attribute-mapping-file /path/to/attribute/mapping.json` flag.
+When creating or updating an identity provider with the [Supabase CLI](/docs/guides/local-development) you can include this JSON as a file with the `--attribute-mapping-file /path/to/attribute/mapping.json` flag.
For example, to change the attribute mappings to an existing provider you can use:
diff --git a/apps/docs/content/guides/auth/oauth-server/getting-started.mdx b/apps/docs/content/guides/auth/oauth-server/getting-started.mdx
index a7f70ebcf6c..f6ea9dcadcb 100644
--- a/apps/docs/content/guides/auth/oauth-server/getting-started.mdx
+++ b/apps/docs/content/guides/auth/oauth-server/getting-started.mdx
@@ -12,7 +12,7 @@ Before you begin, make sure you have:
- A Supabase project (create one at [supabase.com](https://supabase.com))
- Admin access to your project
-- (Optional) [Supabase CLI](/docs/guides/cli) v2.54.11 or higher for local development
+- (Optional) [Supabase CLI](/docs/guides/local-development) v2.54.11 or higher for local development
## Overview
@@ -115,7 +115,7 @@ This ensures that JWTs issued by your local instance use the correct issuer clai
-
+
**Use asymmetric JWT signing keys for better security**
diff --git a/apps/docs/content/guides/auth/oauth-server/mcp-authentication.mdx b/apps/docs/content/guides/auth/oauth-server/mcp-authentication.mdx
index 7434553409f..00e05931dcb 100644
--- a/apps/docs/content/guides/auth/oauth-server/mcp-authentication.mdx
+++ b/apps/docs/content/guides/auth/oauth-server/mcp-authentication.mdx
@@ -75,7 +75,7 @@ Dynamic registration allows any MCP client to register with your project. Consid
When building your own MCP server, integrate with Supabase Auth to authenticate AI agents as your existing users and leverage your RLS policies.
-
+
**Looking for an easier way to build MCP servers?**
diff --git a/apps/docs/content/guides/auth/oauth-server/oauth-flows.mdx b/apps/docs/content/guides/auth/oauth-server/oauth-flows.mdx
index eda6aa21efe..3820b37c0ce 100644
--- a/apps/docs/content/guides/auth/oauth-server/oauth-flows.mdx
+++ b/apps/docs/content/guides/auth/oauth-server/oauth-flows.mdx
@@ -645,7 +645,7 @@ This enables automatic integration with OIDC-compliant libraries and tools.
Third-party clients should validate access tokens to ensure they're authentic and not tampered with.
-
+
**Recommended: Use asymmetric JWT signing keys**
@@ -841,7 +841,7 @@ After revoking access:
- All refresh tokens for that client are deleted
- The user will need to re-authorize the application to grant access again
-
+
**Build a settings page for your users**
diff --git a/apps/docs/content/guides/auth/passwords.mdx b/apps/docs/content/guides/auth/passwords.mdx
index ad37b727915..2bd22944496 100644
--- a/apps/docs/content/guides/auth/passwords.mdx
+++ b/apps/docs/content/guides/auth/passwords.mdx
@@ -15,7 +15,7 @@ Email authentication is enabled by default.
You can configure whether users need to verify their email to sign in. On hosted Supabase projects, this is true by default. On self-hosted projects or in local development, this is false by default.
-Change this setting on the [Auth Providers page](/dashboard/project/_/auth/providers) for hosted projects, or in the [configuration file](/docs/guides/cli/config#auth.email.enable_confirmations) for self-hosted projects.
+Change this setting on the [Auth Providers page](/dashboard/project/_/auth/providers) for hosted projects, or in the [configuration file](/docs/guides/local-development/cli/config#auth.email.enable_confirmations) for self-hosted projects.
### Signing up with an email and password
@@ -50,7 +50,7 @@ The implicit flow only works for client-only apps. Your site directly receives t
To sign up the user, call [signUp()](/docs/reference/javascript/auth-signup) with their email address and password.
-You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/cli/config#auth.additional_redirect_urls) for self-hosted projects.
+You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/local-development/cli/config#auth.additional_redirect_urls) for self-hosted projects.
If you don't specify a redirect URL, the user is automatically redirected to your site URL. This defaults to `localhost:3000`, but you can also configure this.
@@ -93,7 +93,7 @@ Future signUpNewUser() async {
To sign up the user, call [signUp()](/docs/reference/swift/auth-signup) with their email address and password.
-You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/cli/config#auth.additional_redirect_urls) for self-hosted projects.
+You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/local-development/cli/config#auth.additional_redirect_urls) for self-hosted projects.
If you don't specify a redirect URL, the user is automatically redirected to your site URL. This defaults to `localhost:3000`, but you can also configure this.
@@ -128,7 +128,7 @@ suspend fun signUpNewUser() {
To sign up the user, call [signUp()](/docs/reference/python/auth-signup) with their email address and password.
-You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/cli/config#auth.additional_redirect_urls) for self-hosted projects.
+You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/local-development/cli/config#auth.additional_redirect_urls) for self-hosted projects.
If you don't specify a redirect URL, the user is automatically redirected to your site URL. This defaults to `localhost:3000`, but you can also configure this.
@@ -396,7 +396,7 @@ app.get("/auth/confirm", async function (req, res) {
To sign up the user, call [signUp()](/docs/reference/javascript/auth-signup) with their email address and password:
-You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/cli/config#auth.additional_redirect_urls) for self-hosted projects.
+You can optionally specify a URL to redirect to after the user clicks the confirmation link. This URL must be configured as a [Redirect URL](/docs/guides/auth/redirect-urls), which you can do in the [dashboard](/dashboard/project/_/auth/url-configuration) for hosted projects, or in the [configuration file](/docs/guides/local-development/cli/config#auth.additional_redirect_urls) for self-hosted projects.
If you don't specify a redirect URL, the user is automatically redirected to your site URL. This defaults to `localhost:3000`, but you can also configure this.
@@ -1074,7 +1074,7 @@ The signup confirmation and password reset flows require an SMTP server to send
The Supabase platform comes with a default email-sending service for you to try out. The service has a rate limit of auth.rate_limits.email.inbuilt_smtp_per_hour.value emails per hour, and availability is on a best-effort basis. For production use, you should consider configuring a custom SMTP server.
-
+
Consider configuring a custom SMTP server for production.
@@ -1104,7 +1104,7 @@ Protect users who use a phone number as a password-based auth identifier by enab
Enable phone authentication on the [Auth Providers page](/dashboard/project/_/auth/providers) for hosted Supabase projects.
-For self-hosted projects or local development, use the [configuration file](/docs/guides/cli/config#auth.sms.enable_signup). See the configuration variables namespaced under `auth.sms`.
+For self-hosted projects or local development, use the [configuration file](/docs/guides/local-development/cli/config#auth.sms.enable_signup). See the configuration variables namespaced under `auth.sms`.
If you want users to confirm their phone number on signup, you need to set up an SMS provider. Each provider has its own configuration. Supported providers include MessageBird, Twilio, Vonage, and TextLocal (community-supported).
diff --git a/apps/docs/content/guides/auth/server-side.mdx b/apps/docs/content/guides/auth/server-side.mdx
index 81ae770cd4a..5a22ca7bbbf 100644
--- a/apps/docs/content/guides/auth/server-side.mdx
+++ b/apps/docs/content/guides/auth/server-side.mdx
@@ -7,7 +7,7 @@ SSR frameworks move rendering and data fetches to the server, to reduce client b
Supabase Auth is fully compatible with SSR. You need to make a few changes to the configuration of your Supabase client, to store the user session in cookies instead of local storage. After setting up your Supabase client, follow the instructions for any flow in the How-To guides.
-
+
Make sure to use the PKCE flow instructions where those differ from the implicit flow instructions. If no difference is mentioned, don't worry about this.
diff --git a/apps/docs/content/guides/auth/server-side/advanced-guide.mdx b/apps/docs/content/guides/auth/server-side/advanced-guide.mdx
index 9b31620964e..8366b9a7c99 100644
--- a/apps/docs/content/guides/auth/server-side/advanced-guide.mdx
+++ b/apps/docs/content/guides/auth/server-side/advanced-guide.mdx
@@ -12,7 +12,7 @@ The default behavior if you're not using SSR is to store this information in loc
If you're not using SSR, you might also be using the [implicit flow](/docs/guides/auth/sessions/implicit-flow) to get the access and refresh tokens. The server can't access the tokens in this flow, so for SSR, you should change to the [PKCE flow](/docs/guides/auth/sessions/pkce-flow). You can change the flow type when initiating your Supabase client if your client library provides this option.
-
+
In the `@supabase/ssr` package, Supabase clients are initiated to use the PKCE flow by default. They are also automatically configured to handle the saving and retrieval of session information in cookies.
diff --git a/apps/docs/content/guides/auth/social-login.mdx b/apps/docs/content/guides/auth/social-login.mdx
index c0b642296d3..5f7cfe3ab7b 100644
--- a/apps/docs/content/guides/auth/social-login.mdx
+++ b/apps/docs/content/guides/auth/social-login.mdx
@@ -45,7 +45,7 @@ Supabase supports a suite of social providers. Follow these guides to configure
-
+
Need to integrate with a provider not listed here? You can add any OAuth2 or OIDC-compatible provider using [Custom OAuth/OIDC Providers](/docs/guides/auth/custom-oauth-providers).
diff --git a/apps/docs/content/guides/auth/social-login/auth-apple.mdx b/apps/docs/content/guides/auth/social-login/auth-apple.mdx
index 8bc81e9429c..78b8d9b0569 100644
--- a/apps/docs/content/guides/auth/social-login/auth-apple.mdx
+++ b/apps/docs/content/guides/auth/social-login/auth-apple.mdx
@@ -140,7 +140,7 @@ curl -X PATCH "https://api.supabase.com/v1/projects/$PROJECT_REF/config/auth" \
}'
```
-
+
Use this tool to generate a new Apple client secret. No keys leave your browser! Be aware that this tool does not currently work in Safari, so use Firefox or a Chrome-based browser instead.
@@ -510,7 +510,7 @@ curl -X PATCH "https://api.supabase.com/v1/projects/$PROJECT_REF/config/auth" \
6. Create a signing **Key** in the [Keys](https://developer.apple.com/account/resources/authkeys/list) section of the Apple Developer Console. You can use this key to generate a secret key using the tool below, which is added to your Supabase project's Auth configuration. Make sure you safely store the `AuthKey_XXXXXXXXXX.p8` file. If you ever lose access to it, or make it public accidentally, revoke it from the Apple Developer Console and create a new one immediately. You will have to generate a new secret key using this file every 6 months, so make sure you schedule a recurring reminder in your calendar!
7. Finally, add the information you configured above to the [Apple provider configuration in the Supabase dashboard](/dashboard/project/_/auth/providers). If your app also uses native Sign in with Apple (on iOS or macOS), list this Services ID as the **first** entry in the _Client IDs_ field. Supabase uses the first client ID in the list for the web `signInWithOAuth` flow, while the native `signInWithIdToken` flow accepts any client ID in the list as a valid token audience, regardless of order. If a native App ID comes before the Services ID, native sign-in keeps working but web sign-in is rejected by Apple.
-
+
Use this tool to generate a new Apple client secret. No keys leave your browser! Be aware that this tool does not currently work in Safari, so use Firefox or a Chrome-based browser instead.
diff --git a/apps/docs/content/guides/auth/social-login/auth-azure.mdx b/apps/docs/content/guides/auth/social-login/auth-azure.mdx
index 7e2a09b236c..d56fbcf4298 100644
--- a/apps/docs/content/guides/auth/social-login/auth-azure.mdx
+++ b/apps/docs/content/guides/auth/social-login/auth-azure.mdx
@@ -142,7 +142,7 @@ Configure this by storing a value under _Azure Tenant URL_ in the Supabase Auth
## Add login code to your client app
-
+
Supabase Auth requires that Azure returns a valid email address. Therefore you must request the `email` scope in the `signInWithOAuth` method.
diff --git a/apps/docs/content/guides/auth/social-login/auth-facebook.mdx b/apps/docs/content/guides/auth/social-login/auth-facebook.mdx
index 43be477ac2d..05c9b31f226 100644
--- a/apps/docs/content/guides/auth/social-login/auth-facebook.mdx
+++ b/apps/docs/content/guides/auth/social-login/auth-facebook.mdx
@@ -41,7 +41,7 @@ From the `Add Products to your App` screen:
- Enter your callback URI under **Valid OAuth Redirect URIs** on the **Facebook Login Settings** page
- Click **Save Changes** at the bottom right
-
+
Your callback URI follows this pattern: `https://.supabase.co/auth/v1/callback`
@@ -64,7 +64,7 @@ You must configure the email permission in your Facebook app's Use Cases:
3. Verify that both `public_profile` and `email` show status **Ready for testing**
4. If `email` is not listed, click the **Add** button next to it
-
+
You can verify the permissions are set correctly by checking that both `public_profile` and `email` appear with a green check mark or "Ready for testing" status.
@@ -161,7 +161,7 @@ dependencies:
flutter_facebook_auth: ^7.0.0
```
-
+
Check [pub.dev](https://pub.dev/packages/flutter_facebook_auth) for the latest version of `flutter_facebook_auth`.
@@ -348,7 +348,7 @@ To add test users:
3. Add users as Testers, Developers, or Administrators
4. Users must accept the invitation from their Facebook notification settings
-
+
Development mode is sufficient for local development and testing. You only need to submit for App Review when you're ready to allow any Facebook user to authenticate with your app.
diff --git a/apps/docs/content/guides/auth/social-login/auth-kakao.mdx b/apps/docs/content/guides/auth/social-login/auth-kakao.mdx
index a2be73a0e70..dc228ac5ccf 100644
--- a/apps/docs/content/guides/auth/social-login/auth-kakao.mdx
+++ b/apps/docs/content/guides/auth/social-login/auth-kakao.mdx
@@ -75,7 +75,7 @@ If you don't need an email address (or `account_email` isn't available for your

-
+
In the Kakao Developers Portal, the "account_email" consent item is only available for apps that are registered as "Biz App". To convert your app to a "Biz App", go to **App Settings** > **App** > **General**, and complete the required fields in the **Business Information** section.
diff --git a/apps/docs/content/guides/auth/social-login/auth-workos.mdx b/apps/docs/content/guides/auth/social-login/auth-workos.mdx
index 077d2b48728..912207c0603 100644
--- a/apps/docs/content/guides/auth/social-login/auth-workos.mdx
+++ b/apps/docs/content/guides/auth/social-login/auth-workos.mdx
@@ -20,7 +20,7 @@ Visit the getting started page of the [WorkOS Dashboard](https://dashboard.worko
- `WORKOS_CLIENT_ID`
- `WORKOS_API_KEY`
-
+
You must be signed in to see these values.
@@ -94,7 +94,7 @@ async function signInWithWorkOS() {
}
```
-
+
You can find your `connection_id` in the WorkOS dashboard under the Organizations tab. Select your organization and then click View connection.
diff --git a/apps/docs/content/guides/database/custom-postgres-config.mdx b/apps/docs/content/guides/database/custom-postgres-config.mdx
index bf233cb0128..706888352c0 100644
--- a/apps/docs/content/guides/database/custom-postgres-config.mdx
+++ b/apps/docs/content/guides/database/custom-postgres-config.mdx
@@ -105,7 +105,7 @@ In order to overwrite the default settings, you must have `Owner` or `Administra
#### CLI supported parameters
-
+
If a setting you need is not yet configurable, [share your use case with us](/dashboard/support/new)! Let us know what setting you'd like to control, and we'll consider adding support in future updates.
diff --git a/apps/docs/content/guides/database/import-data.mdx b/apps/docs/content/guides/database/import-data.mdx
index 0b0262bdc7a..0640e8d6022 100644
--- a/apps/docs/content/guides/database/import-data.mdx
+++ b/apps/docs/content/guides/database/import-data.mdx
@@ -16,7 +16,7 @@ You have multiple options for importing your data into Supabase:
3. [Using the Postgres `COPY` command](#option-3-using-postgres-copy-command)
4. [Using the Supabase API](#option-4-using-the-supabase-api)
-
+
If you're importing a large dataset or importing data into production, plan ahead and [prepare your database](#preparing-to-import-data).
diff --git a/apps/docs/content/guides/database/postgres/data-deletion.mdx b/apps/docs/content/guides/database/postgres/data-deletion.mdx
index eecfd8f66cb..a686cf8bd9a 100644
--- a/apps/docs/content/guides/database/postgres/data-deletion.mdx
+++ b/apps/docs/content/guides/database/postgres/data-deletion.mdx
@@ -89,7 +89,7 @@ create view active_orders as
select * from orders where deleted_at is null;
```
-
+
Combine soft deletes with a scheduled hard-delete job (using [pg_cron](/docs/guides/database/extensions/pg_cron)) to permanently remove old soft-deleted rows in batches during low-traffic periods.
@@ -147,7 +147,7 @@ Dropping a regular index takes an `ACCESS EXCLUSIVE` lock on the index but **not
drop index if exists idx_users_legacy_field;
```
-
+
The `inspect` command in the [Supabase CLI](/docs/reference/cli/supabase-inspect-db-index-stats) can help you identify unused indexes:
diff --git a/apps/docs/content/guides/database/postgres/indexes.mdx b/apps/docs/content/guides/database/postgres/indexes.mdx
index ec1c5a24724..4982a26e37d 100644
--- a/apps/docs/content/guides/database/postgres/indexes.mdx
+++ b/apps/docs/content/guides/database/postgres/indexes.mdx
@@ -26,7 +26,7 @@ create table persons (
);
```
-
+
All the queries in this guide can be run using the [SQL Editor](/dashboard/project/_/sql) in the Supabase Dashboard, or via `psql` if you're [connecting directly to the database](/docs/guides/database/connecting-to-postgres#direct-connections).
diff --git a/apps/docs/content/guides/database/postgres/setup-replication-external.mdx b/apps/docs/content/guides/database/postgres/setup-replication-external.mdx
index 797a8257c70..66c23063c55 100644
--- a/apps/docs/content/guides/database/postgres/setup-replication-external.mdx
+++ b/apps/docs/content/guides/database/postgres/setup-replication-external.mdx
@@ -42,7 +42,7 @@ PUBLICATION example_pub
WITH (copy_data = true, create_slot=false, slot_name=example_slot);
```
-
+
For projects running Postgres 17+, it is possible to subscribe to a [Read
Replica](/docs/guides/platform/read-replicas) by using your Read Replica's connection string.
diff --git a/apps/docs/content/guides/database/postgres/timeouts.mdx b/apps/docs/content/guides/database/postgres/timeouts.mdx
index 50d0bb9485d..cdaadd60264 100644
--- a/apps/docs/content/guides/database/postgres/timeouts.mdx
+++ b/apps/docs/content/guides/database/postgres/timeouts.mdx
@@ -70,7 +70,7 @@ Run the following query to change a role's timeout:
alter role example_role set statement_timeout = '10min'; -- could also use seconds '10s'
```
-
+
If you are changing the timeout for the Supabase Client API calls, you will need to reload PostgREST to reflect the timeout changes by running the following script:
diff --git a/apps/docs/content/guides/database/prisma.mdx b/apps/docs/content/guides/database/prisma.mdx
index f286f2bc8d1..059f603190c 100644
--- a/apps/docs/content/guides/database/prisma.mdx
+++ b/apps/docs/content/guides/database/prisma.mdx
@@ -325,7 +325,7 @@ If you plan to solely use Prisma instead of the Supabase Data API (PostgREST), t
--to-schema prisma/schema.prisma \
--script > prisma/migrations/0_init_supabase/migration.sql
```
-
+
If there are any conflicts, reference [Prisma's official doc](https://www.prisma.io/docs/orm/prisma-migrate/getting-started#work-around-features-not-supported-by-prisma-schema-language) or the [trouble shooting guide](/docs/guides/database/prisma/prisma-troubleshooting) for more details
diff --git a/apps/docs/content/guides/database/replication/pipelines.mdx b/apps/docs/content/guides/database/replication/pipelines.mdx
index 3812e0a6588..fa8f37d168e 100644
--- a/apps/docs/content/guides/database/replication/pipelines.mdx
+++ b/apps/docs/content/guides/database/replication/pipelines.mdx
@@ -27,7 +27,7 @@ For billing examples and optimization guidance, see [Manage Pipelines usage](/do
Pipelines requires two main components: a **Postgres publication** (defines what to replicate) and a **destination** (where data is sent). Supabase runs the managed pipeline that reads from the publication and writes to the destination. Follow these steps to set up your replication pipeline.
-
+
If you already have a Postgres publication set up, you can skip to [Step 2: Enable Pipelines](#step-2-enable-pipelines).
diff --git a/apps/docs/content/guides/database/tables.mdx b/apps/docs/content/guides/database/tables.mdx
index 96c0570f5dc..8a2e24b6750 100644
--- a/apps/docs/content/guides/database/tables.mdx
+++ b/apps/docs/content/guides/database/tables.mdx
@@ -452,7 +452,7 @@ create table private.salaries (
);
```
-
+
If you want to access a custom schema through the Supabase Data API, you need to expose it and grant the appropriate permissions. See [Using Custom Schemas](/docs/guides/api/using-custom-schemas) for detailed steps. For security best practices around schema exposure, see [Securing your API](/docs/guides/api/securing-your-api).
diff --git a/apps/docs/content/guides/deployment.mdx b/apps/docs/content/guides/deployment.mdx
index 5fc4a55cf77..23a111898f4 100644
--- a/apps/docs/content/guides/deployment.mdx
+++ b/apps/docs/content/guides/deployment.mdx
@@ -67,7 +67,7 @@ Branching creates isolated preview environments for each pull request, so you ca
Branching gives each pull request its own isolated Supabase environment with a full copy of your database schema (without any production data), so you can validate migrations and test your app end-to-end before merging to `main`.
-
+
Read the [self-hosting guides](/docs/guides/self-hosting) for instructions on hosting your own Supabase stack.
diff --git a/apps/docs/content/guides/deployment/branching/configuration.mdx b/apps/docs/content/guides/deployment/branching/configuration.mdx
index e6c9f9df3b4..281b28383d2 100644
--- a/apps/docs/content/guides/deployment/branching/configuration.mdx
+++ b/apps/docs/content/guides/deployment/branching/configuration.mdx
@@ -35,7 +35,7 @@ supabase --experimental branches create --persistent
# Do you want to create a branch named develop? [Y/n]
```
-
+
To retrieve the project ID for an existing branch, use the `branches list` command:
@@ -250,7 +250,7 @@ max_rows = 500
pool_size = 25
```
-
+
To retrieve the project ID for an existing branch, use the `branches list` command:
@@ -277,7 +277,7 @@ client_id = "env(GOOGLE_CLIENT_ID)"
secret = "env(GOOGLE_CLIENT_SECRET)"
```
-
+
To retrieve the project ID for an existing branch, use the `branches list` command:
diff --git a/apps/docs/content/guides/deployment/database-migrations.mdx b/apps/docs/content/guides/deployment/database-migrations.mdx
index d50618060c2..33875de908a 100644
--- a/apps/docs/content/guides/deployment/database-migrations.mdx
+++ b/apps/docs/content/guides/deployment/database-migrations.mdx
@@ -15,7 +15,7 @@ For this guide, we'll create a table called `employees` and see how we can make
You will need to [install](/docs/guides/local-development#quickstart) the Supabase CLI and start the local development stack.
-
+
If a lock timeout error occurs, in your migration file, consider increasing your [`lock_timeout`](https://postgresqlco.nf/doc/en/param/lock_timeout/) setting.
@@ -437,7 +437,7 @@ supabase db push
-
+
For a more automated deployment approach, consider using [Supabase Branching](/docs/guides/deployment/branching) or a CI/CD pipeline that runs `supabase db push` on merge to your main branch.
diff --git a/apps/docs/content/guides/deployment/going-into-prod.mdx b/apps/docs/content/guides/deployment/going-into-prod.mdx
index ffa3b028896..708d8b0f3fe 100644
--- a/apps/docs/content/guides/deployment/going-into-prod.mdx
+++ b/apps/docs/content/guides/deployment/going-into-prod.mdx
@@ -12,7 +12,7 @@ After developing your project and deciding it's production ready, you should run
## Security
-
+
Check and review issues in your database using [Security Advisor](/dashboard/project/_/database/security-advisor).
@@ -43,7 +43,7 @@ Check and review issues in your database using [Security Advisor](/dashboard/pro
## Performance
-
+
Check and review issues in your database using [Performance Advisor](/dashboard/project/_/database/performance-advisor).
diff --git a/apps/docs/content/guides/deployment/managing-environments.mdx b/apps/docs/content/guides/deployment/managing-environments.mdx
index 04213b6b000..96b87f8d013 100644
--- a/apps/docs/content/guides/deployment/managing-environments.mdx
+++ b/apps/docs/content/guides/deployment/managing-environments.mdx
@@ -92,7 +92,7 @@ supabase db reset
This command recreates your local database from scratch and applies all migration scripts under `supabase/migrations` directory. Now your local database is up to date.
-
+
The new migration command also supports stdin as input. This allows you to pipe in an existing script from another file or stdout:
@@ -146,7 +146,7 @@ This is because the default schema diff tool does not account for default privil
Commit the new migration script to git and you are ready to deploy.
-
+
Alternatively, you may pass in the `--use-migra` experimental flag to generate a more concise migration using [`migra`](https://github.com/djrobstep/migra).
diff --git a/apps/docs/content/guides/functions/ai-models.mdx b/apps/docs/content/guides/functions/ai-models.mdx
index 816c715bfe6..be13fa2acbf 100644
--- a/apps/docs/content/guides/functions/ai-models.mdx
+++ b/apps/docs/content/guides/functions/ai-models.mdx
@@ -26,7 +26,7 @@ Create a new inference session:
const model = new Supabase.ai.Session('model-name')
```
-
+
To get type hints and checks for the API, import types from `functions-js`:
diff --git a/apps/docs/content/guides/functions/auth-legacy-jwt.mdx b/apps/docs/content/guides/functions/auth-legacy-jwt.mdx
index 66375c88797..72f19204c05 100644
--- a/apps/docs/content/guides/functions/auth-legacy-jwt.mdx
+++ b/apps/docs/content/guides/functions/auth-legacy-jwt.mdx
@@ -37,7 +37,7 @@ Deno.serve(async (req: Request) => {
})
```
-
+
This context setting happens in the `Deno.serve()` callback argument, so that the `Authorization` header is set for each individual request scope.
diff --git a/apps/docs/content/guides/functions/cors.mdx b/apps/docs/content/guides/functions/cors.mdx
index eb0b2a1ed2f..1ca46368fd5 100644
--- a/apps/docs/content/guides/functions/cors.mdx
+++ b/apps/docs/content/guides/functions/cors.mdx
@@ -25,7 +25,7 @@ export default {
If your function doesn't use `withSupabase`, add the headers yourself. See the [example on GitHub](https://github.com/supabase/supabase/blob/master/examples/edge-functions/supabase/functions/browser-with-cors/index.ts).
-
+
**For `@supabase/supabase-js` v2.95.0 and later:** Import CORS headers directly from the SDK to ensure they stay synchronized with any new headers added to the client libraries.
diff --git a/apps/docs/content/guides/functions/deploy.mdx b/apps/docs/content/guides/functions/deploy.mdx
index d1a05e34bf1..61c4e79bb9f 100644
--- a/apps/docs/content/guides/functions/deploy.mdx
+++ b/apps/docs/content/guides/functions/deploy.mdx
@@ -34,7 +34,7 @@ Get the project ID associated with your function:
supabase projects list
```
-
+
If you haven't yet created a Supabase project, you can do so by visiting [database.new](https://database.new).
diff --git a/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx b/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx
index fc2fc0e67d6..baf14934ff4 100644
--- a/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx
+++ b/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx
@@ -8,7 +8,7 @@ tocVideo: '4Roog4PAmZ8'
In this tutorial you will learn how to build an edge API to generate, stream, store, and cache speech using Supabase Edge Functions, Supabase Storage, and [ElevenLabs text to speech API](https://elevenlabs.io/text-to-speech).
-
+
Find the [example project on GitHub](https://github.com/elevenlabs/elevenlabs-examples/tree/main/examples/text-to-speech/supabase/stream-and-cache-storage).
@@ -43,7 +43,7 @@ allowed_mime_types = ["audio/mp3"]
objects_path = "./audio"
```
-
+
Upon running `supabase start` this will create a new storage bucket in your local Supabase project. Should you want to push this to your hosted Supabase project, you can run `supabase seed buckets --linked`.
@@ -58,7 +58,7 @@ To use background tasks in Supabase Edge Functions when developing locally, you
policy = "per_worker"
```
-
+
When running with `per_worker` policy, Function won't auto-reload on edits. You will need to manually restart it by running `supabase functions serve`.
diff --git a/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx b/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx
index b5b574b5e98..34c91505ae7 100644
--- a/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx
+++ b/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx
@@ -10,7 +10,7 @@ In this tutorial you will learn how to build a Telegram bot that transcribes aud
To check out what the end result will look like, you can test out the [t.me/ElevenLabsScribeBot](https://t.me/ElevenLabsScribeBot)
-
+
Find the [example project on GitHub](https://github.com/elevenlabs/elevenlabs-examples/tree/main/examples/speech-to-text/telegram-transcription-bot).
diff --git a/apps/docs/content/guides/functions/quickstart-dashboard.mdx b/apps/docs/content/guides/functions/quickstart-dashboard.mdx
index 14db8b23f35..7c97d7c9627 100644
--- a/apps/docs/content/guides/functions/quickstart-dashboard.mdx
+++ b/apps/docs/content/guides/functions/quickstart-dashboard.mdx
@@ -9,7 +9,7 @@ Supabase allows you to create Supabase Edge Functions directly from the Supabase
This guide will walk you through creating, testing, and deploying your first Edge Function using the Supabase Dashboard. You'll have a working function running globally in under 10 minutes.
-
+
You can also create and deploy functions using the Supabase CLI. Check out our [CLI Quickstart guide](/docs/guides/functions/quickstart).
diff --git a/apps/docs/content/guides/functions/quickstart.mdx b/apps/docs/content/guides/functions/quickstart.mdx
index 600e268ff9a..0d523f023b6 100644
--- a/apps/docs/content/guides/functions/quickstart.mdx
+++ b/apps/docs/content/guides/functions/quickstart.mdx
@@ -9,7 +9,7 @@ This guide walks you through creating, testing locally, deploying, and invoking
You can also create and deploy functions directly from the Supabase Dashboard. Read [the Dashboard Quickstart guide](/docs/guides/functions/quickstart-dashboard) for more information.
-
+
Supabase Edge Functions **only** supports creating functions in TypeScript with [the Deno runtime](https://deno.com/). This is because Deno was designed with extensibility in mind and its Rust codebase offers a modern developer experience, memory safety, and other features ideal for running edge functions.
@@ -53,7 +53,7 @@ supabase functions new hello-world
{/* TODO: Link to parameter documentation */}
-
+
When an HTTP request is sent to Edge Functions, you can use Supabase Auth to secure endpoints. By default, the `supabase functions new` command adds handling a valid publishable or secret key to the basic template. However, you can change this behavior with the `--auth` flag when creating a new function.
@@ -132,7 +132,7 @@ After this step, you should have successfully tested your Edge Function locally
To deploy your function globally, you need to connect your local project to a Supabase project.
-
+
Create one at [database.new](https://database.new/).
diff --git a/apps/docs/content/guides/getting-started/api-keys.mdx b/apps/docs/content/guides/getting-started/api-keys.mdx
index b1cff12b380..ee97ebbe184 100644
--- a/apps/docs/content/guides/getting-started/api-keys.mdx
+++ b/apps/docs/content/guides/getting-started/api-keys.mdx
@@ -6,7 +6,7 @@ description: "First-layer protection for your project's data"
Supabase gives you fine-grained control over which application components are allowed to access your project through API keys.
-
+
In most cases, you can get the correct key from [the Project's **Connect** dialog](/dashboard/project/_?showConnect=true), but if you want a specific key, you can find all keys in the [**Settings > API Keys**](/dashboard/project/_/settings/api-keys/) section of the Dashboard:
diff --git a/apps/docs/content/guides/getting-started/quickstarts/kotlin.mdx b/apps/docs/content/guides/getting-started/quickstarts/kotlin.mdx
index eaf76bc137a..d59bf4cc187 100644
--- a/apps/docs/content/guides/getting-started/quickstarts/kotlin.mdx
+++ b/apps/docs/content/guides/getting-started/quickstarts/kotlin.mdx
@@ -28,7 +28,7 @@ Open `build.gradle.kts` (app) file and add the serialization plugin, Ktor client
Replace the version placeholders `$kotlin_version` with the Kotlin version of the project, and `$supabase_version` and `$ktor_version` with the respective latest versions.
-
+
You can find the latest supabase-kt version [on GitHub](https://github.com/supabase-community/supabase-kt/releases) and Ktor [in the Ktor documentation](https://ktor.io/docs/welcome.html).
diff --git a/apps/docs/content/guides/getting-started/quickstarts/nuxtjs.mdx b/apps/docs/content/guides/getting-started/quickstarts/nuxtjs.mdx
index 542b7b4976c..9fa3fb37b28 100644
--- a/apps/docs/content/guides/getting-started/quickstarts/nuxtjs.mdx
+++ b/apps/docs/content/guides/getting-started/quickstarts/nuxtjs.mdx
@@ -105,7 +105,7 @@ Start the app, navigate to http://localhost:3000 in the browser, and you should
npm run dev
```
-
+
The community-maintained [@nuxtjs/supabase](https://supabase.nuxtjs.org/) module provides an alternate DX for working with Supabase in Nuxt.
diff --git a/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx b/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx
index 2583f048ef1..501a6e3b7fe 100644
--- a/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx
+++ b/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx
@@ -10,7 +10,7 @@ breadcrumb: 'Framework Quickstarts'
[Create a new project](/dashboard) in the Supabase Dashboard.
-
+
Be sure to make note of the Database Password you used as you will need this later to connect to your database.
@@ -28,7 +28,7 @@ To get the Session mode connection pooler string, change the port of the connect
You will need the Transaction mode connection string and the Session mode connection string to set up environment variables in Step 6.
-
+
You can copy and paste these connection strings from the Supabase Dashboard when needed in later steps.
@@ -140,7 +140,7 @@ export default async () => {
Run the seed database command to populate the `Instrument` table with the instruments you created.
-
+
The reset database command `yarn rw prisma db reset` recreates the tables and also runs the seed script.
diff --git a/apps/docs/content/guides/getting-started/quickstarts/refine.mdx b/apps/docs/content/guides/getting-started/quickstarts/refine.mdx
index a3a3389d5e1..91650e8eaf1 100644
--- a/apps/docs/content/guides/getting-started/quickstarts/refine.mdx
+++ b/apps/docs/content/guides/getting-started/quickstarts/refine.mdx
@@ -82,7 +82,7 @@ npm run refine create-resource instruments
Add routes for the `list`, `create`, `show`, and `edit` pages.
-
+
Remove the `index` route for the Welcome page presented with the ` ` component.
diff --git a/apps/docs/content/guides/getting-started/tutorials/with-angular.mdx b/apps/docs/content/guides/getting-started/tutorials/with-angular.mdx
index f6b075f0485..c65739aed50 100644
--- a/apps/docs/content/guides/getting-started/tutorials/with-angular.mdx
+++ b/apps/docs/content/guides/getting-started/tutorials/with-angular.mdx
@@ -58,7 +58,7 @@ Optionally, update `src/styles.css` to style the app. You can find the full cont
You need an Angular component to manage logins and sign ups. The component uses [Magic Links](/docs/guides/auth/auth-email-passwordless#with-magic-link), so users can sign in with their email without using passwords.
-
+
You can customize other emails sent out to new users, including the email's looks, content, and query parameters from [the **Authentication > Email**](/dashboard/project/_/auth/templates) section of the Dashboard.
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 bc3467a8f54..762d159ea33 100644
--- a/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx
+++ b/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx
@@ -182,7 +182,7 @@ Before proceeding, change the email template to support a server-side authentica
- Select the **Confirm signup** template.
- Change `{{ .ConfirmationURL }}` to `{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email`.
-
+
You can customize other emails sent out to new users, including the email's looks, content, and query parameters from [the **Authentication > Email**](/dashboard/project/_/auth/templates) section of the Dashboard.
diff --git a/apps/docs/content/guides/getting-started/tutorials/with-react.mdx b/apps/docs/content/guides/getting-started/tutorials/with-react.mdx
index 690f32feb0b..43c27e7c434 100644
--- a/apps/docs/content/guides/getting-started/tutorials/with-react.mdx
+++ b/apps/docs/content/guides/getting-started/tutorials/with-react.mdx
@@ -62,7 +62,7 @@ You can find the full contents of this file [in the example repository](https://
You need a React component to manage logins and sign-ups. It uses [Magic Links](/docs/guides/auth/auth-email-passwordless#with-magic-link), so users can sign in with their email without using passwords.
-
+
You can customize other emails sent out to new users, including the email's looks, content, and query parameters from [the **Authentication > Email**](/dashboard/project/_/auth/templates) section of the Dashboard.
diff --git a/apps/docs/content/guides/getting-started/tutorials/with-svelte.mdx b/apps/docs/content/guides/getting-started/tutorials/with-svelte.mdx
index 0ec26c0f8d1..278ce203502 100644
--- a/apps/docs/content/guides/getting-started/tutorials/with-svelte.mdx
+++ b/apps/docs/content/guides/getting-started/tutorials/with-svelte.mdx
@@ -120,7 +120,7 @@ npm run dev
And then open the browser to [localhost:5173](http://localhost:5173) and you should see the completed app.
-
+
Svelte uses Vite and the default port is `5173`, Supabase uses `port 3000`. To change the redirection port for Supabase go to: **Authentication > URL Configuration** and change the **Site URL** to `http://localhost:5173/`
diff --git a/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx b/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx
index 0e6c1728038..2b8e65cf305 100644
--- a/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx
+++ b/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx
@@ -102,7 +102,7 @@ meta="name=src/routes/+layout.server.ts"
$CodeTabs>
-
+
Start the dev server (`npm run dev`) to generate the `./$types` files we are referencing in our project.
@@ -169,7 +169,7 @@ Before proceeding, change the email template to support sending a token hash:
- Change `{{ .ConfirmationURL }}` to `{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email`.
- Repeat the previous step for **Magic link** template.
-
+
You can also customize emails sent out to new users, including the email's looks, content, and query parameters. Check out the [settings of your project](/dashboard/project/_/auth/templates).
diff --git a/apps/docs/content/guides/integrations/partner-integration-guide.mdx b/apps/docs/content/guides/integrations/partner-integration-guide.mdx
index 6df0fa75f51..bc72ace2f53 100644
--- a/apps/docs/content/guides/integrations/partner-integration-guide.mdx
+++ b/apps/docs/content/guides/integrations/partner-integration-guide.mdx
@@ -263,7 +263,7 @@ When a user arrives at this endpoint:
3. Optionally, walk the user through any setup required on your side — for example, signing up, signing in, or configuring your system so the integration will work.
4. Redirect the user to the [Supabase authorization URL](/docs/guides/integrations/build-a-supabase-oauth-integration#redirecting-to-the-authorize-url) to start the OAuth flow.
-
+
If you need the user to perform setup steps on your site, design the experience as a wizard that ends by redirecting to the Supabase authorization URL. This minimizes the chance of users getting distracted, navigating elsewhere on your site, and abandoning the OAuth flow.
diff --git a/apps/docs/content/guides/local-development/cli-workflows.mdx b/apps/docs/content/guides/local-development/cli-workflows.mdx
index 226ad9c936b..f05de923adc 100644
--- a/apps/docs/content/guides/local-development/cli-workflows.mdx
+++ b/apps/docs/content/guides/local-development/cli-workflows.mdx
@@ -29,7 +29,7 @@ Every example in this guide is written as `supabase `. Translate it to
-
+
If you want a working project to explore rather than an empty one, `supabase bootstrap` scaffolds a starter application (Next.js, Flutter, and more) with schema, migrations, and config already wired up. It's an alternative entry point to `supabase init` when starting a new project from scratch.
@@ -107,7 +107,7 @@ This initial migration is your baseline. It represents the current state of your
-
+
If you also use Supabase Auth or Storage and have customized their schemas, pull them separately:
diff --git a/apps/docs/content/guides/local-development/cli/getting-started.mdx b/apps/docs/content/guides/local-development/cli/getting-started.mdx
index b752929f3ed..5ea553217f6 100644
--- a/apps/docs/content/guides/local-development/cli/getting-started.mdx
+++ b/apps/docs/content/guides/local-development/cli/getting-started.mdx
@@ -230,7 +230,7 @@ npm update supabase@beta --save-dev
If you have any Supabase containers running locally, stop them and delete their data volumes before proceeding with the upgrade. This ensures that Supabase managed services can apply new migrations on a clean state of the local database.
-
+
Remember to save any local schema and data changes before stopping because the `--no-backup` flag will delete them.
diff --git a/apps/docs/content/guides/local-development/database-migrations.mdx b/apps/docs/content/guides/local-development/database-migrations.mdx
index 530fb2941a0..ebbf6cb9030 100644
--- a/apps/docs/content/guides/local-development/database-migrations.mdx
+++ b/apps/docs/content/guides/local-development/database-migrations.mdx
@@ -13,7 +13,7 @@ Develop locally using the CLI to run a local Supabase stack. You can use the int
Alternatively, if you're comfortable with migration files and SQL, you can write your own migrations and push them to the local database for testing before sharing your changes.
-
+
This page is a focused tutorial on migrations. If you want to move an existing platform project to local development, or set up a reproducible project from scratch and take it all the way to a remote deploy, see the [Local development workflow](/docs/guides/local-development/cli-workflows) guide. It covers both starting points, the daily development loop, pushing to production, cleaning up generated migrations, and troubleshooting.
diff --git a/apps/docs/content/guides/local-development/declarative-database-schemas.mdx b/apps/docs/content/guides/local-development/declarative-database-schemas.mdx
index e820b4971b3..513d129fd51 100644
--- a/apps/docs/content/guides/local-development/declarative-database-schemas.mdx
+++ b/apps/docs/content/guides/local-development/declarative-database-schemas.mdx
@@ -123,7 +123,7 @@ create table "employees" (
-
+
Some entities like views and enums expect columns to be declared in a specific order. To avoid messy diffs, always append new columns to the end of the table.
diff --git a/apps/docs/content/guides/local-development/seeding-your-database.mdx b/apps/docs/content/guides/local-development/seeding-your-database.mdx
index 777239a1fe2..c8b6bff0b42 100644
--- a/apps/docs/content/guides/local-development/seeding-your-database.mdx
+++ b/apps/docs/content/guides/local-development/seeding-your-database.mdx
@@ -46,7 +46,7 @@ enabled = true
sql_paths = ['./seeds/*.sql']
```
-
+
The CLI processes seed files in the order they are declared in the `sql_paths` array. If a glob pattern is used and matches multiple files, those files are sorted in lexicographic order to ensure consistent execution. Additionally:
@@ -66,7 +66,7 @@ Snaplet wound down as a company in 2024 and open-sourced its tooling. `@snaplet/
-
+
To use Snaplet, you need to have Node.js and npm installed. You can add Node.js to your project by running `npm init -y` in your project directory.
@@ -80,7 +80,7 @@ npx @snaplet/seed init
This command will analyze your database and its structure, and then generate a JavaScript client which can be used to define exactly how your data should be generated using code. The `init` command generates a configuration file, `seed.config.ts` and an example script, `seed.ts`, as a starting point.
-
+
During `init` if you are not using an Object Relational Mapper (ORM) or your ORM is not in the supported list, choose `node-postgres`.
diff --git a/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx b/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx
index dc5f08800da..1698edc08f2 100644
--- a/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx
+++ b/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx
@@ -82,7 +82,7 @@ CREATE EXTENSION IF NOT EXISTS extension_name;
### Step 1: Set up migration VM
-
+
For optimal performance, run the migration from a cloud VM, not your local machine. The VM should be in the same region as either your source or target database to optimize network performance. See the Resource Requirements table in Step 2 for VM sizing recommendations.
diff --git a/apps/docs/content/guides/platform/read-replicas/getting-started.mdx b/apps/docs/content/guides/platform/read-replicas/getting-started.mdx
index 085cdb2e218..bfb7cf827e9 100644
--- a/apps/docs/content/guides/platform/read-replicas/getting-started.mdx
+++ b/apps/docs/content/guides/platform/read-replicas/getting-started.mdx
@@ -127,7 +127,7 @@ There is no single threshold to indicate when you should address replication lag
-
+
If you are already ingesting your [project's metrics](/docs/guides/telemetry/metrics) into your own environment, you can also keep track of replication lag and set alarms with the `physical_replication_lag_physical_replica_lag_seconds` metric.
@@ -142,7 +142,7 @@ Some common sources of high replication lag include:
3. **Long-running transactions on the Primary**: Transactions that run for a long-time on the primary can also result in high replication lag. You can use the `pg_stat_activity` view to identify and terminate such transactions if needed. `pg_stat_activity` is a live view, and does not offer historical data on transactions that might have been active for a long time in the past.
High replication lag can result in stale data returned for queries executed against the affected read replicas.
-
+
You can find additional resources on replication lag in [the Google documentation](https://cloud.google.com/sql/docs/postgres/replication/replication-lag), [the AWS documentation](https://repost.aws/knowledge-center/rds-postgresql-replication-lag), and [the several nines blog](https://severalnines.com/blog/what-look-if-your-postgresql-replication-lagging/).
diff --git a/apps/docs/content/guides/platform/sso.mdx b/apps/docs/content/guides/platform/sso.mdx
index 2349a28d27c..1b892d37b3f 100644
--- a/apps/docs/content/guides/platform/sso.mdx
+++ b/apps/docs/content/guides/platform/sso.mdx
@@ -3,7 +3,7 @@ title: 'Enable SSO for Your Organization'
description: 'General information about enabling single sign-on (SSO) for your organization'
---
-
+
Looking for docs on how to add Single Sign-On support in your Supabase project? Head on over to [Single Sign-On with SAML 2.0 for Projects](/docs/guides/auth/enterprise-sso/auth-sso-saml).
@@ -29,7 +29,7 @@ Once configured, you can update your settings anytime from [the **SSO** section]

-
+
After configuring your SSO provider, thorough testing is essential. See our [SSO Testing and Best Practices](/docs/guides/platform/sso/testing-best-practices) guide for:
diff --git a/apps/docs/content/guides/platform/sso/azure.mdx b/apps/docs/content/guides/platform/sso/azure.mdx
index 6daa75a6f94..913f534ed24 100644
--- a/apps/docs/content/guides/platform/sso/azure.mdx
+++ b/apps/docs/content/guides/platform/sso/azure.mdx
@@ -9,7 +9,7 @@ This feature is only available on the [Team and Enterprise Plans](/pricing). If
-
+
Looking for docs on how to add Single Sign-On support in your Supabase project? Head on over to [Single Sign-On with SAML 2.0 for Projects](/docs/guides/auth/enterprise-sso/auth-sso-saml).
diff --git a/apps/docs/content/guides/platform/sso/choosing-login-flow.mdx b/apps/docs/content/guides/platform/sso/choosing-login-flow.mdx
index 8816d78ac1c..2e6d6c65ed3 100644
--- a/apps/docs/content/guides/platform/sso/choosing-login-flow.mdx
+++ b/apps/docs/content/guides/platform/sso/choosing-login-flow.mdx
@@ -5,7 +5,7 @@ description: 'Quick reference guide to help you choose between IdP-initiated, SP
Not sure which single sign-on (SSO) login flow to enable? This guide maps common enterprise scenarios to the recommended configuration.
-
+
Start with identity provider (IdP)-initiated, the default behavior. It requires no domain configuration, and works for most enterprise use cases. You can enable SP-initiated later if needed.
@@ -306,7 +306,7 @@ If you're uncertain which configuration to use:
4. Enable SP-initiated if users request it
5. Monitor usage to see which flow is preferred
-
+
If you need help choosing the right configuration for your organization, contact Supabase support with details about your use case. We're happy to provide personalized recommendations.
diff --git a/apps/docs/content/guides/platform/sso/gsuite.mdx b/apps/docs/content/guides/platform/sso/gsuite.mdx
index 608d8f03d0c..d28c1fda108 100644
--- a/apps/docs/content/guides/platform/sso/gsuite.mdx
+++ b/apps/docs/content/guides/platform/sso/gsuite.mdx
@@ -9,7 +9,7 @@ This feature is only available on the [Team and Enterprise Plans](/pricing). If
-
+
Looking for docs on how to add Single Sign-On support in your Supabase project? Head on over to [Single Sign-On with SAML 2.0 for Projects](/docs/guides/auth/enterprise-sso/auth-sso-saml).
@@ -134,7 +134,7 @@ If you did not customize your settings you may save some time by clicking the **
## Step 12: Join organization on signup (optional) [#dashboard-configure-autojoin]
-
+
**Recommended workflow:** Start with auto-join **disabled** to test your SSO configuration. Once SSO login is working correctly, enable auto-join if desired.
@@ -164,7 +164,7 @@ Visit [access-control](/docs/guides/platform/access-control) documentation for d
When you click **Save changes**, your new SSO configuration is applied immediately. From that moment, any user with an email address matching one of your configured domains who visits your organization's sign-in URL will be routed through the SSO flow.
-
+
**Next step: Test your SSO configuration**
diff --git a/apps/docs/content/guides/platform/sso/login-flows.mdx b/apps/docs/content/guides/platform/sso/login-flows.mdx
index 806efb9c9ea..b67b0fab734 100644
--- a/apps/docs/content/guides/platform/sso/login-flows.mdx
+++ b/apps/docs/content/guides/platform/sso/login-flows.mdx
@@ -5,7 +5,7 @@ description: 'Learn about IdP-initiated and SP-initiated SSO login flows and whe
When configuring SSO for your organization, you can choose between two different login flows: **identity provider (IdP)-initiated** and **service provider (SP)-initiated**. Understanding the difference helps you provide the best experience for your users.
-
+
Most enterprises use IdP-initiated flow for its simplicity and better user experience. Enable SP-initiated only if you need users to start their login journey at supabase.com.
@@ -214,7 +214,7 @@ This is often impractical since all employees use `company.com` email addresses.
Users click the appropriate tile for the environment they need.
-
+
This is the recommended approach for enterprises with multiple environments. Configure each environment as IdP-initiated only (no domains needed).
diff --git a/apps/docs/content/guides/platform/sso/multiple-providers.mdx b/apps/docs/content/guides/platform/sso/multiple-providers.mdx
index 3c28ee06e70..7e5f49b3a53 100644
--- a/apps/docs/content/guides/platform/sso/multiple-providers.mdx
+++ b/apps/docs/content/guides/platform/sso/multiple-providers.mdx
@@ -21,7 +21,7 @@ The traditional challenge with multiple SAML apps is domain conflicts. With SP-i
**Solution:** Use identity provider (IdP)-initiated flow, which doesn't require domain configuration. You can create unlimited SAML apps under the same domain.
-
+
Configure each environment as IdP-initiated only (no domains). Users access each environment through different app tiles in your identity provider.
diff --git a/apps/docs/content/guides/platform/sso/okta.mdx b/apps/docs/content/guides/platform/sso/okta.mdx
index b62cd6588ab..8e51b7d7940 100644
--- a/apps/docs/content/guides/platform/sso/okta.mdx
+++ b/apps/docs/content/guides/platform/sso/okta.mdx
@@ -9,7 +9,7 @@ This feature is only available on the [Team and Enterprise Plans](/pricing). If
-
+
Looking for docs on how to add Single Sign-On support in your Supabase project? Head on over to [Single Sign-On with SAML 2.0 for Projects](/docs/guides/auth/enterprise-sso/auth-sso-saml).
@@ -120,7 +120,7 @@ If you did not customize your settings you may save some time by clicking the **
## Step 11: Join organization on signup (optional) [#dashboard-configure-autojoin]
-
+
**Recommended workflow:** Start with auto-join **disabled** to test your SSO configuration. Once SSO login is working correctly, enable auto-join if desired.
@@ -150,7 +150,7 @@ Visit [access-control](/docs/guides/platform/access-control) documentation for d
When you click **Save changes**, your new SSO configuration is applied immediately. From that moment, any user with an email address matching one of your configured domains who visits your organization's sign-in URL will be routed through the SSO flow.
-
+
**Next step: Test your SSO configuration**
diff --git a/apps/docs/content/guides/platform/sso/testing-best-practices.mdx b/apps/docs/content/guides/platform/sso/testing-best-practices.mdx
index a85c237a688..7877fc94f31 100644
--- a/apps/docs/content/guides/platform/sso/testing-best-practices.mdx
+++ b/apps/docs/content/guides/platform/sso/testing-best-practices.mdx
@@ -129,7 +129,7 @@ You've configured SSO with:
- ✅ Multiple environments accessible via different tiles
- ✅ No domain conflicts between environments
-
+
**Multiple environments:** If you're setting up Dev/Staging/Prod, this domainless pattern is recommended. See [Multiple SSO Providers](/docs/guides/platform/sso/multiple-providers) for detailed configuration guidance.
diff --git a/apps/docs/content/guides/platform/upgrading.mdx b/apps/docs/content/guides/platform/upgrading.mdx
index cc263f84b46..beec25a2169 100644
--- a/apps/docs/content/guides/platform/upgrading.mdx
+++ b/apps/docs/content/guides/platform/upgrading.mdx
@@ -142,7 +142,7 @@ In projects using Postgres 17, the following extensions are deprecated:
Projects planning to upgrade from Postgres 15 to Postgres 17 need to first disable these extensions in the [Supabase Dashboard](/dashboard/project/_/database/extensions).
-
+
`pgjwt` was enabled by default on every Supabase project up until Postgres 17. If you weren't explicitly using `pgjwt` in your project, it's most likely safe to disable.
diff --git a/apps/docs/content/guides/queues/quickstart.mdx b/apps/docs/content/guides/queues/quickstart.mdx
index ce44b7fda84..f93effb9add 100644
--- a/apps/docs/content/guides/queues/quickstart.mdx
+++ b/apps/docs/content/guides/queues/quickstart.mdx
@@ -51,7 +51,7 @@ On the [Queues page](/dashboard/project/_/integrations/queues/queues):
- Name your queue
-
+
Queue names can only be lowercase and hyphens and underscores are permitted.
@@ -73,7 +73,7 @@ width={1456}
height={1420}
/>
-
+
Every new Queue creates two tables in the `pgmq` schema. These tables are `pgmq.q_` to store and process active messages and `pgmq.a_` to store any archived messages.
diff --git a/apps/docs/content/guides/realtime/limits.mdx b/apps/docs/content/guides/realtime/limits.mdx
index 6ac95151ec2..935a5c1fcc4 100644
--- a/apps/docs/content/guides/realtime/limits.mdx
+++ b/apps/docs/content/guides/realtime/limits.mdx
@@ -38,7 +38,7 @@ When you exceed a limit, errors will appear in the backend logs and client-side
- **Logs**: check the [Realtime logs](/dashboard/project/_/database/realtime-logs) inside your project Dashboard.
- **WebSocket errors**: Use your browser's developer tools to find the WebSocket initiation request and view individual messages.
-
+
You can use the [Realtime Inspector](https://realtime.supabase.com/inspector/new) to reproduce an error and share those connection details with Supabase support.
diff --git a/apps/docs/content/guides/realtime/postgres-changes.mdx b/apps/docs/content/guides/realtime/postgres-changes.mdx
index d2ee8773622..702d7bd8810 100644
--- a/apps/docs/content/guides/realtime/postgres-changes.mdx
+++ b/apps/docs/content/guides/realtime/postgres-changes.mdx
@@ -1064,7 +1064,7 @@ You can also [negate any operator](#negating-a-filter-not) with `not.` and [comb
<$Show if="sdk:js">
-
+
In JavaScript you can pass a raw filter string, or build one with the type-safe `postgresChangesFilter()` helper, which handles operator names, negation, `AND` composition, and escaping for you:
@@ -3256,7 +3256,7 @@ Use the estimator below to gauge the maximum throughput for your instance, and r
-
+
If you expect more than ~3,000 concurrent subscribers on the same changes, use [Broadcast to stream database changes](/docs/guides/realtime/subscribing-to-database-changes#using-broadcast) instead. Broadcast sends each change once and fans it out to all subscribers, so it scales to far higher connection counts than per-subscriber authorization allows.
diff --git a/apps/docs/content/guides/realtime/reports.mdx b/apps/docs/content/guides/realtime/reports.mdx
index 23b10880524..427f8fae047 100644
--- a/apps/docs/content/guides/realtime/reports.mdx
+++ b/apps/docs/content/guides/realtime/reports.mdx
@@ -14,7 +14,7 @@ These reports help you:
- Troubleshoot errors and connection issues
- Plan capacity upgrades based on usage trends
-
+
Access Realtime reports from **[Project Settings > Product Reports > Realtime](/dashboard/project/_/observability/realtime)** in your project dashboard.
diff --git a/apps/docs/content/guides/security/npm-security.mdx b/apps/docs/content/guides/security/npm-security.mdx
index 0eabaf57113..8cfc96e5b7f 100644
--- a/apps/docs/content/guides/security/npm-security.mdx
+++ b/apps/docs/content/guides/security/npm-security.mdx
@@ -6,7 +6,7 @@ description: 'Consumer-side guide to hardening your npm installs of Supabase pac
A practical guide for anyone installing Supabase packages from npm — the JavaScript client libraries (`@supabase/supabase-js` and friends), the `supabase` CLI, or any other dependency in your tree — on defending against supply-chain attacks. Most of it applies to any npm package, not only Supabase's.
-
+
Looking to **report** a vulnerability in Supabase itself? See the [Supabase security policy](https://github.com/supabase/supabase-js/security) instead. This guide is about hardening your install of Supabase (and other) packages on your machines and in your CI.
diff --git a/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx b/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx
index 57c780c2bb6..370c76591f3 100644
--- a/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx
+++ b/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx
@@ -41,7 +41,7 @@ For better performance with large files, use the direct storage hostname: `https
Buckets must exist on the destination before you can copy objects into them. You can create them through the dashboard UI, or with the **SQL Editor**.
-
+
If you already restored your platform database to self-hosted using the [restore guide](/docs/guides/self-hosting/restore-from-platform), your bucket definitions are already present. You can skip this step.
diff --git a/apps/docs/content/guides/self-hosting/custom-email-templates.mdx b/apps/docs/content/guides/self-hosting/custom-email-templates.mdx
index 12b778f6cb6..f130534b30f 100644
--- a/apps/docs/content/guides/self-hosting/custom-email-templates.mdx
+++ b/apps/docs/content/guides/self-hosting/custom-email-templates.mdx
@@ -20,7 +20,7 @@ To provide templates to Supabase Auth, you need a service that serves static HTM
This guide uses [Caddy](https://github.com/caddyserver/caddy) for serving templates.
-
+
If Supabase Auth cannot fetch the template or if the fetched template is invalid, it falls back to the default template.
diff --git a/apps/docs/content/guides/self-hosting/docker.mdx b/apps/docs/content/guides/self-hosting/docker.mdx
index b07fa0f9c61..648701f8c0e 100644
--- a/apps/docs/content/guides/self-hosting/docker.mdx
+++ b/apps/docs/content/guides/self-hosting/docker.mdx
@@ -54,7 +54,7 @@ Minimum requirements for running all Supabase components, suitable for developme
If you don't need specific services, such as Realtime, Storage, imgproxy, or Edge Runtime (`functions`), you can remove the corresponding sections and dependencies from `docker-compose.yml` to reduce resource requirements.
-
+
The default configuration does not include [Logs & Analytics](/features/logs-analytics). You can [enable](#enabling-analytics) Logflare (Analytics), Vector (log collection), and the Log Explorer in Studio by using an optional docker-compose override file. Note that enabling these services will increase resource requirements.
@@ -184,7 +184,7 @@ docker compose pull
-
+
If you are using rootless Docker, edit `.env` and set `DOCKER_SOCKET_LOCATION` to your docker socket location. For example: `/run/user/1000/docker.sock`. Otherwise, you will see an error like `container supabase-vector exited (0)`.
diff --git a/apps/docs/content/guides/self-hosting/remove-superuser-access.mdx b/apps/docs/content/guides/self-hosting/remove-superuser-access.mdx
index 3402ab4f177..896edba2f6b 100644
--- a/apps/docs/content/guides/self-hosting/remove-superuser-access.mdx
+++ b/apps/docs/content/guides/self-hosting/remove-superuser-access.mdx
@@ -29,7 +29,7 @@ Use the provided script to reassign ownership of database objects in the `public
sh utils/reassign-owner.sh
```
-
+
This script only updates ownership for database objects in the `public` schema. Supabase-managed and custom schemas are not affected.
@@ -53,7 +53,7 @@ This script only updates ownership for database objects in the `public` schema.
PG_META_DB_USER: postgres
```
-
+
Studio uses its own credentials to access Postgres via `postgres-meta`, so this change is only needed for backward compatibility and consistency.
diff --git a/apps/docs/content/guides/self-hosting/restore-from-platform.mdx b/apps/docs/content/guides/self-hosting/restore-from-platform.mdx
index c5d49ee3255..b0ccb621174 100644
--- a/apps/docs/content/guides/self-hosting/restore-from-platform.mdx
+++ b/apps/docs/content/guides/self-hosting/restore-from-platform.mdx
@@ -121,7 +121,7 @@ Your `auth.users` table and related data are included in the database dump, so u
Managed Supabase may run a newer Postgres version (Postgres 17) than the self-hosted Docker image (currently it's Postgres 15 by default). The `supabase db dump` command produces plain SQL files that work across major Postgres versions.
-
+
If your managed project runs Postgres 17, consider starting your self-hosted deployment with Postgres 17 as well. See the [Postgres 17 guide](/docs/guides/self-hosting/postgres-upgrade-17) for setup instructions.
diff --git a/apps/docs/content/guides/self-hosting/self-hosted-proxy-https.mdx b/apps/docs/content/guides/self-hosting/self-hosted-proxy-https.mdx
index 12c808b46a6..6c1dea4ddc1 100644
--- a/apps/docs/content/guides/self-hosting/self-hosted-proxy-https.mdx
+++ b/apps/docs/content/guides/self-hosting/self-hosted-proxy-https.mdx
@@ -20,7 +20,7 @@ You need:
Below are two options for adding a reverse proxy with automatic HTTPS in front of your self-hosted Supabase: **Caddy** (simpler, zero-config TLS) and **Nginx + Let's Encrypt** (more control over proxy settings). Both sit in front of the API gateway and terminate TLS, so internal traffic stays on HTTP.
-
+
If you already run [HAProxy](https://www.haproxy.com/), [Traefik](https://traefik.io/), [Nginx Proxy Manager](https://nginxproxymanager.com/), or another reverse proxy for your infrastructure, you can use it instead of Caddy or Nginx above. The key requirements are:
diff --git a/apps/docs/content/guides/self-hosting/self-hosted-saml-sso.mdx b/apps/docs/content/guides/self-hosting/self-hosted-saml-sso.mdx
index 05993e0fbc6..e0514267ef9 100644
--- a/apps/docs/content/guides/self-hosting/self-hosted-saml-sso.mdx
+++ b/apps/docs/content/guides/self-hosting/self-hosted-saml-sso.mdx
@@ -65,7 +65,7 @@ Keep this key secret. Anyone with the private key can forge SAML requests on beh
-
+
For a production deployment, consider using a 4096-bit key by adding `-pkeyopt rsa_keygen_bits:4096` to the `openssl genpkey` command above.
@@ -136,7 +136,7 @@ curl http://