diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml
index cc2d29c5659..886a2d41b40 100644
--- a/.github/workflows/prettier.yml
+++ b/.github/workflows/prettier.yml
@@ -63,6 +63,7 @@ jobs:
with:
sparse-checkout: |
apps/docs/pages
+ apps/docs/content
# Installing all dependencies takes up to three minutes, hacking around to only installing prettier+deps
- name: Download dependencies
run: |
@@ -72,4 +73,4 @@ jobs:
- name: Run prettier
run: |-
# Check mdx files which contain sql code blocks
- grep -lr '```sql' apps/docs/pages/**/*.mdx | xargs npx prettier -c
+ grep -lr '```sql' apps/docs/{pages,content}/**/*.mdx | xargs npx prettier -c
diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
index 00322724739..7ca574c6ea5 100644
--- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
+++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
@@ -657,20 +657,20 @@ export const auth = {
items: [
{
name: 'Part One: JWTs',
- url: '/learn/auth-deep-dive/auth-deep-dive-jwts',
+ url: '/guides/auth/auth-deep-dive/auth-deep-dive-jwts',
},
{
name: 'Part Two: Row Level Security',
- url: '/learn/auth-deep-dive/auth-row-level-security',
+ url: '/guides/auth/auth-deep-dive/auth-row-level-security',
},
{
name: 'Part Three: Policies',
- url: '/learn/auth-deep-dive/auth-policies',
+ url: '/guides/auth/auth-deep-dive/auth-policies',
},
- { name: 'Part Four: GoTrue', url: '/learn/auth-deep-dive/auth-gotrue' },
+ { name: 'Part Four: GoTrue', url: '/guides/auth/auth-deep-dive/auth-gotrue' },
{
name: 'Part Five: Google OAuth',
- url: '/learn/auth-deep-dive/auth-google-oauth',
+ url: '/guides/auth/auth-deep-dive/auth-google-oauth',
},
],
},
diff --git a/apps/docs/components/RealtimeLimitsEstimater.tsx b/apps/docs/components/RealtimeLimitsEstimator/RealtimeLimitsEstimator.tsx
similarity index 100%
rename from apps/docs/components/RealtimeLimitsEstimater.tsx
rename to apps/docs/components/RealtimeLimitsEstimator/RealtimeLimitsEstimator.tsx
diff --git a/apps/docs/components/RealtimeLimitsEstimator/index.tsx b/apps/docs/components/RealtimeLimitsEstimator/index.tsx
new file mode 100644
index 00000000000..34fe3d20a42
--- /dev/null
+++ b/apps/docs/components/RealtimeLimitsEstimator/index.tsx
@@ -0,0 +1,11 @@
+import { lazy, Suspense } from 'react'
+
+const Estimator = lazy(() => import('./RealtimeLimitsEstimator'))
+
+export function RealtimeLimitsEstimator() {
+ return (
+
+
+
+ )
+}
diff --git a/apps/docs/components/index.tsx b/apps/docs/components/index.tsx
index a3491d7adb9..a36aea45605 100644
--- a/apps/docs/components/index.tsx
+++ b/apps/docs/components/index.tsx
@@ -33,6 +33,7 @@ import { NavData } from './NavData'
// Partials
import DatabaseSetup from './MDX/database_setup.mdx'
import GetSessionWarning from './MDX/get_session_warning.mdx'
+import HuggingFaceDeployment from './MDX/ai/quickstart_hf_deployment.mdx'
import MigrationWarnings from './MDX/migration_warnings.mdx'
import ProjectSetup from './MDX/project_setup.mdx'
import QuickstartIntro from './MDX/quickstart_intro.mdx'
@@ -67,6 +68,7 @@ import {
// Heavy/rare (lazy-loaded)
import { AppleSecretGenerator } from './AppleSecretGenerator'
import { Mermaid } from './Mermaid'
+import { RealtimeLimitsEstimator } from './RealtimeLimitsEstimator'
const components = {
...markdownComponents,
@@ -102,6 +104,7 @@ const components = {
{props.children}
),
+ HuggingFaceDeployment,
IconMenuApi,
IconMenuAuth,
IconMenuCli,
@@ -133,6 +136,7 @@ const components = {
ProjectConfigVariables,
ProjectSetup,
QuickstartIntro,
+ RealtimeLimitsEstimator,
RefHeaderSection: (props: any) => ,
RefSubLayout,
SocialProviderSettingsSupabase,
diff --git a/apps/docs/pages/guides/ai.mdx b/apps/docs/content/guides/ai.mdx
similarity index 73%
rename from apps/docs/pages/guides/ai.mdx
rename to apps/docs/content/guides/ai.mdx
index a1abf0d2ba8..66c7ffbedae 100644
--- a/apps/docs/pages/guides/ai.mdx
+++ b/apps/docs/content/guides/ai.mdx
@@ -1,12 +1,10 @@
-import Layout from '~/layouts/DefaultGuideLayout'
-
-export const meta = {
- id: 'ai',
- title: 'AI & Vectors',
- description: 'The best vector database is the database you already have.',
- subtitle: 'The best vector database is the database you already have.',
- sidebar_label: 'Overview',
-}
+---
+id: 'ai'
+title: 'AI & Vectors'
+description: 'The best vector database is the database you already have.'
+subtitle: 'The best vector database is the database you already have.'
+hideToc: true
+---
Supabase provides an open source toolkit for developing AI applications using Postgres and pgvector. Use the Supabase client libraries to store, index, and query your vector embeddings at scale.
@@ -109,7 +107,26 @@ export const integrations = [
## Case studies
- {customers.map((x) => (
+ {[
+ {
+ name: 'Berri AI Boosts Productivity by Migrating from AWS RDS to Supabase with pgvector',
+ description:
+ 'Learn how Berri AI overcame challenges with self-hosting their vector database on AWS RDS and successfully migrated to Supabase.',
+ href: 'https://supabase.com/customers/berriai',
+ },
+ {
+ name: 'Mendable switches from Pinecone to Supabase for PostgreSQL vector embeddings',
+ description:
+ 'How Mendable boosts efficiency and accuracy of chat powered search for documentation using Supabase with pgvector',
+ href: 'https://supabase.com/customers/mendableai',
+ },
+ {
+ name: 'Markprompt: GDPR-Compliant AI Chatbots for Docs and Websites',
+ description:
+ "AI-powered chatbot platform, Markprompt, empowers developers to deliver efficient and GDPR-compliant prompt experiences on top of their content, by leveraging Supabase's secure and privacy-focused database and authentication solutions",
+ href: 'https://supabase.com/customers/markprompt',
+ },
+ ].map((x) => (