+
+
+```
+
+
+
+## Available email templates
+
+There are several Auth email templates which can be configured:
+
+- `auth.email.template.invite`
+- `auth.email.template.confirmation`
+- `auth.email.template.recovery`
+- `auth.email.template.magic_link`
+- `auth.email.template.email_change`
+
+## Template variables
+
+The templating system provides the following variables for use:
+
+### ConfirmationURL
+
+Contains the confirmation URL. For example, a signup confirmation URL would look like:
+
+```
+https://project-ref.supabase.co/auth/v1/verify?token={{ .TokenHash }}&type=signup&redirect_to=https://example.com/path
+```
+
+**Usage**
+
+```html
+
Click here to confirm: {{ .ConfirmationURL }}
+```
+
+### Token
+
+Contains a 6-digit One-Time-Password (OTP) that can be used instead of the `ConfirmationURL`.
+
+**Usage**
+
+```html
+
Here is your one time password: {{ .Token }}
+```
+
+### TokenHash
+
+Contains a hashed version of the `Token`. This is useful for constructing your own email link in the email template.
+
+**Usage**
+
+```html
+
+```
+
+### SiteURL
+
+Contains your application's Site URL. This can be configured in your project's [authentication settings](/dashboard/project/_/auth/url-configuration).
+
+**Usage**
+
+```html
+
+```
+
+### NewEmail
+
+Contains the new user's email address. This is only available in the `email_change` email template.
+
+**Usage**
+
+```html
+
You are requesting to update your email address to {{ .NewEmail }}.
+```
+
+## Deploying email templates
+
+These settings are only for local development. To update your hosted project, please copy the templates into the [Email Templates](/dashboard/project/_/auth/templates) section of the Dashboard.
+
+export const Page = ({ children }) =>
+
+export default Page
diff --git a/apps/docs/pages/guides/cli/local-development.mdx b/apps/docs/pages/guides/cli/local-development.mdx
index 57b4e5abf52..8c719d931be 100644
--- a/apps/docs/pages/guides/cli/local-development.mdx
+++ b/apps/docs/pages/guides/cli/local-development.mdx
@@ -364,12 +364,12 @@ Associate your project with your remote project using [`supabase link`](/docs/re
supabase link --project-ref
# You can get from your project's dashboard URL: https://supabase.com/dashboard/project/
-supabase db remote commit
+supabase db pull
# Capture any changes that you have made to your remote database before you went through the steps above
# If you have not made any changes to the remote database, skip this step
```
-`supabase/migrations` is now populated with a migration in `..._remote_commit.sql`.
+`supabase/migrations` is now populated with a migration in `_remote_schema.sql`.
This migration captures any changes required for your local database to match the schema of your remote Supabase project.
@@ -420,7 +420,7 @@ For these changes to take effect, you need to run `supabase stop` and `supabase
If you have additional triggers or RLS policies defined on your `auth` schema, you can pull them as a migration file locally.
```bash
-supabase db remote commit --schema auth
+supabase db pull --schema auth
```
### Local Logging
diff --git a/apps/docs/pages/guides/cli/managing-config.mdx b/apps/docs/pages/guides/cli/managing-config.mdx
index 1f93c9e52cf..d63eeafd81c 100644
--- a/apps/docs/pages/guides/cli/managing-config.mdx
+++ b/apps/docs/pages/guides/cli/managing-config.mdx
@@ -12,7 +12,7 @@ The Supabase CLI uses a `config.toml` file to manage local configuration. This f
The `config.toml` file is automatically created when you run `supabase start`.
-There are a wide variety of options available, which can be found in the [CLI Config Reference](/docs/reference/cli/config).
+There are a wide variety of options available, which can be found in the [CLI Config Reference](/docs/guides/cli/config).
For example, to enable the "Apple" OAuth provider for local development, you can append the following information to `config.toml`:
diff --git a/apps/docs/pages/guides/cli/managing-environments.mdx b/apps/docs/pages/guides/cli/managing-environments.mdx
index b20a4c5c5f1..59bd4ed51fe 100644
--- a/apps/docs/pages/guides/cli/managing-environments.mdx
+++ b/apps/docs/pages/guides/cli/managing-environments.mdx
@@ -38,10 +38,10 @@ If you're using an existing Supabase project, you might have made schema changes
Run the following command to pull these changes before making local schema changes from the CLI:
```sql
-supabase db remote commit
+supabase db pull
```
-This command creates a new migration in `supabase/migrations/_remote_commit.sql` which reflects the schema changes you have made previously.
+This command creates a new migration in `supabase/migrations/_remote_schema.sql` which reflects the schema changes you have made previously.
Now commit your local changes to Git and run the local development setup:
@@ -348,9 +348,9 @@ Once pushed, check that the migration version is up to date for both local and r
supabase migration list
```
-### Permission denied on db remote commit
+### Permission denied on db pull
-If you have been using Supabase hosted projects for a long time, you might encounter the following permission error when executing `db remote commit`.
+If you have been using Supabase hosted projects for a long time, you might encounter the following permission error when executing `db pull`.
```bash
Error: Error running pg_dump on remote database: pg_dump: error: query failed: ERROR: permission denied for table _type
diff --git a/apps/docs/pages/guides/database/extensions/index_advisor.mdx b/apps/docs/pages/guides/database/extensions/index_advisor.mdx
new file mode 100644
index 00000000000..d155c36a49b
--- /dev/null
+++ b/apps/docs/pages/guides/database/extensions/index_advisor.mdx
@@ -0,0 +1,161 @@
+import Layout from '~/layouts/DefaultGuideLayout'
+
+export const meta = {
+ id: 'index-advisor',
+ title: 'index_advisor: query optimization',
+ description: 'Automatically optimize SQL queries',
+}
+
+[Index advisor](https://github.com/supabase/index_advisor) is a Postgres extension for recommending indexes to improve query performance.
+
+For example:
+
+```sql
+select
+ *
+from
+ index_advisor('select book.id from book where title = $1');
+
+ startup_cost_before | startup_cost_after | total_cost_before | total_cost_after | index_statements | errors
+---------------------+--------------------+-------------------+------------------+-----------------------------------------------------+--------
+ 0.00 | 1.17 | 25.88 | 6.40 | {"CREATE INDEX ON public.book USING btree (title)"},| {}
+(1 row)
+```
+
+Features:
+
+- Supports generic parameters e.g. `$1`, `$2`
+- Supports materialized views
+- Identifies tables/columns obfuscaed by views
+- Skips duplicate indexes
+
+## Installation
+
+index_advisor is a trusted language extension, which means it is directly installable by users from the [database.dev](database.dev) SQL package repository.
+
+To get started, enable the dbdev client by executing the [setup SQL script](https://database.dev/installer).
+
+Then, install index_advisor by running
+
+```sql
+select dbdev.install('olirice-index_advisor');
+create extension if not exists hypopg;
+create extension "olirice-index_advisor";
+```
+
+## API
+
+Index advisor exposes a single function `index_advisor(query text)` that accepts a query and searches for a set of SQL DDL `create index` statements that improve the query's execution time.
+
+The function's signature is:
+
+```sql
+index_advisor(query text)
+returns
+ table (
+ startup_cost_before jsonb,
+ startup_cost_after jsonb,
+ total_cost_before jsonb,
+ total_cost_after jsonb,
+ index_statements text[],
+ errors text[]
+ )
+```
+
+## Usage
+
+As a minimal example, the `index_advisor` function can be given a single table query with a filter on an unindexed column.
+
+```sql
+create extension if not exists index_advisor cascade;
+
+create table book(
+ id int primary key,
+ title text not null
+);
+
+select
+ *
+from
+ index_advisor('select book.id from book where title = $1');
+
+ startup_cost_before | startup_cost_after | total_cost_before | total_cost_after | index_statements | errors
+---------------------+--------------------+-------------------+------------------+-----------------------------------------------------+--------
+ 0.00 | 1.17 | 25.88 | 6.40 | {"CREATE INDEX ON public.book USING btree (title)"},| {}
+(1 row)
+```
+
+and will return a row recommending an index on the unindexed column.
+
+More complex queries may generate additional suggested indexes:
+
+```sql
+create extension if not exists index_advisor cascade;
+
+create table author(
+ id serial primary key,
+ name text not null
+);
+
+create table publisher(
+ id serial primary key,
+ name text not null,
+ corporate_address text
+);
+
+create table book(
+ id serial primary key,
+ author_id int not null references author(id),
+ publisher_id int not null references publisher(id),
+ title text
+);
+
+create table review(
+ id serial primary key,
+ book_id int references book(id),
+ body text not null
+);
+
+select
+ *
+from
+ index_advisor('
+ select
+ book.id,
+ book.title,
+ publisher.name as publisher_name,
+ author.name as author_name,
+ review.body review_body
+ from
+ book
+ join publisher
+ on book.publisher_id = publisher.id
+ join author
+ on book.author_id = author.id
+ join review
+ on book.id = review.book_id
+ where
+ author.id = $1
+ and publisher.id = $2
+ ');
+
+ startup_cost_before | startup_cost_after | total_cost_before | total_cost_after | index_statements | errors
+---------------------+--------------------+-------------------+------------------+-----------------------------------------------------------+--------
+ 27.26 | 12.77 | 68.48 | 42.37 | {"CREATE INDEX ON public.book USING btree (author_id)", | {}
+ "CREATE INDEX ON public.book USING btree (publisher_id)",
+ "CREATE INDEX ON public.review USING btree (book_id)"}
+(3 rows)
+```
+
+## Limitations
+
+- index_advisor will only recommend single column, B-tree indexes. More complex indexes will be supported in future releases.
+- when a generic argument's type is not discernible from context, an error is returned in the `errors` field. To resolve those errors, add explicit type casting to the argument. e.g. `$1::int`.
+
+## Resources
+
+- Official [`index_advisor` GitHub Repository](https://github.com/supabase/index_advisor)
+
+export const Page = ({ children }) =>
+
+export default Page
diff --git a/apps/docs/pages/guides/database/query-optimization.mdx b/apps/docs/pages/guides/database/query-optimization.mdx
new file mode 100644
index 00000000000..3176c49adaf
--- /dev/null
+++ b/apps/docs/pages/guides/database/query-optimization.mdx
@@ -0,0 +1,134 @@
+import Layout from '~/layouts/DefaultGuideLayout'
+
+export const meta = {
+ title: 'Query Optimization',
+ description: 'Choosing indexes',
+ footerHelpType: 'postgres',
+}
+
+When working with PostgreSQL, or any relational database, indexing is key to improving query performance.
+Aligning indexes with common query patterns can speed up data retrieval by an order of magnitude.
+
+This guide is intended to:
+
+- help identify parts of a query that have the potential to be improved by indexes
+- introduce tooling to help identify useful indexes
+
+This is not a comprehensive resource, but rather a helpful starting point for your optimization journey.
+
+If you're new to query optimization, you may be interested in [index_advisor](/docs/guides/database/extensions/index_advisor), our tool for automatically detecting indexes that improve performance on a given query.
+
+## Example Query
+
+Consider the following example query that retrieves customer names and purchase dates from two tables:
+
+```sql
+select
+ a.name,
+ b.date_of_purchase
+from
+ customers a
+ join orders b
+ on a.id = b.customer_id
+where
+ a.sign_up_date > '2023-01-01'
+ and b.status = 'shipped'
+order by
+ b.date_of_purchase;
+limit 10
+```
+
+In this query, there are several parts that indexes could likely help in optimizing the performance:
+
+### `where` Clause:
+
+The `where` clause filters rows based on certain conditions, and indexing the columns involved can improve this process:
+
+- `a.sign_up_date`: If filtering by `sign_up_date` is common, indexing this column can speed up the query.
+- `b.status`: Indexing the status may be beneficial if the column has diverse values.
+
+```sql
+create index idx_customers_sign_up_date on customers (sign_up_date);
+
+create index idx_orders_status on orders (status);
+```
+
+### `join` Columns
+
+Indexes on the columns used for joining tables can help Postgres avoid scanning tables in their entirety when connecting tables.
+
+- Indexing and `b.customer_id` would likely improve the performance of the join in this query.
+- Note that if `a.id` is the primary key of the `customers` table it is already indexed
+
+```sql
+create index idx_orders_customer_id on orders (customer_id);
+```
+
+### `order by` Clause
+
+Sorting can also be optimized by indexing:
+
+- An index on `b.date_of_purchase` wcan improve the sorting process, and is particularly beneficial when a subset of rows is being returned with a `limit` clause.
+
+```sql
+create index idx_orders_date_of_purchase on orders (date_of_purchase);
+```
+
+## Key Concepts
+
+Here are some concepts and tools to keep in mind to help you identify the best index for the job, and measure the impact that your index had:
+
+### Analyze the Query Plan
+
+Use the `explain` command to understand the query's execution. Look for slow parts, such as Sequential Scans or high cost numbers. If creating an index does not reduce the cost of the query plan, remove it.
+
+For example:
+
+```sql
+explain select * from customers where sign_up_date > 25;
+```
+
+### Use Appropriate Index Types
+
+PostgreSQL offers various index types like [B-tree, Hash, GIN, etc](https://www.postgresql.org/docs/current/indexes-types.html). Select the type that best suits your data and query pattern. Using the right index type can make a significant difference. For example, using a BRIN index on a field that always increases and lives within a table that updates infrequently - like `created_at` on an `orders` table - routinely results in indexes that are +10x smaller than the equivalent default B-tree index. That translates into better scalability.
+
+```sql
+create index idx_orders_created_at ON customers using brin(created_at);
+```
+
+### Partial Indexes
+
+For queries that frequently target a subset of data, a partial index could be faster and smaller than indexing the entire column. A partial index contains a `where` clause to filter the values included in the index. Note that a query's `where` clause must match the index for it to be used.
+
+```sql
+create index idx_orders_status on orders (status)
+where status = 'shipped';
+```
+
+### Composite Indexes
+
+If filtering or joining on multiple columns, a composite index prevents Postgres from referring to multiple indexes when identifying the relevant rows.
+
+```sql
+create index idx_customers_sign_up_date_priority on customers (sign_up_date, priority);
+```
+
+### Over-Indexing
+
+Avoid the urge to index columns you operate on infrequently. While indexes can speed up reads, they also slow down writes, so it's important to balance those factors when making indexing decisions.
+
+### Statistics
+
+Postgres maintains a set of statistics about the contents of your tables. Those statistics are used by the query planner to decide when it's is more efficient to use an index vs scanning the entire table. If the collected statistics drift too far from reality, the query planner may make poor decisions. To avoid this risk, you can periodically `analyze` tables.
+
+```sql
+analyze customers;
+```
+
+---
+
+By following this guide, you'll be able to discern where indexes can optimize queries and enhance your PostgreSQL performance. Remember that each database is unique, so always consider the specific context and use case of your queries.
+
+export const Page = ({ children }) =>
+
+export default Page
diff --git a/apps/docs/pages/guides/functions/cicd-workflow.mdx b/apps/docs/pages/guides/functions/cicd-workflow.mdx
index 4827bde8473..b729044c17e 100644
--- a/apps/docs/pages/guides/functions/cicd-workflow.mdx
+++ b/apps/docs/pages/guides/functions/cicd-workflow.mdx
@@ -38,7 +38,7 @@ jobs:
Since Supabase CLI [v1.62.0](https://github.com/supabase/cli/releases/tag/v1.62.0) you can deploy all functions with a single command.
-Individual function configuration like [JWT verification](/docs/reference/cli/config#functions.function_name.verify_jwt) and [import map location](/docs/reference/cli/config#functions.function_name.import_map) can be set via the `config.toml` file.
+Individual function configuration like [JWT verification](/docs/guides/cli/config#functions.function_name.verify_jwt) and [import map location](/docs/guides/cli/config#functions.function_name.import_map) can be set via the `config.toml` file.
```toml
[functions.hello-world]
diff --git a/apps/docs/pages/guides/functions/examples/github-actions.mdx b/apps/docs/pages/guides/functions/examples/github-actions.mdx
index 7baf600b40d..d29fd6f1981 100644
--- a/apps/docs/pages/guides/functions/examples/github-actions.mdx
+++ b/apps/docs/pages/guides/functions/examples/github-actions.mdx
@@ -47,7 +47,7 @@ jobs:
Since Supabase CLI [v1.62.0](https://github.com/supabase/cli/releases/tag/v1.62.0) you can deploy all functions with a single command.
-Individual function configuration like [JWT verification](/docs/reference/cli/config#functions.function_name.verify_jwt) and [import map location](/docs/reference/cli/config#functions.function_name.import_map) can be set via the `config.toml` file.
+Individual function configuration like [JWT verification](/docs/guides/cli/config#functions.function_name.verify_jwt) and [import map location](/docs/guides/cli/config#functions.function_name.import_map) can be set via the `config.toml` file.
```toml
[functions.hello-world]
diff --git a/apps/docs/pages/guides/functions/quickstart.mdx b/apps/docs/pages/guides/functions/quickstart.mdx
index 14de4f79620..7c32c36db06 100644
--- a/apps/docs/pages/guides/functions/quickstart.mdx
+++ b/apps/docs/pages/guides/functions/quickstart.mdx
@@ -66,7 +66,7 @@ supabase functions deploy
Since Supabase CLI [v1.62.0](https://github.com/supabase/cli/releases/tag/v1.62.0) you can deploy all functions with a single command. This is useful for example when [deploying with GitHub Actions](/docs/guides/functions/cicd-workflow).
-Individual function configuration like [JWT verification](/docs/reference/cli/config#functions.function_name.verify_jwt) and [import map location](/docs/reference/cli/config#functions.function_name.import_map) can be set via the `config.toml` file.
+Individual function configuration like [JWT verification](/docs/guides/cli/config#functions.function_name.verify_jwt) and [import map location](/docs/guides/cli/config#functions.function_name.import_map) can be set via the `config.toml` file.
```toml
[functions.hello-world]
diff --git a/apps/docs/public/.well-known/security.txt b/apps/docs/public/.well-known/security.txt
index e21dd296c27..9b50057f0c7 100644
--- a/apps/docs/public/.well-known/security.txt
+++ b/apps/docs/public/.well-known/security.txt
@@ -17,6 +17,7 @@ Out of scope vulnerabilities:
- Missing DNSSEC, CAA, CSP headers
- Lack of Secure or HTTP only flag on non-sensitive cookies
- Deadlinks
+- User enumeration
Please do the following:
diff --git a/apps/docs/public/archive/supabase-dark-lw8.svg b/apps/docs/public/archive/supabase-dark-lw8.svg
new file mode 100644
index 00000000000..020bdceabf4
--- /dev/null
+++ b/apps/docs/public/archive/supabase-dark-lw8.svg
@@ -0,0 +1,27 @@
+
diff --git a/apps/docs/public/archive/supabase-dark.svg b/apps/docs/public/archive/supabase-dark.svg
deleted file mode 100644
index 9e96fab4ddc..00000000000
--- a/apps/docs/public/archive/supabase-dark.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/apps/docs/public/archive/supabase-light-lw8.svg b/apps/docs/public/archive/supabase-light-lw8.svg
new file mode 100644
index 00000000000..7640c30020c
--- /dev/null
+++ b/apps/docs/public/archive/supabase-light-lw8.svg
@@ -0,0 +1,27 @@
+
diff --git a/apps/docs/public/archive/supabase-light.svg b/apps/docs/public/archive/supabase-light.svg
deleted file mode 100644
index 60cbc71dc7c..00000000000
--- a/apps/docs/public/archive/supabase-light.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/apps/docs/public/favicon/android-chrome-192x192.png b/apps/docs/public/favicon/android-chrome-192x192.png
new file mode 100644
index 00000000000..c0ac2bb1cdb
Binary files /dev/null and b/apps/docs/public/favicon/android-chrome-192x192.png differ
diff --git a/apps/docs/public/favicon/android-chrome-512x512.png b/apps/docs/public/favicon/android-chrome-512x512.png
new file mode 100644
index 00000000000..1bdeaa23bb8
Binary files /dev/null and b/apps/docs/public/favicon/android-chrome-512x512.png differ
diff --git a/apps/docs/public/favicon/android-icon-144x144.png b/apps/docs/public/favicon/android-icon-144x144.png
index e34cdc489bf..4aa46d4d25d 100644
Binary files a/apps/docs/public/favicon/android-icon-144x144.png and b/apps/docs/public/favicon/android-icon-144x144.png differ
diff --git a/apps/docs/public/favicon/android-icon-192x192.png b/apps/docs/public/favicon/android-icon-192x192.png
index 3779f7008a4..7583d2035e3 100644
Binary files a/apps/docs/public/favicon/android-icon-192x192.png and b/apps/docs/public/favicon/android-icon-192x192.png differ
diff --git a/apps/docs/public/favicon/android-icon-36x36.png b/apps/docs/public/favicon/android-icon-36x36.png
index 620f828d767..5e4eabec411 100644
Binary files a/apps/docs/public/favicon/android-icon-36x36.png and b/apps/docs/public/favicon/android-icon-36x36.png differ
diff --git a/apps/docs/public/favicon/android-icon-48x48.png b/apps/docs/public/favicon/android-icon-48x48.png
index 0918c9d5a5f..f8d8a7d9c05 100644
Binary files a/apps/docs/public/favicon/android-icon-48x48.png and b/apps/docs/public/favicon/android-icon-48x48.png differ
diff --git a/apps/docs/public/favicon/android-icon-72x72.png b/apps/docs/public/favicon/android-icon-72x72.png
index 83dfc47bd21..e4418058cef 100644
Binary files a/apps/docs/public/favicon/android-icon-72x72.png and b/apps/docs/public/favicon/android-icon-72x72.png differ
diff --git a/apps/docs/public/favicon/android-icon-96x96.png b/apps/docs/public/favicon/android-icon-96x96.png
index 5f1fda34086..0f1351f3670 100644
Binary files a/apps/docs/public/favicon/android-icon-96x96.png and b/apps/docs/public/favicon/android-icon-96x96.png differ
diff --git a/apps/docs/public/favicon/apple-icon-114x114.png b/apps/docs/public/favicon/apple-icon-114x114.png
index f32fa5c91e5..4aa46d4d25d 100644
Binary files a/apps/docs/public/favicon/apple-icon-114x114.png and b/apps/docs/public/favicon/apple-icon-114x114.png differ
diff --git a/apps/docs/public/favicon/apple-icon-120x120.png b/apps/docs/public/favicon/apple-icon-120x120.png
index f740816a889..d2b0e50ef41 100644
Binary files a/apps/docs/public/favicon/apple-icon-120x120.png and b/apps/docs/public/favicon/apple-icon-120x120.png differ
diff --git a/apps/docs/public/favicon/apple-icon-144x144.png b/apps/docs/public/favicon/apple-icon-144x144.png
index e34cdc489bf..00a5d8b5180 100644
Binary files a/apps/docs/public/favicon/apple-icon-144x144.png and b/apps/docs/public/favicon/apple-icon-144x144.png differ
diff --git a/apps/docs/public/favicon/apple-icon-152x152.png b/apps/docs/public/favicon/apple-icon-152x152.png
index 07dbf228a9a..310532c4648 100644
Binary files a/apps/docs/public/favicon/apple-icon-152x152.png and b/apps/docs/public/favicon/apple-icon-152x152.png differ
diff --git a/apps/docs/public/favicon/apple-icon-180x180.png b/apps/docs/public/favicon/apple-icon-180x180.png
index bf1bfbf7f00..2a80dbc2f68 100644
Binary files a/apps/docs/public/favicon/apple-icon-180x180.png and b/apps/docs/public/favicon/apple-icon-180x180.png differ
diff --git a/apps/docs/public/favicon/apple-icon-57x57.png b/apps/docs/public/favicon/apple-icon-57x57.png
index e24842ebed2..e7b08eb605f 100644
Binary files a/apps/docs/public/favicon/apple-icon-57x57.png and b/apps/docs/public/favicon/apple-icon-57x57.png differ
diff --git a/apps/docs/public/favicon/apple-icon-60x60.png b/apps/docs/public/favicon/apple-icon-60x60.png
index 7075a8eb8c5..0615675e809 100644
Binary files a/apps/docs/public/favicon/apple-icon-60x60.png and b/apps/docs/public/favicon/apple-icon-60x60.png differ
diff --git a/apps/docs/public/favicon/apple-icon-72x72.png b/apps/docs/public/favicon/apple-icon-72x72.png
index 83dfc47bd21..e4418058cef 100644
Binary files a/apps/docs/public/favicon/apple-icon-72x72.png and b/apps/docs/public/favicon/apple-icon-72x72.png differ
diff --git a/apps/docs/public/favicon/apple-icon-76x76.png b/apps/docs/public/favicon/apple-icon-76x76.png
index 283e804eee7..9a76327f94b 100644
Binary files a/apps/docs/public/favicon/apple-icon-76x76.png and b/apps/docs/public/favicon/apple-icon-76x76.png differ
diff --git a/apps/docs/public/favicon/apple-icon-precomposed.png b/apps/docs/public/favicon/apple-icon-precomposed.png
index 7d55e102305..7583d2035e3 100644
Binary files a/apps/docs/public/favicon/apple-icon-precomposed.png and b/apps/docs/public/favicon/apple-icon-precomposed.png differ
diff --git a/apps/docs/public/favicon/apple-icon.png b/apps/docs/public/favicon/apple-icon.png
index 7d55e102305..7583d2035e3 100644
Binary files a/apps/docs/public/favicon/apple-icon.png and b/apps/docs/public/favicon/apple-icon.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-114x114.png b/apps/docs/public/favicon/apple-touch-icon-114x114.png
new file mode 100644
index 00000000000..4aa46d4d25d
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-114x114.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-120x120.png b/apps/docs/public/favicon/apple-touch-icon-120x120.png
new file mode 100644
index 00000000000..d2b0e50ef41
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-120x120.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-144x144.png b/apps/docs/public/favicon/apple-touch-icon-144x144.png
new file mode 100644
index 00000000000..00a5d8b5180
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-144x144.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-152x152.png b/apps/docs/public/favicon/apple-touch-icon-152x152.png
new file mode 100644
index 00000000000..310532c4648
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-152x152.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-57x57.png b/apps/docs/public/favicon/apple-touch-icon-57x57.png
new file mode 100644
index 00000000000..1314e02c744
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-57x57.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-60x60.png b/apps/docs/public/favicon/apple-touch-icon-60x60.png
new file mode 100644
index 00000000000..0615675e809
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-60x60.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-72x72.png b/apps/docs/public/favicon/apple-touch-icon-72x72.png
new file mode 100644
index 00000000000..e4418058cef
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-72x72.png differ
diff --git a/apps/docs/public/favicon/apple-touch-icon-76x76.png b/apps/docs/public/favicon/apple-touch-icon-76x76.png
new file mode 100644
index 00000000000..9a76327f94b
Binary files /dev/null and b/apps/docs/public/favicon/apple-touch-icon-76x76.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/android-icon-144x144.png b/apps/docs/public/favicon/archive/lw8/android-icon-144x144.png
new file mode 100644
index 00000000000..e34cdc489bf
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/android-icon-144x144.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/android-icon-192x192.png b/apps/docs/public/favicon/archive/lw8/android-icon-192x192.png
new file mode 100644
index 00000000000..3779f7008a4
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/android-icon-192x192.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/android-icon-36x36.png b/apps/docs/public/favicon/archive/lw8/android-icon-36x36.png
new file mode 100644
index 00000000000..620f828d767
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/android-icon-36x36.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/android-icon-48x48.png b/apps/docs/public/favicon/archive/lw8/android-icon-48x48.png
new file mode 100644
index 00000000000..0918c9d5a5f
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/android-icon-48x48.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/android-icon-72x72.png b/apps/docs/public/favicon/archive/lw8/android-icon-72x72.png
new file mode 100644
index 00000000000..83dfc47bd21
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/android-icon-72x72.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/android-icon-96x96.png b/apps/docs/public/favicon/archive/lw8/android-icon-96x96.png
new file mode 100644
index 00000000000..5f1fda34086
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/android-icon-96x96.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-114x114.png b/apps/docs/public/favicon/archive/lw8/apple-icon-114x114.png
new file mode 100644
index 00000000000..f32fa5c91e5
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-114x114.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-120x120.png b/apps/docs/public/favicon/archive/lw8/apple-icon-120x120.png
new file mode 100644
index 00000000000..f740816a889
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-120x120.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-144x144.png b/apps/docs/public/favicon/archive/lw8/apple-icon-144x144.png
new file mode 100644
index 00000000000..e34cdc489bf
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-144x144.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-152x152.png b/apps/docs/public/favicon/archive/lw8/apple-icon-152x152.png
new file mode 100644
index 00000000000..07dbf228a9a
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-152x152.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-180x180.png b/apps/docs/public/favicon/archive/lw8/apple-icon-180x180.png
new file mode 100644
index 00000000000..bf1bfbf7f00
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-180x180.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-57x57.png b/apps/docs/public/favicon/archive/lw8/apple-icon-57x57.png
new file mode 100644
index 00000000000..e24842ebed2
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-57x57.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-60x60.png b/apps/docs/public/favicon/archive/lw8/apple-icon-60x60.png
new file mode 100644
index 00000000000..7075a8eb8c5
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-60x60.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-72x72.png b/apps/docs/public/favicon/archive/lw8/apple-icon-72x72.png
new file mode 100644
index 00000000000..83dfc47bd21
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-72x72.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-76x76.png b/apps/docs/public/favicon/archive/lw8/apple-icon-76x76.png
new file mode 100644
index 00000000000..283e804eee7
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-76x76.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon-precomposed.png b/apps/docs/public/favicon/archive/lw8/apple-icon-precomposed.png
new file mode 100644
index 00000000000..7d55e102305
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon-precomposed.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/apple-icon.png b/apps/docs/public/favicon/archive/lw8/apple-icon.png
new file mode 100644
index 00000000000..7d55e102305
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/apple-icon.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/favicon-16x16.png b/apps/docs/public/favicon/archive/lw8/favicon-16x16.png
new file mode 100644
index 00000000000..9dc90100bf3
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/favicon-16x16.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/favicon-32x32.png b/apps/docs/public/favicon/archive/lw8/favicon-32x32.png
new file mode 100644
index 00000000000..b8fd7965f93
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/favicon-32x32.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/favicon-96x96.png b/apps/docs/public/favicon/archive/lw8/favicon-96x96.png
new file mode 100644
index 00000000000..408eebc96d7
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/favicon-96x96.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/favicon.ico b/apps/docs/public/favicon/archive/lw8/favicon.ico
new file mode 100644
index 00000000000..97615df1d2d
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/favicon.ico differ
diff --git a/apps/docs/public/favicon/archive/lw8/ms-icon-144x144.png b/apps/docs/public/favicon/archive/lw8/ms-icon-144x144.png
new file mode 100644
index 00000000000..bcbff0884b1
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/ms-icon-144x144.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/ms-icon-150x150.png b/apps/docs/public/favicon/archive/lw8/ms-icon-150x150.png
new file mode 100644
index 00000000000..c61ccd6bc02
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/ms-icon-150x150.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/ms-icon-310x310.png b/apps/docs/public/favicon/archive/lw8/ms-icon-310x310.png
new file mode 100644
index 00000000000..474d2d508f4
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/ms-icon-310x310.png differ
diff --git a/apps/docs/public/favicon/archive/lw8/ms-icon-70x70.png b/apps/docs/public/favicon/archive/lw8/ms-icon-70x70.png
new file mode 100644
index 00000000000..c0f3a66542c
Binary files /dev/null and b/apps/docs/public/favicon/archive/lw8/ms-icon-70x70.png differ
diff --git a/apps/docs/public/favicon/favicon-128.png b/apps/docs/public/favicon/favicon-128.png
new file mode 100644
index 00000000000..d5dca345802
Binary files /dev/null and b/apps/docs/public/favicon/favicon-128.png differ
diff --git a/apps/docs/public/favicon/favicon-16x16.png b/apps/docs/public/favicon/favicon-16x16.png
index 9dc90100bf3..fa07282ee8d 100644
Binary files a/apps/docs/public/favicon/favicon-16x16.png and b/apps/docs/public/favicon/favicon-16x16.png differ
diff --git a/apps/docs/public/favicon/favicon-196x196.png b/apps/docs/public/favicon/favicon-196x196.png
new file mode 100644
index 00000000000..adb05b43453
Binary files /dev/null and b/apps/docs/public/favicon/favicon-196x196.png differ
diff --git a/apps/docs/public/favicon/favicon-32x32.png b/apps/docs/public/favicon/favicon-32x32.png
index b8fd7965f93..7fa29c547a6 100644
Binary files a/apps/docs/public/favicon/favicon-32x32.png and b/apps/docs/public/favicon/favicon-32x32.png differ
diff --git a/apps/docs/public/favicon/favicon-96x96.png b/apps/docs/public/favicon/favicon-96x96.png
index 408eebc96d7..0f1351f3670 100644
Binary files a/apps/docs/public/favicon/favicon-96x96.png and b/apps/docs/public/favicon/favicon-96x96.png differ
diff --git a/apps/docs/public/favicon/favicon.ico b/apps/docs/public/favicon/favicon.ico
index 97615df1d2d..5c4d1dcc5cf 100644
Binary files a/apps/docs/public/favicon/favicon.ico and b/apps/docs/public/favicon/favicon.ico differ
diff --git a/apps/docs/public/favicon/ms-icon-144x144.png b/apps/docs/public/favicon/ms-icon-144x144.png
index bcbff0884b1..00a5d8b5180 100644
Binary files a/apps/docs/public/favicon/ms-icon-144x144.png and b/apps/docs/public/favicon/ms-icon-144x144.png differ
diff --git a/apps/docs/public/favicon/ms-icon-150x150.png b/apps/docs/public/favicon/ms-icon-150x150.png
index c61ccd6bc02..4de1d9b1cc1 100644
Binary files a/apps/docs/public/favicon/ms-icon-150x150.png and b/apps/docs/public/favicon/ms-icon-150x150.png differ
diff --git a/apps/docs/public/favicon/ms-icon-310x310.png b/apps/docs/public/favicon/ms-icon-310x310.png
index 474d2d508f4..7ea95ae09c0 100644
Binary files a/apps/docs/public/favicon/ms-icon-310x310.png and b/apps/docs/public/favicon/ms-icon-310x310.png differ
diff --git a/apps/docs/public/favicon/ms-icon-70x70.png b/apps/docs/public/favicon/ms-icon-70x70.png
index c0f3a66542c..48f6391fcdc 100644
Binary files a/apps/docs/public/favicon/ms-icon-70x70.png and b/apps/docs/public/favicon/ms-icon-70x70.png differ
diff --git a/apps/docs/public/favicon/mstile-144x144.png b/apps/docs/public/favicon/mstile-144x144.png
new file mode 100644
index 00000000000..00a5d8b5180
Binary files /dev/null and b/apps/docs/public/favicon/mstile-144x144.png differ
diff --git a/apps/docs/public/favicon/mstile-150x150.png b/apps/docs/public/favicon/mstile-150x150.png
new file mode 100644
index 00000000000..4de1d9b1cc1
Binary files /dev/null and b/apps/docs/public/favicon/mstile-150x150.png differ
diff --git a/apps/docs/public/favicon/mstile-310x150.png b/apps/docs/public/favicon/mstile-310x150.png
new file mode 100644
index 00000000000..b1121df62aa
Binary files /dev/null and b/apps/docs/public/favicon/mstile-310x150.png differ
diff --git a/apps/docs/public/favicon/mstile-310x310.png b/apps/docs/public/favicon/mstile-310x310.png
new file mode 100644
index 00000000000..7ea95ae09c0
Binary files /dev/null and b/apps/docs/public/favicon/mstile-310x310.png differ
diff --git a/apps/docs/public/favicon/mstile-70x70.png b/apps/docs/public/favicon/mstile-70x70.png
new file mode 100644
index 00000000000..d5dca345802
Binary files /dev/null and b/apps/docs/public/favicon/mstile-70x70.png differ
diff --git a/apps/docs/public/img/supabase-logo-wordmark--dark.png b/apps/docs/public/img/supabase-logo-wordmark--dark.png
index 6b3fe698337..391cbd1e9b0 100644
Binary files a/apps/docs/public/img/supabase-logo-wordmark--dark.png and b/apps/docs/public/img/supabase-logo-wordmark--dark.png differ
diff --git a/apps/docs/public/img/supabase-logo-wordmark--dark.svg b/apps/docs/public/img/supabase-logo-wordmark--dark.svg
index 020bdceabf4..9e96fab4ddc 100644
--- a/apps/docs/public/img/supabase-logo-wordmark--dark.svg
+++ b/apps/docs/public/img/supabase-logo-wordmark--dark.svg
@@ -1,27 +1,23 @@
-