diff --git a/apps/docs/content/guides/getting-started/ai-prompts.mdx b/apps/docs/content/guides/getting-started/ai-prompts.mdx
index 706a56033ba48..fa2dd7bcfaf0a 100644
--- a/apps/docs/content/guides/getting-started/ai-prompts.mdx
+++ b/apps/docs/content/guides/getting-started/ai-prompts.mdx
@@ -14,3 +14,16 @@ Use the "include file" feature from your AI tool to include the prompt when chat
## Prompts
+
+## Use in different environments
+
+You can load these prompts into various tools. Here are common options and where to place the prompt:
+
+| Environment | Where to put prompt | Installation instructions |
+| -------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| Cursor | Project rules (`.cursor/rules/*.md` or `.mdx`) | [Configure project rules](https://docs.cursor.com/en/context/rules) |
+| GitHub Copilot | `.github/copilot-instructions.md` | [Custom instructions in Copilot](https://code.visualstudio.com/docs/copilot/copilot-customization#_custom-instructions) |
+| JetBrains IDEs | `guidelines.md` | [Customize guidelines](https://www.jetbrains.com/help/junie/customize-guidelines.html) |
+| Gemini CLI | `GEMINI.md` | [Gemini CLI codelab](https://codelabs.developers.google.com/gemini-cli-hands-on) |
+| VS Code | `.instructions.md` | Configure `.instructions.md` |
+| Windsurf | `guidelines.md` | Configure `guidelines.md` |
diff --git a/apps/docs/content/guides/getting-started/mcp.mdx b/apps/docs/content/guides/getting-started/mcp.mdx
index 60459e4947d1c..30addfc75149a 100644
--- a/apps/docs/content/guides/getting-started/mcp.mdx
+++ b/apps/docs/content/guides/getting-started/mcp.mdx
@@ -28,6 +28,8 @@ After you log in, check that the MCP server is connected. For instance, in Curso
To verify the client has access to the MCP server tools, try asking it to query your project or database using natural language. For example: "What tables are there in the database? Use MCP tools."
+For curated, ready-to-use prompts that work well with IDEs and AI agents, see our [AI Prompts](/guides/getting-started/ai-prompts) collection.
+
## Manual authentication
By default the hosted Supabase MCP server uses [dynamic client registration](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#dynamic-client-registration) to authenticate with your Supabase org. This means that you don't need to manually create a personal access token (PAT) or OAuth app to use the server.
diff --git a/apps/docs/content/troubleshooting/converted-github-account-to-organisation---lost-supabase-account-access-5wsE_1.mdx b/apps/docs/content/troubleshooting/converted-github-account-to-organisation---lost-supabase-account-access-5wsE_1.mdx
index ed8ae7d401d59..108774f092a47 100644
--- a/apps/docs/content/troubleshooting/converted-github-account-to-organisation---lost-supabase-account-access-5wsE_1.mdx
+++ b/apps/docs/content/troubleshooting/converted-github-account-to-organisation---lost-supabase-account-access-5wsE_1.mdx
@@ -11,4 +11,4 @@ database_id = "94c6e33b-cc05-49b3-b010-7480f8dde843"
If possible, create a new GitHub account using the **same email** as the previous GitHub account that was turned into a Organization or that was deleted. Once you sign in with that newly created account, you should have access to the old account. You can then invite any new account to have access to the Organization and Projects as needed.
-If that is not possible, Supabase can help you transfer ownership of an existing organization on your account by inviting a new owner to your organization. This new user will need to have a different email from the previous one, and you will need to email support@supabase.com with that new email as well to confirm that you own the email address.
+If that is not possible, Supabase can help you transfer ownership of an existing organization on your account by inviting a new owner to your organization. This new user will need to have a different email from the previous one, and you will need to email [support@supabase.com](email:support@supabase.com) with that new email as well to confirm that you own the email address.
diff --git a/apps/docs/content/troubleshooting/edge-function-fails-deploy.mdx b/apps/docs/content/troubleshooting/edge-function-fails-deploy.mdx
index 38ae0f1a32b83..96817a25d40c8 100644
--- a/apps/docs/content/troubleshooting/edge-function-fails-deploy.mdx
+++ b/apps/docs/content/troubleshooting/edge-function-fails-deploy.mdx
@@ -26,18 +26,13 @@ If you're not able to run the CLI or cannot identify the cause, [open a support
```
$ supabase functions deploy FUNCTION_NAME --project-ref $PROJECT_ID
-...
-unexpected deploy status 500: {"message":"Function deploy failed due to an internal error"}
```
**Example output with `--debug`**
-- From the details we can see it is exceeding the 20MB [Edge Function size limit](/docs/guides/functions/limits)
+From the details we can see it is exceeding the 20MB [Edge Function size limit](/docs/guides/functions/limits):
```
$ supabase functions deploy FUNCTION_NAME --project-ref $PROJECT_ID --debug
-...
Deploying Function: FUNCTION_NAME (script size: 62.61MB)
-...
-unexpected update function status 413: {"message":"request entity too large"}
```
diff --git a/apps/docs/content/troubleshooting/failed-to-run-sql-query-connection-terminated-due-to-connection-timeout.mdx b/apps/docs/content/troubleshooting/failed-to-run-sql-query-connection-terminated-due-to-connection-timeout.mdx
index 4e4cfab65842f..e33ace0060993 100644
--- a/apps/docs/content/troubleshooting/failed-to-run-sql-query-connection-terminated-due-to-connection-timeout.mdx
+++ b/apps/docs/content/troubleshooting/failed-to-run-sql-query-connection-terminated-due-to-connection-timeout.mdx
@@ -2,7 +2,6 @@
title = "Error: Failed to run sql query: Connection terminated due to connection timeout"
topics = [ "database", "studio" ]
database_id = "7529ca12-114b-485c-9b64-bca3b2dc744b"
-
[[errors]]
http_status_code = 500
message = "Error: Failed to run sql query: Connection terminated due to connection timeout"
diff --git a/apps/docs/content/troubleshooting/high-cpu-and-slow-queries-with-error-must-be-a-superuser-to-terminate-superuser-process.mdx b/apps/docs/content/troubleshooting/high-cpu-and-slow-queries-with-error-must-be-a-superuser-to-terminate-superuser-process.mdx
index d582f253bd0be..7b1203a22e20e 100644
--- a/apps/docs/content/troubleshooting/high-cpu-and-slow-queries-with-error-must-be-a-superuser-to-terminate-superuser-process.mdx
+++ b/apps/docs/content/troubleshooting/high-cpu-and-slow-queries-with-error-must-be-a-superuser-to-terminate-superuser-process.mdx
@@ -2,6 +2,7 @@
title = "High CPU and Slow Queries with `ERROR: must be a superuser to terminate superuser process`"
topics = [ "cli", "database", "storage" ]
keywords = []
+database_id = "23668386-7a72-44ff-a412-4cd8a005fa18"
---
When facing high CPU utilization, slow query performance, and an `ERROR: must be a superuser to terminate superuser process` message regarding an autovacuum, it indicates that a critical, non-terminable autovacuum operation is running on your Postgres database. This guide explains why this happens and what steps you can take.
diff --git a/apps/docs/content/troubleshooting/new-branch-doesnt-copy-database.mdx b/apps/docs/content/troubleshooting/new-branch-doesnt-copy-database.mdx
index cf0beccdc7c84..5449693bd7224 100644
--- a/apps/docs/content/troubleshooting/new-branch-doesnt-copy-database.mdx
+++ b/apps/docs/content/troubleshooting/new-branch-doesnt-copy-database.mdx
@@ -43,12 +43,14 @@ Update remote migration history table? [Y/n]
Type `Y` to update your remote project’s migration history and ensure it matches your new local migrations.
-- If the CLI suggests repairing migration history due to mismatches, you might see:
- ```
- Make sure your local git repo is up-to-date. If the error persists, try repairing the migration history table:
- supabase migration repair --status applied
- ```
- Run the exact repair command provided, replacing the timestamp as instructed (example timestamp: 20251006141726). This synchronizes the migration state between local and remote.
+If the CLI suggests repairing migration history due to mismatches, you might see:
+
+```
+Make sure your local git repo is up-to-date. If the error persists, try repairing the migration history table:
+supabase migration repair --status applied TIMESTAMP_OF_MIGRATION_TO_REPAIR
+```
+
+Run the exact repair command provided, replacing the timestamp as instructed (example timestamp: 20251006141726). This synchronizes the migration state between local and remote.
---
@@ -60,4 +62,4 @@ Once your migration history is up to date, continue to use branching features as
#### Additional tips
-- If further issues arise (such as schema drift or migration mismatches), review the [troubleshooting documentation](/docs/guides/deployment/branching/troubleshooting#migration-issues), and consider manual repair with `supabase migration repair`(https://supabase.com/docs/reference/cli/supabase-migration-repair).
+If further issues arise (such as schema drift or migration mismatches), review the [troubleshooting documentation](/docs/guides/deployment/branching/troubleshooting#migration-issues), and consider manual repair with [`supabase migration repair`](/docs/reference/cli/supabase-migration-repair).
diff --git a/apps/docs/content/troubleshooting/pgrst106-the-schema-must-be-one-of-the-following-error-when-querying-an-exposed-schema.mdx b/apps/docs/content/troubleshooting/pgrst106-the-schema-must-be-one-of-the-following-error-when-querying-an-exposed-schema.mdx
index 9ce9f234b8118..0ade180ef7eb9 100644
--- a/apps/docs/content/troubleshooting/pgrst106-the-schema-must-be-one-of-the-following-error-when-querying-an-exposed-schema.mdx
+++ b/apps/docs/content/troubleshooting/pgrst106-the-schema-must-be-one-of-the-following-error-when-querying-an-exposed-schema.mdx
@@ -2,10 +2,11 @@
title = "PGRST106: \"The schema must be one of the following...\" error when querying an exposed schema"
topics = [ "auth", "database" ]
keywords = []
+database_id = "91dda1aa-52f7-4a1c-9248-92fad9f3dec7"
+
[[errors]]
code = "PGRST106"
message = "The schema must be one of the following: public, ..."
-
---
You may encounter a `PGRST106` error, stating `{"code":"PGRST106","message":"The schema must be one of the following: public"}`, when attempting to query a schema via the PostgREST API that you've recently exposed.
diff --git a/apps/docs/content/troubleshooting/realtime-connections-timed_out-status.mdx b/apps/docs/content/troubleshooting/realtime-connections-timed_out-status.mdx
index 85b3f80c56c38..c9dedebccd0d0 100644
--- a/apps/docs/content/troubleshooting/realtime-connections-timed_out-status.mdx
+++ b/apps/docs/content/troubleshooting/realtime-connections-timed_out-status.mdx
@@ -2,6 +2,7 @@
title = "Realtime connections giving `TIMED_OUT` errors"
topics = [ "realtime" ]
keywords = []
+database_id = "b99fac0e-09da-4a31-93a1-6375ed8ce041"
---
If your Realtime connections in your application are giving `TIMED_OUT` errors, this often indicates an incompatibility between the version of `realtime-js` being used in your `supabase-js` client library package and your Node.js version. This issue happens when using versions of Node.js older than v22 with more recent versions of `supabase-js`.
diff --git a/apps/docs/content/troubleshooting/sso-error-you-do-not-have-permissions-to-join-this-organization-or-prompts-to-create-new-organization.mdx b/apps/docs/content/troubleshooting/sso-error-you-do-not-have-permissions-to-join-this-organization-or-prompts-to-create-new-organization.mdx
index 4ec762f49426f..e05c305a7a793 100644
--- a/apps/docs/content/troubleshooting/sso-error-you-do-not-have-permissions-to-join-this-organization-or-prompts-to-create-new-organization.mdx
+++ b/apps/docs/content/troubleshooting/sso-error-you-do-not-have-permissions-to-join-this-organization-or-prompts-to-create-new-organization.mdx
@@ -2,6 +2,7 @@
title = "SSO Error: \"You do not have permissions to join this organization\" or prompts to create new organization"
topics = [ "platform" ]
keywords = []
+database_id = "37d147df-caa7-4b0b-82b5-eab6852f2cff"
---
When attempting to log in via SSO, you may observe the message "You do not have permissions to join this organization" or be prompted to create a new organization.
diff --git a/apps/docs/content/troubleshooting/supabase-cli-failed-sasl-auth-or-invalid-scram-server-final-message.mdx b/apps/docs/content/troubleshooting/supabase-cli-failed-sasl-auth-or-invalid-scram-server-final-message.mdx
index 03a5bf2df61bc..2300d69883d13 100644
--- a/apps/docs/content/troubleshooting/supabase-cli-failed-sasl-auth-or-invalid-scram-server-final-message.mdx
+++ b/apps/docs/content/troubleshooting/supabase-cli-failed-sasl-auth-or-invalid-scram-server-final-message.mdx
@@ -2,6 +2,7 @@
title = "Supabase CLI: \"failed SASL auth\" or \"invalid SCRAM server-final-message\""
topics = [ "auth", "cli", "database", "supavisor" ]
keywords = []
+database_id = "4a32736f-1d7f-4c41-9c96-ab84e35ad394"
---
When executing `supabase db push` or `supabase link` or any other authenticated actions from the Supabase CLI, you might encounter an authentication error with messages such as `failed SASL auth (invalid SCRAM server-final-message received from server)`.
diff --git a/apps/docs/public/humans.txt b/apps/docs/public/humans.txt
index 412cfb7ebd664..34a7d7fb16df7 100644
--- a/apps/docs/public/humans.txt
+++ b/apps/docs/public/humans.txt
@@ -69,6 +69,7 @@ Fatuma Abdullahi
Felipe Stival
Francesco Sansalvadore
Garrett Crowell
+Gerardo Estaba
Greg Kress
Greg P
Greg Richardson
@@ -180,6 +181,7 @@ Terry Sutton
Thomas E
Thor Schaeff
Tim Frietas
+Tim Palmer
Timothy Lim
Tom Ashley
Tom G
diff --git a/apps/docs/spec/cli_v1_commands.yaml b/apps/docs/spec/cli_v1_commands.yaml
index 20bece1234b63..6ca173aa80226 100644
--- a/apps/docs/spec/cli_v1_commands.yaml
+++ b/apps/docs/spec/cli_v1_commands.yaml
@@ -78,7 +78,7 @@ flags:
name: --workdir
description: path to a Supabase project directory
default_value: ''
- - id: "yes"
+ - id: 'yes'
name: --yes
description: answer yes to all prompts
default_value: 'false'
@@ -1640,7 +1640,7 @@ commands:
Creates a new migration file locally.
- A `supabase/migrations` directory will be created if it does not already exists in your current `workdir`. All schema migration files must be created in this directory following the pattern `_.sql`.
+ A `supabase/migrations` directory will be created if it does not already exist in your current `workdir`. All schema migration files must be created in this directory following the pattern `_.sql`.
Outputs from other commands like `db diff` may be piped to `migration new ` via stdin.
examples:
diff --git a/supa-mdx-lint/Rule003Spelling.toml b/supa-mdx-lint/Rule003Spelling.toml
index cf7fd76dada24..9d0dc1857b160 100644
--- a/supa-mdx-lint/Rule003Spelling.toml
+++ b/supa-mdx-lint/Rule003Spelling.toml
@@ -164,6 +164,7 @@ allow_list = [
"ClickHouse",
"Clippy",
"Cloudflare",
+ "codelab",
"Codium",
"Cognito",
"Colab",
@@ -220,6 +221,7 @@ allow_list = [
"IntelliSense",
"IOWait",
"IVFFlat",
+ "JetBrains",
"JWTs",
"Jian",
"Jupyter",