diff --git a/web/docs/guides/database.mdx b/web/docs/guides/database.mdx
index c6c4541f947..75159fe7ee1 100644
--- a/web/docs/guides/database.mdx
+++ b/web/docs/guides/database.mdx
@@ -4,6 +4,8 @@ title: Database
description: Use Supabase to manage your data.
---
+import ExtensionsComponent from '../../src/components/Extensions'
+
Supabase is built on top of [Postgres](/docs/postgres/server/about), an extremely scalable Relational Database.
## Features
@@ -33,14 +35,6 @@ You can duplicate your tables, just like you would inside a spreadsheet.
-### Enable and disable extensions
-
-Extensions are one of the best things about Postgres. You can enable Postgres extensions with the click of a button.
-
-
-
-
-
### The SQL Editor
@@ -58,6 +52,25 @@ Supabase comes with a SQL Editor. You can also save your favorite queries to run
- Managed backups - Supabase handles all your database backups.
- Data imports - import directly from a CSV or excel spreadsheet.
+## Extensions
+
+
+### Enable and disable extensions
+
+Postgres is extensible, allowing Supabase to provide some amazing functionality immediately . Enable Postgres extensions with the click of a button.
+You can enable Postgres extensions with the click of a button.
+
+
+
+
+
+
+### Full list of extensions
+
+Supabase is pre-configured with over 50 extensions. You can also install your own SQL extensions directly into the database through our SQL editor.
+
+
+
## Tips
diff --git a/web/src/components/Extensions.js b/web/src/components/Extensions.js
new file mode 100644
index 00000000000..2ea6f2eaa86
--- /dev/null
+++ b/web/src/components/Extensions.js
@@ -0,0 +1,66 @@
+import React, { useState } from 'react'
+import extensions from '../data/extensions.json'
+
+export default function Extensions() {
+ const [filter, setFilter] = useState('')
+ return (
+ <>
+
+ setFilter(e.target.value)}
+ />
+
+
+ {extensions
+ .filter((x) => x.name.indexOf(filter) >= 0)
+ .map((extension) => (
+
+
+
+ {extension.name}
+
+
{extension.comment}
+
+
+ ))}
+
+ >
+ )
+}
+
+const styles = {
+ inputContainer: {
+ marginBottom: '15px',
+ },
+ input: {
+ border: '1px solid var(--ifm-panel-border-color)',
+ borderRadius: 4,
+ backgroundColor: 'var(--custom-background-color-diff)',
+ color: 'var(--ifm-font-color-base)',
+ margin: 0,
+ padding: '6px 8px',
+ width: 300,
+ },
+ column: {
+ margin: '5px 0px',
+ padding: '0px 5px',
+ },
+ card: {
+ border: '1px solid var(--ifm-panel-border-color)',
+ borderRadius: 5,
+ padding: 8,
+ },
+ title: {
+ margin: 0,
+ fontSize: '0.9rem',
+ border: '1px solid var(--ifm-panel-border-color)',
+ },
+ description: {
+ textTransform: 'capitalize',
+ fontSize: '0.8rem',
+ margin: 0,
+ },
+}
diff --git a/web/src/data/extensions.json b/web/src/data/extensions.json
new file mode 100644
index 00000000000..f0201a70055
--- /dev/null
+++ b/web/src/data/extensions.json
@@ -0,0 +1,506 @@
+[
+ {
+ "name": "address_standardizer",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "Used to parse an address into constituent elements. Generally used to support geocoding address normalization step."
+ },
+ {
+ "name": "address_standardizer-3",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "Used to parse an address into constituent elements. Generally used to support geocoding address normalization step."
+ },
+ {
+ "name": "address_standardizer_data_us",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "Address Standardizer US dataset example"
+ },
+ {
+ "name": "address_standardizer_data_us-3",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "Address Standardizer US dataset example"
+ },
+ {
+ "name": "adminpack",
+ "schema": null,
+ "default_version": "2.0",
+ "installed_version": null,
+ "comment": "administrative functions for PostgreSQL"
+ },
+ {
+ "name": "amcheck",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "functions for verifying relation integrity"
+ },
+ {
+ "name": "autoinc",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "functions for autoincrementing fields"
+ },
+ {
+ "name": "bloom",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "bloom access method - signature file based index"
+ },
+ {
+ "name": "btree_gin",
+ "schema": null,
+ "default_version": "1.3",
+ "installed_version": null,
+ "comment": "support for indexing common datatypes in GIN"
+ },
+ {
+ "name": "btree_gist",
+ "schema": null,
+ "default_version": "1.5",
+ "installed_version": null,
+ "comment": "support for indexing common datatypes in GiST"
+ },
+ {
+ "name": "citext",
+ "schema": null,
+ "default_version": "1.6",
+ "installed_version": null,
+ "comment": "data type for case-insensitive character strings"
+ },
+ {
+ "name": "cube",
+ "schema": null,
+ "default_version": "1.4",
+ "installed_version": null,
+ "comment": "data type for multidimensional cubes"
+ },
+ {
+ "name": "dblink",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "connect to other PostgreSQL databases from within a database"
+ },
+ {
+ "name": "dict_int",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "text search dictionary template for integers"
+ },
+ {
+ "name": "dict_xsyn",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "text search dictionary template for extended synonym processing"
+ },
+ {
+ "name": "earthdistance",
+ "schema": null,
+ "default_version": "1.1",
+ "installed_version": null,
+ "comment": "calculate great-circle distances on the surface of the Earth"
+ },
+ {
+ "name": "file_fdw",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "foreign-data wrapper for flat file access"
+ },
+ {
+ "name": "fuzzystrmatch",
+ "schema": null,
+ "default_version": "1.1",
+ "installed_version": null,
+ "comment": "determine similarities and distance between strings"
+ },
+ {
+ "name": "hstore",
+ "schema": null,
+ "default_version": "1.6",
+ "installed_version": null,
+ "comment": "data type for storing sets of (key, value) pairs"
+ },
+ {
+ "name": "hstore_plpython3u",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "transform between hstore and plpython3u"
+ },
+ {
+ "name": "http",
+ "schema": "extensions",
+ "default_version": "1.3",
+ "installed_version": "1.3",
+ "comment": "HTTP client for PostgreSQL, allows web page retrieval inside the database."
+ },
+ {
+ "name": "insert_username",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "functions for tracking who changed a table"
+ },
+ {
+ "name": "intagg",
+ "schema": null,
+ "default_version": "1.1",
+ "installed_version": null,
+ "comment": "integer aggregator and enumerator (obsolete)"
+ },
+ {
+ "name": "intarray",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "functions, operators, and index support for 1-D arrays of integers"
+ },
+ {
+ "name": "isn",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "data types for international product numbering standards"
+ },
+ {
+ "name": "jsonb_plpython3u",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "transform between jsonb and plpython3u"
+ },
+ {
+ "name": "lo",
+ "schema": null,
+ "default_version": "1.1",
+ "installed_version": null,
+ "comment": "Large Object maintenance"
+ },
+ {
+ "name": "ltree",
+ "schema": null,
+ "default_version": "1.1",
+ "installed_version": null,
+ "comment": "data type for hierarchical tree-like structures"
+ },
+ {
+ "name": "ltree_plpython3u",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "transform between ltree and plpython3u"
+ },
+ {
+ "name": "moddatetime",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "functions for tracking last modification time"
+ },
+ {
+ "name": "pageinspect",
+ "schema": null,
+ "default_version": "1.7",
+ "installed_version": null,
+ "comment": "inspect the contents of database pages at a low level"
+ },
+ {
+ "name": "pg_buffercache",
+ "schema": null,
+ "default_version": "1.3",
+ "installed_version": null,
+ "comment": "examine the shared buffer cache"
+ },
+ {
+ "name": "pg_cron",
+ "schema": "extensions",
+ "default_version": "1.3",
+ "installed_version": "1.3",
+ "comment": "Job scheduler for PostgreSQL"
+ },
+ {
+ "name": "pg_freespacemap",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "examine the free space map (FSM)"
+ },
+ {
+ "name": "pg_prewarm",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "prewarm relation data"
+ },
+ {
+ "name": "pg_stat_statements",
+ "schema": null,
+ "default_version": "1.7",
+ "installed_version": null,
+ "comment": "track execution statistics of all SQL statements executed"
+ },
+ {
+ "name": "pg_trgm",
+ "schema": null,
+ "default_version": "1.4",
+ "installed_version": null,
+ "comment": "text similarity measurement and index searching based on trigrams"
+ },
+ {
+ "name": "pg_visibility",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "examine the visibility map (VM) and page-level visibility info"
+ },
+ {
+ "name": "pgaudit",
+ "schema": null,
+ "default_version": "1.4",
+ "installed_version": null,
+ "comment": "provides auditing functionality"
+ },
+ {
+ "name": "pgcrypto",
+ "schema": "extensions",
+ "default_version": "1.3",
+ "installed_version": "1.3",
+ "comment": "cryptographic functions"
+ },
+ {
+ "name": "pgjwt",
+ "schema": "extensions",
+ "default_version": "0.1.0",
+ "installed_version": "0.1.0",
+ "comment": "JSON Web Token API for Postgresql"
+ },
+ {
+ "name": "pgrowlocks",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "show row-level locking information"
+ },
+ {
+ "name": "pgstattuple",
+ "schema": null,
+ "default_version": "1.5",
+ "installed_version": null,
+ "comment": "show tuple-level statistics"
+ },
+ {
+ "name": "pgtap",
+ "schema": null,
+ "default_version": "1.1.0",
+ "installed_version": null,
+ "comment": "Unit testing for PostgreSQL"
+ },
+ {
+ "name": "plcoffee",
+ "schema": null,
+ "default_version": "3.0alpha",
+ "installed_version": null,
+ "comment": "PL/CoffeeScript (v8) trusted procedural language"
+ },
+ {
+ "name": "pljava",
+ "schema": null,
+ "default_version": "1.6.0",
+ "installed_version": null,
+ "comment": "PL/Java procedural language (https://tada.github.io/pljava/)"
+ },
+ {
+ "name": "plls",
+ "schema": null,
+ "default_version": "3.0alpha",
+ "installed_version": null,
+ "comment": "PL/LiveScript (v8) trusted procedural language"
+ },
+ {
+ "name": "plpgsql",
+ "schema": "pg_catalog",
+ "default_version": "1.0",
+ "installed_version": "1.0",
+ "comment": "PL/pgSQL procedural language"
+ },
+ {
+ "name": "plpgsql_check",
+ "schema": null,
+ "default_version": "1.11",
+ "installed_version": null,
+ "comment": "extended check for plpgsql functions"
+ },
+ {
+ "name": "plpython3u",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "PL/Python3U untrusted procedural language"
+ },
+ {
+ "name": "plv8",
+ "schema": null,
+ "default_version": "3.0alpha",
+ "installed_version": null,
+ "comment": "PL/JavaScript (v8) trusted procedural language"
+ },
+ {
+ "name": "postgis",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS geometry and geography spatial types and functions"
+ },
+ {
+ "name": "postgis-3",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS geometry and geography spatial types and functions"
+ },
+ {
+ "name": "postgis_raster",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS raster types and functions"
+ },
+ {
+ "name": "postgis_raster-3",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS raster types and functions"
+ },
+ {
+ "name": "postgis_sfcgal",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS SFCGAL functions"
+ },
+ {
+ "name": "postgis_sfcgal-3",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS SFCGAL functions"
+ },
+ {
+ "name": "postgis_tiger_geocoder",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS tiger geocoder and reverse geocoder"
+ },
+ {
+ "name": "postgis_tiger_geocoder-3",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS tiger geocoder and reverse geocoder"
+ },
+ {
+ "name": "postgis_topology",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS topology spatial types and functions"
+ },
+ {
+ "name": "postgis_topology-3",
+ "schema": null,
+ "default_version": "3.1.1",
+ "installed_version": null,
+ "comment": "PostGIS topology spatial types and functions"
+ },
+ {
+ "name": "postgres_fdw",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "foreign-data wrapper for remote PostgreSQL servers"
+ },
+ {
+ "name": "refint",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "functions for implementing referential integrity (obsolete)"
+ },
+ {
+ "name": "seg",
+ "schema": null,
+ "default_version": "1.3",
+ "installed_version": null,
+ "comment": "data type for representing line segments or floating-point intervals"
+ },
+ {
+ "name": "sslinfo",
+ "schema": null,
+ "default_version": "1.2",
+ "installed_version": null,
+ "comment": "information about SSL certificates"
+ },
+ {
+ "name": "tablefunc",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "functions that manipulate whole tables, including crosstab"
+ },
+ {
+ "name": "tcn",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "Triggered change notifications"
+ },
+ {
+ "name": "tsm_system_rows",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "TABLESAMPLE method which accepts number of rows as a limit"
+ },
+ {
+ "name": "tsm_system_time",
+ "schema": null,
+ "default_version": "1.0",
+ "installed_version": null,
+ "comment": "TABLESAMPLE method which accepts time in milliseconds as a limit"
+ },
+ {
+ "name": "unaccent",
+ "schema": null,
+ "default_version": "1.1",
+ "installed_version": null,
+ "comment": "text search dictionary that removes accents"
+ },
+ {
+ "name": "uuid-ossp",
+ "schema": "extensions",
+ "default_version": "1.1",
+ "installed_version": "1.1",
+ "comment": "generate universally unique identifiers (UUIDs)"
+ },
+ {
+ "name": "xml2",
+ "schema": null,
+ "default_version": "1.1",
+ "installed_version": null,
+ "comment": "XPath querying and XSLT"
+ }
+]
\ No newline at end of file