diff --git a/public/assets/images/platform-integrations/supabase/add-credentials-supabase-1.png b/public/assets/images/platform-integrations/supabase/add-credentials-supabase-1.png
new file mode 100644
index 00000000..29ab76ec
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/add-credentials-supabase-1.png differ
diff --git a/public/assets/images/platform-integrations/supabase/add-credentials-supabase-2.png b/public/assets/images/platform-integrations/supabase/add-credentials-supabase-2.png
new file mode 100644
index 00000000..d60485db
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/add-credentials-supabase-2.png differ
diff --git a/public/assets/images/platform-integrations/supabase/create-sync-supabase-1.png b/public/assets/images/platform-integrations/supabase/create-sync-supabase-1.png
new file mode 100644
index 00000000..60df7b86
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/create-sync-supabase-1.png differ
diff --git a/public/assets/images/platform-integrations/supabase/create-sync-supabase-2.png b/public/assets/images/platform-integrations/supabase/create-sync-supabase-2.png
new file mode 100644
index 00000000..3ed62170
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/create-sync-supabase-2.png differ
diff --git a/public/assets/images/platform-integrations/supabase/create-sync-supabase-3.png b/public/assets/images/platform-integrations/supabase/create-sync-supabase-3.png
new file mode 100644
index 00000000..4121150d
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/create-sync-supabase-3.png differ
diff --git a/public/assets/images/platform-integrations/supabase/supabase-account-menu.png b/public/assets/images/platform-integrations/supabase/supabase-account-menu.png
new file mode 100644
index 00000000..2dc777b0
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/supabase-account-menu.png differ
diff --git a/public/assets/images/platform-integrations/supabase/supabase-generate-token.png b/public/assets/images/platform-integrations/supabase/supabase-generate-token.png
new file mode 100644
index 00000000..2635cff1
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/supabase-generate-token.png differ
diff --git a/public/assets/images/platform-integrations/supabase/supabase-sync-card.png b/public/assets/images/platform-integrations/supabase/supabase-sync-card.png
new file mode 100644
index 00000000..f91be5e8
Binary files /dev/null and b/public/assets/images/platform-integrations/supabase/supabase-sync-card.png differ
diff --git a/public/integrations/platforms/aws-secrets-manager.md b/public/integrations/platforms/aws-secrets-manager.md
index bdbc7e68..9e2321a1 100644
--- a/public/integrations/platforms/aws-secrets-manager.md
+++ b/public/integrations/platforms/aws-secrets-manager.md
@@ -499,13 +499,6 @@ You first need to set up credentials to use for the sync, and then choose a sour
### Step 1: Set up your AWS credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Create an `AccessKey` via the AWS Console. See [Step 5](#step-5-create-access-keys) for instructions on creating the key. Note the `AccessKeyId` and `SecretAccessKey`.
2. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.
diff --git a/public/integrations/platforms/cloudflare-pages.md b/public/integrations/platforms/cloudflare-pages.md
index 078ea016..23827f94 100644
--- a/public/integrations/platforms/cloudflare-pages.md
+++ b/public/integrations/platforms/cloudflare-pages.md
@@ -69,13 +69,6 @@ Scroll down and click **Continue to summary**
### Save your credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/public/integrations/platforms/gitlab-ci.md b/public/integrations/platforms/gitlab-ci.md
index f53acb52..ae053353 100644
--- a/public/integrations/platforms/gitlab-ci.md
+++ b/public/integrations/platforms/gitlab-ci.md
@@ -110,13 +110,6 @@ This feature is only available on GitLab if you have the Premium or Ultimate lic
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/public/integrations/platforms/hashicorp-nomad.md b/public/integrations/platforms/hashicorp-nomad.md
index 1db3d056..2b88f1be 100644
--- a/public/integrations/platforms/hashicorp-nomad.md
+++ b/public/integrations/platforms/hashicorp-nomad.md
@@ -132,14 +132,6 @@ In the following screen you will be presented with a `Token Secret` which is the
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/public/integrations/platforms/hashicorp-vault.md b/public/integrations/platforms/hashicorp-vault.md
index 9da5dc5c..157e7ecf 100644
--- a/public/integrations/platforms/hashicorp-vault.md
+++ b/public/integrations/platforms/hashicorp-vault.md
@@ -199,13 +199,6 @@ Phase can automatically sync secrets to your Hashicorp Vault instance. First, yo
### Step 1: Set up your Vault credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Create a `role_id` and `secret_id` via the Vault CLI. See [Step 2](#step-2-setting-up-app-role-authentication-and-acl-policy) for instructions.
2. Go to **Integrations** from the sidebar and click on **Add credentials** in the 'Service credentials' section
diff --git a/public/integrations/platforms/railway.md b/public/integrations/platforms/railway.md
index 98b8385c..be358181 100644
--- a/public/integrations/platforms/railway.md
+++ b/public/integrations/platforms/railway.md
@@ -50,13 +50,6 @@ Alternatively, if you do have a Railway Team you want to sync secrets to, please
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/public/integrations/platforms/render.md b/public/integrations/platforms/render.md
index a424094a..7d5838ae 100644
--- a/public/integrations/platforms/render.md
+++ b/public/integrations/platforms/render.md
@@ -42,13 +42,6 @@ You can use Phase to sync secrets with your Render Services and Environment Grou
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and switch to the **Third-party credentials** tab.

diff --git a/public/integrations/platforms/supabase.md b/public/integrations/platforms/supabase.md
new file mode 100644
index 00000000..1096085c
--- /dev/null
+++ b/public/integrations/platforms/supabase.md
@@ -0,0 +1,109 @@
+import { Tag } from '@/components/Tag'
+import { DocActions } from '@/components/DocActions'
+
+export const description = 'Integrate Phase with Supabase'
+
+INTEGRATE
+
+# Supabase Edge Functions
+
+You can use Phase to sync secrets to your Supabase project. The secrets are available to your Edge Functions at runtime.
+
+
+
+
+ When you enable secret syncing, Phase becomes the source of truth for your
+ secrets. Phase overwrites or deletes the secrets on the target service.
+ Import your secrets into Phase before you continue.
+
+
+### Prerequisites
+
+- Sign up for the [Phase Console](/quickstart) and [create an App](/console/apps#create-an-app).
+- Enable Server-side Encryption (SSE) for the App from the [Settings](/console/apps#settings) tab.
+
+## Step 1: Authentication
+
+### Create a Supabase access token
+
+1. Log in to your [Supabase Dashboard](https://supabase.com/dashboard). Click your avatar in the top right, then select **Account**.
+
+
+
+2. Go to the [Access Tokens](https://supabase.com/dashboard/account/tokens) tab and click **Generate New Token**. Enter a descriptive name, select an expiry, and click **Generate token**. Copy the token. Supabase shows it only once.
+
+
+
+
+ Supabase requires an expiry on new access tokens (up to 1 year with a custom
+ date). When the token expires, syncs fail with an authentication error.
+ Syncs resume after you update the stored credentials with a new token.
+
+
+### Store authentication credentials in Phase
+
+1. Go to **Integrations** in the sidebar. Then click **Third-party credentials** in the integrations tab.
+
+
+
+2. Click **Supabase**.
+
+
+
+3. Enter your Supabase `Access Token` from the previous step. Enter a descriptive name and click **Save**.
+
+
+
+Phase encrypts and saves your credentials. You can view and manage them under *Service Credentials* in the *Integrations* screen.
+
+## Step 2: Set up a secret sync
+
+1. Open your App in the Phase Console and go to the **Syncing** tab. Select **Supabase Edge Functions** in the 'Create a new Sync' menu.
+
+
+
+2. Select the credentials that you added in the previous step. Then click **Next**.
+
+
+
+3. Configure the source and destination for your secrets. Select an Environment from your App as the source. If you want to sync from a specific folder, set the Path. Then select a Supabase project from the dropdown and click **Create**.
+
+
+
+4. Phase now syncs your secrets to the selected Supabase project automatically. You can manage the sync from the *Syncing* tab of your App or from the *Integrations* screen.
+
+
+
+
+ Supabase reserves secret names that start with `SUPABASE_`, for example
+ `SUPABASE_URL` and `SUPABASE_ANON_KEY`. Supabase manages these secrets for
+ every project. The sync does not delete them and does not push Phase secrets
+ with this prefix. The sync logs list the skipped keys.
+
+
+Synced secrets are available to your Edge Functions without a redeploy. To see them, open the **Edge Functions → Secrets** page in the Supabase Dashboard, or use the Supabase CLI:
+
+```fish
+supabase secrets list --project-ref
+```
+
+An Edge Function reads the synced secrets as environment variables:
+
+```ts
+Deno.serve(async () => {
+ const stripeKey = Deno.env.get('STRIPE_SECRET_KEY')
+
+ return new Response(
+ JSON.stringify({ stripeKeyIsSet: Boolean(stripeKey) }),
+ { headers: { 'Content-Type': 'application/json' } },
+ )
+})
+```
+
+
+ Supabase allows a maximum of 100 secrets per project. If a sync contains
+ more than 100 secrets, the sync fails before it writes changes to the
+ project. The sync logs show this error. The
+ [Edge Functions limits](https://supabase.com/docs/guides/functions/limits)
+ page lists all limits.
+
diff --git a/public/llms.txt b/public/llms.txt
index 60f0603c..b17c8211 100644
--- a/public/llms.txt
+++ b/public/llms.txt
@@ -72,6 +72,7 @@
- [integrations/platforms/vercel](https://docs.phase.dev/integrations/platforms/vercel.md)
- [integrations/platforms/railway](https://docs.phase.dev/integrations/platforms/railway.md)
- [integrations/platforms/render](https://docs.phase.dev/integrations/platforms/render.md)
+- [integrations/platforms/supabase](https://docs.phase.dev/integrations/platforms/supabase.md)
- [integrations/platforms/jenkins](https://docs.phase.dev/integrations/platforms/jenkins.md)
- [integrations/platforms/circleci](https://docs.phase.dev/integrations/platforms/circleci.md)
- [integrations/platforms/aws-codebuild](https://docs.phase.dev/integrations/platforms/aws-codebuild.md)
diff --git a/public/sitemap.xml b/public/sitemap.xml
index de57993c..0c87c415 100644
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -1,104 +1,105 @@
-https://docs.phase.dev2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication/account2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication/mfa2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication/oauth-sso2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication/oidc-sso2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication/password2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication/sso2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/authentication/tokens2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/external-identities2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/network2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/provisioning/scim2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/roles2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/service-accounts2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/access-control/teams2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/cli2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/cli/commands2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/cli/install2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/cli/usage2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/apps2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/dynamic-secrets2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/environments2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/logstreams2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/organisation2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/rotating-secrets2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/secrets2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/console/users2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/agents/claude-code2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/agents/codex2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/agents/cursor2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/agents/opencode2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/agents/vscode-copilot2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/frameworks2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/platforms/aws-codebuild2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/platforms/aws-elastic-container-service2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/platforms/aws-iam2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/platforms/aws-secrets-manager2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/platforms/azure-key-vault2026-09-04T17:10:27.620Zdaily0.7
-https://docs.phase.dev/integrations/platforms/azure-pipelines2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/bitbucket-pipelines2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/buildkite2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/circleci2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/cloudflare-pages2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/cloudflare-workers2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/docker2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/docker-compose2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/drone-ci2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/github-actions2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/github-dependabot2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/gitlab-ci2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/hashicorp-nomad2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/hashicorp-terraform2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/hashicorp-vault2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/jenkins2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/jetbrains2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/kubernetes2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/litellm2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/openai2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/railway2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/render2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/teamcity2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/travis-ci2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/integrations/platforms/vercel2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/apps2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/dynamic-secrets2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/environments2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/errors2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/external-identities2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/invites2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/members2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/roles2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/secrets2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/service-accounts2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/public-api/teams2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/quickstart2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/sdks2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/sdks/go2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/sdks/js2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/sdks/node2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/sdks/python2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/security2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/security/architecture2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/security/cryptography2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/aws2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/aws-eks2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/azure2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/azure-aks2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/configuration/envars2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/digitalocean2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/docker-compose2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/gcp2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/kubernetes2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/maintenance2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/railway2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/raspberrypi2026-09-04T17:10:27.621Zdaily0.7
-https://docs.phase.dev/self-hosting/tailscale2026-09-04T17:10:27.621Zdaily0.7
+https://docs.phase.dev2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication/account2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication/mfa2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication/oauth-sso2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication/oidc-sso2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication/password2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication/sso2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/authentication/tokens2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/external-identities2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/network2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/provisioning/scim2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/roles2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/service-accounts2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/access-control/teams2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/cli2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/cli/commands2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/cli/install2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/cli/usage2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/apps2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/dynamic-secrets2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/environments2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/logstreams2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/organisation2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/rotating-secrets2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/secrets2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/console/users2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/agents/claude-code2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/agents/codex2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/agents/cursor2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/agents/opencode2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/agents/vscode-copilot2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/frameworks2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/aws-codebuild2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/aws-elastic-container-service2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/aws-iam2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/aws-secrets-manager2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/azure-key-vault2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/azure-pipelines2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/bitbucket-pipelines2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/buildkite2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/circleci2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/cloudflare-pages2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/cloudflare-workers2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/docker2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/docker-compose2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/drone-ci2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/github-actions2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/github-dependabot2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/gitlab-ci2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/hashicorp-nomad2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/hashicorp-terraform2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/hashicorp-vault2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/jenkins2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/jetbrains2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/kubernetes2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/litellm2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/openai2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/railway2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/render2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/supabase2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/teamcity2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/travis-ci2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/integrations/platforms/vercel2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/apps2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/dynamic-secrets2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/environments2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/errors2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/external-identities2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/invites2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/members2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/roles2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/secrets2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/service-accounts2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/public-api/teams2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/quickstart2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/sdks2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/sdks/go2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/sdks/js2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/sdks/node2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/sdks/python2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/security2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/security/architecture2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/security/cryptography2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/aws2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/aws-eks2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/azure2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/azure-aks2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/configuration/envars2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/digitalocean2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/docker-compose2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/gcp2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/kubernetes2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/maintenance2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/railway2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/raspberrypi2026-09-12T12:19:08.995Zdaily0.7
+https://docs.phase.dev/self-hosting/tailscale2026-09-12T12:19:08.995Zdaily0.7
\ No newline at end of file
diff --git a/src/components/Navigation.jsx b/src/components/Navigation.jsx
index b2aecfed..ccc80554 100644
--- a/src/components/Navigation.jsx
+++ b/src/components/Navigation.jsx
@@ -386,6 +386,7 @@ export const navigation = [
{ title: 'Vercel', href: '/integrations/platforms/vercel' },
{ title: 'Railway', href: '/integrations/platforms/railway' },
{ title: 'Render', href: '/integrations/platforms/render' },
+ { title: 'Supabase', href: '/integrations/platforms/supabase' },
{ title: 'Jenkins', href: '/integrations/platforms/jenkins' },
{ title: 'CircleCI', href: '/integrations/platforms/circleci' },
{ title: 'AWS CodeBuild', href: '/integrations/platforms/aws-codebuild' },
diff --git a/src/pages/integrations/platforms/aws-secrets-manager.mdx b/src/pages/integrations/platforms/aws-secrets-manager.mdx
index bdbc7e68..9e2321a1 100644
--- a/src/pages/integrations/platforms/aws-secrets-manager.mdx
+++ b/src/pages/integrations/platforms/aws-secrets-manager.mdx
@@ -499,13 +499,6 @@ You first need to set up credentials to use for the sync, and then choose a sour
### Step 1: Set up your AWS credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Create an `AccessKey` via the AWS Console. See [Step 5](#step-5-create-access-keys) for instructions on creating the key. Note the `AccessKeyId` and `SecretAccessKey`.
2. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.
diff --git a/src/pages/integrations/platforms/cloudflare-pages.mdx b/src/pages/integrations/platforms/cloudflare-pages.mdx
index 078ea016..23827f94 100644
--- a/src/pages/integrations/platforms/cloudflare-pages.mdx
+++ b/src/pages/integrations/platforms/cloudflare-pages.mdx
@@ -69,13 +69,6 @@ Scroll down and click **Continue to summary**
### Save your credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/src/pages/integrations/platforms/gitlab-ci.mdx b/src/pages/integrations/platforms/gitlab-ci.mdx
index f53acb52..ae053353 100644
--- a/src/pages/integrations/platforms/gitlab-ci.mdx
+++ b/src/pages/integrations/platforms/gitlab-ci.mdx
@@ -110,13 +110,6 @@ This feature is only available on GitLab if you have the Premium or Ultimate lic
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/src/pages/integrations/platforms/hashicorp-nomad.mdx b/src/pages/integrations/platforms/hashicorp-nomad.mdx
index 1db3d056..2b88f1be 100644
--- a/src/pages/integrations/platforms/hashicorp-nomad.mdx
+++ b/src/pages/integrations/platforms/hashicorp-nomad.mdx
@@ -132,14 +132,6 @@ In the following screen you will be presented with a `Token Secret` which is the
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/src/pages/integrations/platforms/hashicorp-vault.mdx b/src/pages/integrations/platforms/hashicorp-vault.mdx
index 9da5dc5c..157e7ecf 100644
--- a/src/pages/integrations/platforms/hashicorp-vault.mdx
+++ b/src/pages/integrations/platforms/hashicorp-vault.mdx
@@ -199,13 +199,6 @@ Phase can automatically sync secrets to your Hashicorp Vault instance. First, yo
### Step 1: Set up your Vault credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Create a `role_id` and `secret_id` via the Vault CLI. See [Step 2](#step-2-setting-up-app-role-authentication-and-acl-policy) for instructions.
2. Go to **Integrations** from the sidebar and click on **Add credentials** in the 'Service credentials' section
diff --git a/src/pages/integrations/platforms/railway.mdx b/src/pages/integrations/platforms/railway.mdx
index 98b8385c..be358181 100644
--- a/src/pages/integrations/platforms/railway.mdx
+++ b/src/pages/integrations/platforms/railway.mdx
@@ -50,13 +50,6 @@ Alternatively, if you do have a Railway Team you want to sync secrets to, please
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and click on **Third-party credentials** in the integrations tab.

diff --git a/src/pages/integrations/platforms/render.mdx b/src/pages/integrations/platforms/render.mdx
index a424094a..7d5838ae 100644
--- a/src/pages/integrations/platforms/render.mdx
+++ b/src/pages/integrations/platforms/render.mdx
@@ -42,13 +42,6 @@ You can use Phase to sync secrets with your Render Services and Environment Grou
### Store authentication credentials in Phase
-
- Your credentials are kept secure with robust application-layer encryption.
- Phase encrypts your credentials directly in the browser and only decrypts them
- in memory to perform sync operations. Your credentials are never stored in
- plaintext.
-
-
1. Go to **Integrations** from the sidebar and switch to the **Third-party credentials** tab.

diff --git a/src/pages/integrations/platforms/supabase.mdx b/src/pages/integrations/platforms/supabase.mdx
new file mode 100644
index 00000000..1096085c
--- /dev/null
+++ b/src/pages/integrations/platforms/supabase.mdx
@@ -0,0 +1,109 @@
+import { Tag } from '@/components/Tag'
+import { DocActions } from '@/components/DocActions'
+
+export const description = 'Integrate Phase with Supabase'
+
+INTEGRATE
+
+# Supabase Edge Functions
+
+You can use Phase to sync secrets to your Supabase project. The secrets are available to your Edge Functions at runtime.
+
+
+
+
+ When you enable secret syncing, Phase becomes the source of truth for your
+ secrets. Phase overwrites or deletes the secrets on the target service.
+ Import your secrets into Phase before you continue.
+
+
+### Prerequisites
+
+- Sign up for the [Phase Console](/quickstart) and [create an App](/console/apps#create-an-app).
+- Enable Server-side Encryption (SSE) for the App from the [Settings](/console/apps#settings) tab.
+
+## Step 1: Authentication
+
+### Create a Supabase access token
+
+1. Log in to your [Supabase Dashboard](https://supabase.com/dashboard). Click your avatar in the top right, then select **Account**.
+
+
+
+2. Go to the [Access Tokens](https://supabase.com/dashboard/account/tokens) tab and click **Generate New Token**. Enter a descriptive name, select an expiry, and click **Generate token**. Copy the token. Supabase shows it only once.
+
+
+
+
+ Supabase requires an expiry on new access tokens (up to 1 year with a custom
+ date). When the token expires, syncs fail with an authentication error.
+ Syncs resume after you update the stored credentials with a new token.
+
+
+### Store authentication credentials in Phase
+
+1. Go to **Integrations** in the sidebar. Then click **Third-party credentials** in the integrations tab.
+
+
+
+2. Click **Supabase**.
+
+
+
+3. Enter your Supabase `Access Token` from the previous step. Enter a descriptive name and click **Save**.
+
+
+
+Phase encrypts and saves your credentials. You can view and manage them under *Service Credentials* in the *Integrations* screen.
+
+## Step 2: Set up a secret sync
+
+1. Open your App in the Phase Console and go to the **Syncing** tab. Select **Supabase Edge Functions** in the 'Create a new Sync' menu.
+
+
+
+2. Select the credentials that you added in the previous step. Then click **Next**.
+
+
+
+3. Configure the source and destination for your secrets. Select an Environment from your App as the source. If you want to sync from a specific folder, set the Path. Then select a Supabase project from the dropdown and click **Create**.
+
+
+
+4. Phase now syncs your secrets to the selected Supabase project automatically. You can manage the sync from the *Syncing* tab of your App or from the *Integrations* screen.
+
+
+
+
+ Supabase reserves secret names that start with `SUPABASE_`, for example
+ `SUPABASE_URL` and `SUPABASE_ANON_KEY`. Supabase manages these secrets for
+ every project. The sync does not delete them and does not push Phase secrets
+ with this prefix. The sync logs list the skipped keys.
+
+
+Synced secrets are available to your Edge Functions without a redeploy. To see them, open the **Edge Functions → Secrets** page in the Supabase Dashboard, or use the Supabase CLI:
+
+```fish
+supabase secrets list --project-ref
+```
+
+An Edge Function reads the synced secrets as environment variables:
+
+```ts
+Deno.serve(async () => {
+ const stripeKey = Deno.env.get('STRIPE_SECRET_KEY')
+
+ return new Response(
+ JSON.stringify({ stripeKeyIsSet: Boolean(stripeKey) }),
+ { headers: { 'Content-Type': 'application/json' } },
+ )
+})
+```
+
+
+ Supabase allows a maximum of 100 secrets per project. If a sync contains
+ more than 100 secrets, the sync fails before it writes changes to the
+ project. The sync logs show this error. The
+ [Edge Functions limits](https://supabase.com/docs/guides/functions/limits)
+ page lists all limits.
+