+
+ {isLoading &&
}
+ {isError &&
+ (IS_PLATFORM ? (
+
+ ) : (
+
+
+ Local functions can be found at supabase/functions folder.
+
+
+ ))}
+ {isSuccess && (
+ <>
+ {hasFunctions ? (
+
+
-
-
- }
- size="tiny"
- className="w-32 md:w-64"
- value={search}
- onChange={(event) => setSearch(event.target.value)}
- actions={[
- search && (
- }
- onClick={() => setSearch('')}
- className="p-0 h-5 w-5"
- />
- ),
- ]}
- />
-
-
-
-
+
+ }
+ size="tiny"
+ className="w-32 md:w-64"
+ value={search}
+ onChange={(event) => setSearch(event.target.value)}
+ actions={[
+ search && (
+ }
+ onClick={() => setSearch('')}
+ className="p-0 h-5 w-5"
+ />
+ ),
+ ]}
+ />
-
-
-
-
- Name
- URL
- Created
- Updated
- Deployments
-
-
-
-
- <>
- {filteredFunctions.length > 0 ? (
- filteredFunctions.map((item) => (
-
- ))
- ) : (
-
-
- No results found
-
- Your search for "{search}" did not return any results
-
-
-
- )}
- >
-
-
-
+
+
+
- ) : (
-
- )}
- >
- )}
- >
- ) : (
-
- )}
+
+
+
+
+ Name
+ URL
+ Created
+ Updated
+ Deployments
+
+
+
+
+ <>
+ {filteredFunctions.length > 0 ? (
+ filteredFunctions.map((item) => (
+
+ ))
+ ) : (
+
+
+ No results found
+
+ Your search for "{search}" did not return any results
+
+
+
+ )}
+ >
+
+
+
+
+ ) : (
+
+ )}
+ >
+ )}
+ {!IS_PLATFORM &&
}
+
diff --git a/apps/studio/pages/project/[ref]/storage/vectors/buckets/[bucketId].tsx b/apps/studio/pages/project/[ref]/storage/vectors/buckets/[bucketId].tsx
index 08c21d744c7..4c5f2200cfb 100644
--- a/apps/studio/pages/project/[ref]/storage/vectors/buckets/[bucketId].tsx
+++ b/apps/studio/pages/project/[ref]/storage/vectors/buckets/[bucketId].tsx
@@ -1,27 +1,24 @@
-import { useRouter } from 'next/router'
-import { useEffect } from 'react'
-import { toast } from 'sonner'
-
import { useParams } from 'common'
import { BUCKET_TYPES } from 'components/interfaces/Storage/Storage.constants'
-import { useSelectedVectorBucket } from 'components/interfaces/Storage/VectorBuckets/useSelectedVectorBuckets'
import { VectorBucketDetails } from 'components/interfaces/Storage/VectorBuckets/VectorBucketDetails'
+import { useSelectedVectorBucket } from 'components/interfaces/Storage/VectorBuckets/useSelectedVectorBuckets'
import { DefaultLayout } from 'components/layouts/DefaultLayout'
import { PageLayout } from 'components/layouts/PageLayout/PageLayout'
import StorageLayout from 'components/layouts/StorageLayout/StorageLayout'
import { DocsButton } from 'components/ui/DocsButton'
import { VectorBucket as VectorBucketIcon } from 'icons'
-import { useStorageExplorerStateSnapshot } from 'state/storage-explorer'
+import { useRouter } from 'next/router'
+import { useEffect } from 'react'
+import { toast } from 'sonner'
import type { NextPageWithLayout } from 'types'
const VectorsBucketPage: NextPageWithLayout = () => {
- const config = BUCKET_TYPES['vectors']
const router = useRouter()
const { ref, bucketId } = useParams()
- const { projectRef } = useStorageExplorerStateSnapshot()
-
const { data: bucket, isSuccess } = useSelectedVectorBucket()
+ const config = BUCKET_TYPES['vectors']
+
useEffect(() => {
if (isSuccess && !bucket) {
toast.info(`Bucket "${bucketId}" does not exist in your project`)
@@ -39,7 +36,7 @@ const VectorsBucketPage: NextPageWithLayout = () => {
}
breadcrumbs={[
- { label: 'Vectors', href: `/project/${projectRef}/storage/vectors` },
+ { label: 'Vectors', href: `/project/${ref}/storage/vectors` },
{
label: 'Buckets',
},
diff --git a/apps/studio/state/table-editor.tsx b/apps/studio/state/table-editor.tsx
index a45f9672c44..0bd5be50c42 100644
--- a/apps/studio/state/table-editor.tsx
+++ b/apps/studio/state/table-editor.tsx
@@ -1,7 +1,4 @@
import type { PostgresColumn } from '@supabase/postgres-meta'
-import { PropsWithChildren, createContext, useContext } from 'react'
-import { proxy, useSnapshot } from 'valtio'
-
import { useConstant } from 'common'
import type { SupaRow } from 'components/grid/types'
import {
@@ -11,15 +8,16 @@ import {
import { ForeignKey } from 'components/interfaces/TableGridEditor/SidePanelEditor/ForeignKeySelector/ForeignKeySelector.types'
import type { EditValue } from 'components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.types'
import type { TableField } from 'components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.types'
+import { PropsWithChildren, createContext, useContext } from 'react'
import type { Dictionary } from 'types'
+import { proxy, useSnapshot } from 'valtio'
import {
NewQueuedOperation,
- QueuedOperationType,
- type EditCellContentPayload,
type OperationQueueState,
- type QueuedOperation,
type QueueStatus,
+ type QueuedOperation,
+ QueuedOperationType,
} from './table-editor-operation-queue.types'
export const TABLE_EDITOR_DEFAULT_ROWS_PER_PAGE = 100
@@ -203,10 +201,14 @@ export const createTableEditorState = () => {
sidePanel: { type: 'csv-import', file },
}
},
- onViewOperationQueue: () => {
- state.ui = {
- open: 'side-panel',
- sidePanel: { type: 'operation-queue' },
+ toggleViewOperationQueue: () => {
+ if (state.ui.open === 'side-panel' && state.ui.sidePanel.type === 'operation-queue') {
+ state.closeSidePanel()
+ } else {
+ state.ui = {
+ open: 'side-panel',
+ sidePanel: { type: 'operation-queue' },
+ }
}
},
diff --git a/apps/www/README.md b/apps/www/README.md
index 8f20d2653e5..44122a4176b 100644
--- a/apps/www/README.md
+++ b/apps/www/README.md
@@ -5,3 +5,172 @@
Refer to the [Development Guide](../../DEVELOPERS.md) to learn how to run this site locally.
To get started copy the example env file using `cp .env.local.example .env.local`.
+
+## Best practices
+
+### Images
+
+- **Resize images**: All new images should be resized to only the maximum resolution needed when rendering on the frontend. Don't upload images larger than what will be displayed.
+- **Compress images**: All new images should be compressed before committing. Use tools like Clop or ImageOptim to reduce file size without noticeable quality loss.
+- **Image locations**: Store blog post images in `apps/www/public/images/blog/`. Event images go in `apps/www/public/images/events/`.
+
+### OG image generation
+
+Open Graph (OG) images for social sharing are handled differently across content types:
+
+- **Blog posts**: Use static images via `imgSocial` and `imgThumb` fields (see _Blog posts_ section below)
+- **Events**: Use dynamic generation via Edge Function (with optional `og_image` override)
+- **Customer stories**: Use dynamic generation via Edge Function (no static option)
+
+The `og-images` Edge Function (`supabase/functions/og-images/`) automatically generates OG images for events and customer stories. It's deployed via `.github/workflows/og_images.yml` when changes are made to the function code.
+
+**Development**: In local development, the function runs at `http://127.0.0.1:54321/functions/v1/og-images`. Ensure Supabase is running locally (`supabase start`).
+
+### Content frontmatter image fields
+
+Different content types use different image field conventions:
+
+#### Blog posts
+
+Blog posts support two image fields in their frontmatter:
+
+- **`imgSocial`**: Used for Open Graph and social media sharing (X, LinkedIn, etc.). These images should include text overlays since they appear standalone in social feeds without accompanying text.
+- **`imgThumb`**: Used for internal thumbnails displayed on the blog listing pages and featured posts. These images don't need text overlays since they're always displayed alongside the post title and description.
+
+This naming convention was introduced to replace the previously confusing `thumb` and `og` fields, which were often mixed up. The new names clearly indicate:
+
+- **`imgSocial`**: Purpose-built for social media sharing (needs text overlays)
+- **`imgThumb`**: Optimized for site display (clean, no text overlays)
+
+This separation allows you to optimize images for their specific use case while maintaining a clear, unambiguous naming convention.
+
+**Image path format**
+
+Always use **relative paths** (just the filename or subfolder/filename). The `/images/blog/` prefix is added automatically by the code.
+
+- ✅ Correct: `imgSocial: my-post/og.png` or `imgSocial: og.png`
+- ❌ Wrong: `imgSocial: /images/blog/my-post/og.png` (creates double prefix)
+
+**Image fallback behavior**
+
+For site display (what visitors see):
+
+- Priority 1: `imgThumb`
+- Priority 2: `imgSocial` (if `imgThumb` is missing)
+- Priority 3: `/images/blog/blog-placeholder.png` (if both missing)
+
+For social sharing (Open Graph meta tags):
+
+- Priority 1: `imgSocial`
+- Priority 2: `imgThumb` (if `imgSocial` is missing)
+- Priority 3: No fallback (undefined)
+
+Special case for CMS posts:
+
+- CMS posts may also have a `meta.image` field which takes highest priority for social sharing when available.
+
+What happens if fields are not provided?
+
+- If only `imgThumb` is provided: Site displays the image correctly, social sharing uses `imgThumb` as fallback
+- If only `imgSocial` is provided: Social sharing uses it, site display uses it as fallback
+- If neither is provided: Site shows placeholder image, social sharing has no image
+- Best practice: Provide both fields for optimal display and social sharing
+
+**Example**
+
+```yaml
+---
+title: 'My Blog Post'
+imgSocial: 2025-01-01-my-post/og.png # Relative path - with text overlay for social sharing
+imgThumb: 2025-01-01-my-post/thumb.png # Relative path - without text, clean image
+---
+```
+
+The images would be stored at:
+
+- `apps/www/public/images/blog/2025-01-01-my-post/og.png`
+- `apps/www/public/images/blog/2025-01-01-my-post/thumb.png`
+
+Or if using the same image for both:
+
+```yaml
+---
+title: 'My Blog Post'
+imgSocial: my-image.png # Stored at: apps/www/public/images/blog/my-image.png
+imgThumb: my-image.png
+---
+```
+
+#### Events
+
+Events use different image fields to avoid confusion with their display patterns:
+
+- **`thumb`**: Used for event grid item thumbnails (small cards in listing)
+- **`cover_url`**: Used for the featured event banner (large display on events page)
+- **`og_image`** (optional): Used to override the dynamically generated OG image for social sharing
+
+**OG image generation**
+
+Events automatically generate Open Graph images using the `og-images` Supabase Edge Function. The function creates images dynamically based on:
+
+- Event type (conference, hackathon, etc.)
+- Title (or `meta_title` if provided)
+- Description (or `meta_description` if provided)
+- Date (formatted as "DD MMM YYYY" using the event's timezone)
+- Duration (if provided)
+
+If you need a custom OG image that differs from the auto-generated one, you can provide an `og_image` field in the frontmatter. This will override the dynamic generation.
+
+**Example:**
+
+```yaml
+---
+title: 'Supabase Meetup'
+thumb: /images/events/2025-01-meetup/thumbnail.png
+cover_url: https://external-cdn.com/event-banner.jpg
+og_image: /images/events/2025-01-meetup/custom-og.png # Optional override
+---
+```
+
+**Note**: The `og_image` field is optional. If not provided, OG images are generated automatically via the Edge Function.
+
+#### Customer Stories (Case Studies)
+
+Customer stories are defined in MDX files (`apps/www/_customers/*.mdx`) and use a different approach:
+
+- **No `og_image` field**: Customer stories do NOT use static OG images
+- **Dynamic OG generation**: All customer story OG images are automatically generated using the `og-images` Supabase Edge Function
+- The function creates images based on the customer `slug` and `title` (or `meta_title` if provided)
+
+Do not include an `og_image` field in customer story frontmatter. It will be ignored. OG images are always generated dynamically.
+
+**Example** (in `apps/www/_customers/company-abc.mdx`):
+
+```yaml
+---
+name: Company ABC
+title: Company ABC built their platform with Supabase
+# DO NOT include og_image - it's generated automatically
+logo: /images/customers/logos/company-abc.png
+---
+```
+
+**Legacy Case Studies** (in `data/CustomerStories.ts`):
+
+- **`imgUrl`**: Path to the case study image in the source data
+- This gets mapped to `imgThumb` when rendered via `BlogGridItem` component
+- Case studies only need one image for site display (no separate social sharing image)
+
+**Example** (in `data/CustomerStories.ts`):
+
+```typescript
+{
+ type: 'Customer Story',
+ title: 'Company ABC built their platform with Supabase',
+ description: '...',
+ organization: 'Company ABC',
+ imgUrl: 'images/customers/logos/company-abc.png', // Full path from public/
+ logo: '/images/customers/logos/company-abc.png',
+ url: '/customers/company-abc',
+}
+```
diff --git a/apps/www/_blog/2020-08-05-supabase-auth.mdx b/apps/www/_blog/2020-08-05-supabase-auth.mdx
index 982157f8b81..a318c015fc1 100644
--- a/apps/www/_blog/2020-08-05-supabase-auth.mdx
+++ b/apps/www/_blog/2020-08-05-supabase-auth.mdx
@@ -5,7 +5,7 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
-image: /docs/img/supabase-auth-cover.png
+imgThumb: supabase-auth-cover.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2020-09-11-supabase-hacktoberfest-2020.mdx b/apps/www/_blog/2020-09-11-supabase-hacktoberfest-2020.mdx
index 1816b1643ea..d65613517ec 100644
--- a/apps/www/_blog/2020-09-11-supabase-hacktoberfest-2020.mdx
+++ b/apps/www/_blog/2020-09-11-supabase-hacktoberfest-2020.mdx
@@ -5,7 +5,7 @@ author: thor_schaeff
author_title: Supabase community contributor
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: hacktoberfest.png
+imgSocial: hacktoberfest.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2020-10-03-supabase-alpha-september-2020.mdx b/apps/www/_blog/2020-10-03-supabase-alpha-september-2020.mdx
index 56ca49ee3db..28925684fc6 100644
--- a/apps/www/_blog/2020-10-03-supabase-alpha-september-2020.mdx
+++ b/apps/www/_blog/2020-10-03-supabase-alpha-september-2020.mdx
@@ -5,7 +5,7 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
-image: supabase-september-2020.png
+imgSocial: supabase-september-2020.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2020-10-30-improved-dx.mdx b/apps/www/_blog/2020-10-30-improved-dx.mdx
index 9ec5c1d4802..4d05c47cd61 100644
--- a/apps/www/_blog/2020-10-30-improved-dx.mdx
+++ b/apps/www/_blog/2020-10-30-improved-dx.mdx
@@ -5,7 +5,7 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
-image: supabase-js-1-0.png
+imgSocial: supabase-js-1-0.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2020-11-02-supabase-alpha-october-2020.mdx b/apps/www/_blog/2020-11-02-supabase-alpha-october-2020.mdx
index 3255c972787..a59ffb8e090 100644
--- a/apps/www/_blog/2020-11-02-supabase-alpha-october-2020.mdx
+++ b/apps/www/_blog/2020-11-02-supabase-alpha-october-2020.mdx
@@ -5,7 +5,7 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
-image: supabase-october-2020.png
+imgSocial: supabase-october-2020.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2020-12-01-supabase-alpha-november-2020.mdx b/apps/www/_blog/2020-12-01-supabase-alpha-november-2020.mdx
index 2f6914bb147..4710dbc400f 100644
--- a/apps/www/_blog/2020-12-01-supabase-alpha-november-2020.mdx
+++ b/apps/www/_blog/2020-12-01-supabase-alpha-november-2020.mdx
@@ -5,7 +5,7 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
-image: supabase-november-2020.png
+imgSocial: supabase-november-2020.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2020-12-02-case-study-monitoro.mdx b/apps/www/_blog/2020-12-02-case-study-monitoro.mdx
index 04489d31b17..f3644fcfb96 100644
--- a/apps/www/_blog/2020-12-02-case-study-monitoro.mdx
+++ b/apps/www/_blog/2020-12-02-case-study-monitoro.mdx
@@ -5,7 +5,7 @@ author: rory_wilding
author_title: Supabase
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: /images/blog/supabase-monitoro.png
+imgSocial: supabase-monitoro.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2020-12-02-case-study-tayfa.mdx b/apps/www/_blog/2020-12-02-case-study-tayfa.mdx
index 10a8fcfaf9e..1deb16cc565 100644
--- a/apps/www/_blog/2020-12-02-case-study-tayfa.mdx
+++ b/apps/www/_blog/2020-12-02-case-study-tayfa.mdx
@@ -5,7 +5,7 @@ author: rory_wilding
author_title: Supabase
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: /images/blog/supabase-tayfa.png
+imgSocial: supabase-tayfa.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2020-12-02-case-study-xendit.mdx b/apps/www/_blog/2020-12-02-case-study-xendit.mdx
index e52b8ee5e62..30b13d4ea82 100644
--- a/apps/www/_blog/2020-12-02-case-study-xendit.mdx
+++ b/apps/www/_blog/2020-12-02-case-study-xendit.mdx
@@ -5,8 +5,8 @@ author: rory_wilding
author_title: Supabase
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: supabase-xendit.png
-thumb: supabase-xendit-thumb.jpg
+imgSocial: supabase-xendit.png
+imgThumb: supabase-xendit-thumb.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2020-12-02-supabase-striveschool.mdx b/apps/www/_blog/2020-12-02-supabase-striveschool.mdx
index 9ab16773901..4e21eaed66a 100644
--- a/apps/www/_blog/2020-12-02-supabase-striveschool.mdx
+++ b/apps/www/_blog/2020-12-02-supabase-striveschool.mdx
@@ -5,8 +5,8 @@ author: rory_wilding
author_title: Supabase
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: supabase-strive-school.png
-thumb: supabase-strive-school.png
+imgSocial: supabase-strive-school.png
+imgThumb: supabase-strive-school.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-01-02-supabase-beta-december-2020.mdx b/apps/www/_blog/2021-01-02-supabase-beta-december-2020.mdx
index f34af40b4f1..9453b0c5da3 100644
--- a/apps/www/_blog/2021-01-02-supabase-beta-december-2020.mdx
+++ b/apps/www/_blog/2021-01-02-supabase-beta-december-2020.mdx
@@ -5,8 +5,8 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: supabase-december-2020.png
-thumb: supabase-december-2020.png
+imgSocial: supabase-december-2020.png
+imgThumb: supabase-december-2020.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx b/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx
index b3819515324..eaaf051995a 100644
--- a/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx
+++ b/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx
@@ -5,8 +5,8 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: supabase-january-2021.png
-thumb: supabase-january-2021.png
+imgSocial: supabase-january-2021.png
+imgThumb: supabase-january-2021.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-02-09-case-study-roboflow.mdx b/apps/www/_blog/2021-02-09-case-study-roboflow.mdx
index 8ab5719b4ac..bddb0e11955 100644
--- a/apps/www/_blog/2021-02-09-case-study-roboflow.mdx
+++ b/apps/www/_blog/2021-02-09-case-study-roboflow.mdx
@@ -5,8 +5,8 @@ author: rory_wilding
author_title: Supabase
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: roboflow-og.png
-thumb: roboflow-website.png
+imgSocial: roboflow-og.png
+imgThumb: roboflow-website.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx b/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx
index 3c3d8bb6d23..450f24d2a5f 100644
--- a/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx
+++ b/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx
@@ -5,8 +5,8 @@ author: ant_wilson
author_title: Supabase
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: elephants.png
-thumb: elephants.png
+imgSocial: elephants.png
+imgThumb: elephants.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2021-03-02-supabase-beta-february-2021.mdx b/apps/www/_blog/2021-03-02-supabase-beta-february-2021.mdx
index 97fd5b657e8..6ea772a8fc7 100644
--- a/apps/www/_blog/2021-03-02-supabase-beta-february-2021.mdx
+++ b/apps/www/_blog/2021-03-02-supabase-beta-february-2021.mdx
@@ -5,7 +5,7 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: /images/blog/release-feb-2021.jpg
+imgSocial: release-feb-2021.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx b/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx
index 8b35602faf7..8e276c78139 100644
--- a/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx
+++ b/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx
@@ -5,8 +5,8 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: supabase-postgres-cron.png
-thumb: supabase-postgres-cron.png
+imgSocial: supabase-postgres-cron.png
+imgThumb: supabase-postgres-cron.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2021-03-08-toad-a-link-shortener-with-simple-apis-for-low-coders.mdx b/apps/www/_blog/2021-03-08-toad-a-link-shortener-with-simple-apis-for-low-coders.mdx
index 4d950c1b90d..7689751aa75 100644
--- a/apps/www/_blog/2021-03-08-toad-a-link-shortener-with-simple-apis-for-low-coders.mdx
+++ b/apps/www/_blog/2021-03-08-toad-a-link-shortener-with-simple-apis-for-low-coders.mdx
@@ -5,8 +5,8 @@ author: rory_wilding
author_title: Supabase
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: toadli-og.jpg
-thumb: toadli-website.jpg
+imgSocial: toadli-og.jpg
+imgThumb: toadli-website.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2021-03-11-using-supabase-replit.mdx b/apps/www/_blog/2021-03-11-using-supabase-replit.mdx
index f1cf1707d89..d796de6360e 100644
--- a/apps/www/_blog/2021-03-11-using-supabase-replit.mdx
+++ b/apps/www/_blog/2021-03-11-using-supabase-replit.mdx
@@ -5,8 +5,8 @@ author: ant_wilson
author_title: Supabase
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: replit-og.jpg
-thumb: replit-og.jpg
+imgSocial: replit-og.jpg
+imgThumb: replit-og.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2021-03-22-In-The-Loop.mdx b/apps/www/_blog/2021-03-22-In-The-Loop.mdx
index 45577756a4d..f017535fcca 100644
--- a/apps/www/_blog/2021-03-22-In-The-Loop.mdx
+++ b/apps/www/_blog/2021-03-22-In-The-Loop.mdx
@@ -2,8 +2,8 @@
title: Developers stay up to date with intheloop.dev
description: Learn why Kevin is building intheloop.dev with Supabase
author: rory_wilding
-image: intheloop-supabase.jpg
-thumb: intheloop-supabase.jpg
+imgSocial: intheloop-supabase.jpg
+imgThumb: intheloop-supabase.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-03-25-angels-of-supabase.mdx b/apps/www/_blog/2021-03-25-angels-of-supabase.mdx
index acc68adc777..ca79ea17795 100644
--- a/apps/www/_blog/2021-03-25-angels-of-supabase.mdx
+++ b/apps/www/_blog/2021-03-25-angels-of-supabase.mdx
@@ -5,8 +5,8 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: angels-of-supabase.png
-thumb: angels-of-supabase.png
+imgSocial: angels-of-supabase.png
+imgThumb: angels-of-supabase.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-03-25-launch-week.mdx b/apps/www/_blog/2021-03-25-launch-week.mdx
index 382c72afac6..f047643d889 100644
--- a/apps/www/_blog/2021-03-25-launch-week.mdx
+++ b/apps/www/_blog/2021-03-25-launch-week.mdx
@@ -5,8 +5,8 @@ author: ant_wilson
author_title: Supabase
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: supabase-launch-week.png
-thumb: supabase-launch-week.png
+imgSocial: supabase-launch-week.png
+imgThumb: supabase-launch-week.png
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2021-03-29-pricing.mdx b/apps/www/_blog/2021-03-29-pricing.mdx
index 051d5e3e8c7..2ee6f0531fc 100644
--- a/apps/www/_blog/2021-03-29-pricing.mdx
+++ b/apps/www/_blog/2021-03-29-pricing.mdx
@@ -2,8 +2,7 @@
title: Supabase Beta Pricing
description: Supabase launches Beta pricing structure
author: rory_wilding
-image: pricing-og.jpg
-thumb: launch-week-pricing.jpg
+imgThumb: launch-week-pricing.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-03-30-supabase-storage.mdx b/apps/www/_blog/2021-03-30-supabase-storage.mdx
index b090e7fc6ba..ca2642d712d 100644
--- a/apps/www/_blog/2021-03-30-supabase-storage.mdx
+++ b/apps/www/_blog/2021-03-30-supabase-storage.mdx
@@ -2,8 +2,8 @@
title: Storage is now available in Supabase
description: Launching Supabase Storage and how you can use it in your apps
author: inian
-image: storage/ph-1.png
-thumb: storage/ph-1.png
+imgSocial: storage/ph-1.png
+imgThumb: storage/ph-1.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-03-31-supabase-cli.mdx b/apps/www/_blog/2021-03-31-supabase-cli.mdx
index 920538b61f3..bf87765523a 100644
--- a/apps/www/_blog/2021-03-31-supabase-cli.mdx
+++ b/apps/www/_blog/2021-03-31-supabase-cli.mdx
@@ -2,8 +2,8 @@
title: Supabase CLI
description: Local development, database migrations, and self-hosting.
author: soedirgo
-image: cli/cli-og.jpg
-thumb: cli/cli-og.jpg
+imgSocial: cli/cli-og.jpg
+imgThumb: cli/cli-og.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-04-01-supabase-nft-marketplace.mdx b/apps/www/_blog/2021-04-01-supabase-nft-marketplace.mdx
index c20932f3557..7da59b29a84 100644
--- a/apps/www/_blog/2021-04-01-supabase-nft-marketplace.mdx
+++ b/apps/www/_blog/2021-04-01-supabase-nft-marketplace.mdx
@@ -5,8 +5,8 @@ author: ant_wilson
author_title: Supabase
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: nft/nft-3.png
-thumb: nft/nft-3.png
+imgSocial: nft/nft-3.png
+imgThumb: nft/nft-3.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-04-02-supabase-dot-com.mdx b/apps/www/_blog/2021-04-02-supabase-dot-com.mdx
index b507eb56f69..8348b49bf52 100644
--- a/apps/www/_blog/2021-04-02-supabase-dot-com.mdx
+++ b/apps/www/_blog/2021-04-02-supabase-dot-com.mdx
@@ -5,8 +5,8 @@ author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: supabase-dot-com-og.jpg
-thumb: supabase-dot-com-og.jpg
+imgSocial: supabase-dot-com-og.jpg
+imgThumb: supabase-dot-com-og.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-04-02-supabase-pgbouncer.mdx b/apps/www/_blog/2021-04-02-supabase-pgbouncer.mdx
index ce82d63ceec..4a3ec6d691b 100644
--- a/apps/www/_blog/2021-04-02-supabase-pgbouncer.mdx
+++ b/apps/www/_blog/2021-04-02-supabase-pgbouncer.mdx
@@ -5,8 +5,8 @@ author: angelico_de_los_reyes
author_title: Supabase
author_url: https://github.com/dragarcia
author_image_url: https://github.com/dragarcia.png
-image: bouncer/pgbouncer-og.jpg
-thumb: bouncer/pgbouncer-thumb.jpg
+imgSocial: bouncer/pgbouncer-supabase-og.jpg
+imgThumb: bouncer/pgbouncer-thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-04-02-supabase-workflows.mdx b/apps/www/_blog/2021-04-02-supabase-workflows.mdx
index e017043ded5..d12a9f68026 100644
--- a/apps/www/_blog/2021-04-02-supabase-workflows.mdx
+++ b/apps/www/_blog/2021-04-02-supabase-workflows.mdx
@@ -5,8 +5,8 @@ author: fracek
author_title: Supabase
author_url: https://github.com/fracek
author_image_url: https://github.com/fracek.png
-image: workflows/workflows-og.jpg
-thumb: workflows/workflows-thumb.jpg
+imgSocial: workflows/workflows-og.jpg
+imgThumb: workflows/workflows-thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-04-06-supabase-beta-march-2021.mdx b/apps/www/_blog/2021-04-06-supabase-beta-march-2021.mdx
index c0d6a489287..c822009bb8b 100644
--- a/apps/www/_blog/2021-04-06-supabase-beta-march-2021.mdx
+++ b/apps/www/_blog/2021-04-06-supabase-beta-march-2021.mdx
@@ -4,8 +4,8 @@ description: Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: march-2021/release-mar-2021.jpg
-thumb: march-2021/release-mar-2021.jpg
+imgSocial: march-2021/release-mar-2021.jpg
+imgThumb: march-2021/release-mar-2021.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-05-03-supabase-beta-april-2021.mdx b/apps/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
index 07fc96a8274..fb7e641a19d 100644
--- a/apps/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
+++ b/apps/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
@@ -4,8 +4,8 @@ description: Supabase "gardening" - stability, security, and community support.
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: april-2021/release-apr-2021.jpg
-thumb: april-2021/release-apr-2021.jpg
+imgSocial: april-2021/release-apr-2021.jpg
+imgThumb: april-2021/release-apr-2021.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-06-02-supabase-beta-may-2021.mdx b/apps/www/_blog/2021-06-02-supabase-beta-may-2021.mdx
index 2ef3af650fe..3606b2b4d59 100644
--- a/apps/www/_blog/2021-06-02-supabase-beta-may-2021.mdx
+++ b/apps/www/_blog/2021-06-02-supabase-beta-may-2021.mdx
@@ -4,8 +4,8 @@ description: Apple & Twitter Logins, Supabase Grid, Go & Swift Libraries
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: 2021-may/release-may-2021.jpg
-thumb: 2021-may/release-may-2021.jpg
+imgSocial: 2021-may/release-may-2021.jpg
+imgThumb: 2021-may/release-may-2021.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx b/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx
index 6c3f35fadb7..9fed32e24d5 100644
--- a/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx
+++ b/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx
@@ -4,8 +4,8 @@ description: Using Postgres Hooks to protect functionality in your Postgres data
author: steve_chavez
author_url: https://github.com/steve-chavez
author_image_url: https://github.com/steve-chavez.png
-image: postgres-hooks/og-postgres-hooks.jpg
-thumb: postgres-hooks/cover-postgres-hooks.jpg
+imgSocial: postgres-hooks/og-postgres-hooks.jpg
+imgThumb: postgres-hooks/cover-postgres-hooks.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2021-07-02-supabase-beta-june-2021.mdx b/apps/www/_blog/2021-07-02-supabase-beta-june-2021.mdx
index ee3ad0186c2..e39a2d498ed 100644
--- a/apps/www/_blog/2021-07-02-supabase-beta-june-2021.mdx
+++ b/apps/www/_blog/2021-07-02-supabase-beta-june-2021.mdx
@@ -4,8 +4,8 @@ description: Discord Logins, Vercel Integration, Full text search, and OAuth gui
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: 2021-june/release-june-2021.jpg
-thumb: 2021-june/release-june-2021-cover.jpg
+imgSocial: 2021-june/release-june-2021.jpg
+imgThumb: 2021-june/release-june-2021-cover.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-07-22-supabase-launch-week-sql.mdx b/apps/www/_blog/2021-07-22-supabase-launch-week-sql.mdx
index 9ecfbed3a4a..8f9ac7de4fe 100644
--- a/apps/www/_blog/2021-07-22-supabase-launch-week-sql.mdx
+++ b/apps/www/_blog/2021-07-22-supabase-launch-week-sql.mdx
@@ -4,8 +4,8 @@ description: Five days of Supabase. Again.
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: launch-week-sql/launchweek-2-the-sql-og.jpg
-thumb: launch-week-sql/supabase-launch-the-sql.png
+imgSocial: launch-week-sql/launchweek-2-the-sql-og.jpg
+imgThumb: launch-week-sql/supabase-launch-the-sql.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-07-26-epsilon3-self-hosting.mdx b/apps/www/_blog/2021-07-26-epsilon3-self-hosting.mdx
index c1b888a7bd7..28b6cdedb72 100644
--- a/apps/www/_blog/2021-07-26-epsilon3-self-hosting.mdx
+++ b/apps/www/_blog/2021-07-26-epsilon3-self-hosting.mdx
@@ -4,8 +4,8 @@ description: Learn how the team at Epsilon3 use Supabase to help teams execute s
author: rory_wilding
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: epsilon3/og-epsilon3.jpg
-thumb: epsilon3/cover-epsilon3.jpg
+imgSocial: epsilon3/og-epsilon3.jpg
+imgThumb: epsilon3/cover-epsilon3.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-07-26-supabase-community-day.mdx b/apps/www/_blog/2021-07-26-supabase-community-day.mdx
index d276dd8378a..61f3f002626 100644
--- a/apps/www/_blog/2021-07-26-supabase-community-day.mdx
+++ b/apps/www/_blog/2021-07-26-supabase-community-day.mdx
@@ -4,8 +4,8 @@ description: Community Day
author: steve_chavez
author_url: https://github.com/steve-chavez
author_image_url: https://github.com/steve-chavez.png
-thumb: launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-thumb.jpg
-image: launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-og.jpg
+imgThumb: launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-thumb.jpg
+imgSocial: launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-og.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx b/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx
index 6d327c007d1..4c1400f2c02 100644
--- a/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx
+++ b/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx
@@ -4,8 +4,8 @@ description: From today, new Supabase projects will be on a version of Supabase
author: angelico_de_los_reyes
author_url: https://github.com/dragarcia
author_image_url: https://github.com/dragarcia.png
-image: pg13/postgres-13-og.jpg
-thumb: pg13/postgres-13-thumb.jpg
+imgSocial: pg13/postgres-13-og.jpg
+imgThumb: pg13/postgres-13-thumb.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2021-07-27-spot-flutter-with-postgres.mdx b/apps/www/_blog/2021-07-27-spot-flutter-with-postgres.mdx
index c7d8e4ca0a3..c2c8d4ffde8 100644
--- a/apps/www/_blog/2021-07-27-spot-flutter-with-postgres.mdx
+++ b/apps/www/_blog/2021-07-27-spot-flutter-with-postgres.mdx
@@ -4,8 +4,8 @@ description: Spot is a geolocation-based video-sharing app with some social netw
author: rory_wilding
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: spot/og-spot-flutter-supabase.jpg
-thumb: spot/cover-spot-flutter-supabase.jpg
+imgSocial: spot/og-spot-flutter-supabase.jpg
+imgThumb: spot/cover-spot-flutter-supabase.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2021-07-27-storage-beta.mdx b/apps/www/_blog/2021-07-27-storage-beta.mdx
index ead4a27fe50..3ccb79e9a04 100644
--- a/apps/www/_blog/2021-07-27-storage-beta.mdx
+++ b/apps/www/_blog/2021-07-27-storage-beta.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Storage now in Beta'
description: Supabase Storage moves into Beta.
author: inian
-image: launch-week-sql-day-2/supabase-storage-beta-og.jpg
-thumb: launch-week-sql-day-2/supabase-storage-beta.jpg
+imgSocial: launch-week-sql-day-2/supabase-storage-beta-og.jpg
+imgThumb: launch-week-sql-day-2/supabase-storage-beta.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-07-28-mobbin-supabase-200000-users.mdx b/apps/www/_blog/2021-07-28-mobbin-supabase-200000-users.mdx
index 504fed6ede3..2eca9127379 100644
--- a/apps/www/_blog/2021-07-28-mobbin-supabase-200000-users.mdx
+++ b/apps/www/_blog/2021-07-28-mobbin-supabase-200000-users.mdx
@@ -4,8 +4,8 @@ description: Learn how Mobbin migrated 200,000 users from Firebase for a better
author: rory_wilding
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: mobbin/og-mobbin-supabase.jpg
-thumb: mobbin/cover-mobbin-supabase.jpg
+imgSocial: mobbin/og-mobbin-supabase.jpg
+imgThumb: mobbin/cover-mobbin-supabase.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-07-28-supabase-auth-passwordless-sms-login.mdx b/apps/www/_blog/2021-07-28-supabase-auth-passwordless-sms-login.mdx
index d7bd3bbbf44..630921c3b21 100644
--- a/apps/www/_blog/2021-07-28-supabase-auth-passwordless-sms-login.mdx
+++ b/apps/www/_blog/2021-07-28-supabase-auth-passwordless-sms-login.mdx
@@ -4,8 +4,8 @@ description: Phone Auth is available today on all new and existing Supabase proj
author: kangmingtay
author_url: https://github.com/kangmingtay
author_image_url: https://github.com/kangmingtay.png
-image: auth-v2/supabase-auth-v2-og.jpg
-thumb: auth-v2/supabase-auth-v2-cover.jpg
+imgSocial: auth-v2/supabase-auth-v2-og.jpg
+imgThumb: auth-v2/supabase-auth-v2-cover.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-07-29-supabase-reports-and-metrics.mdx b/apps/www/_blog/2021-07-29-supabase-reports-and-metrics.mdx
index 5ef13b8cdbb..1bc2f741d45 100644
--- a/apps/www/_blog/2021-07-29-supabase-reports-and-metrics.mdx
+++ b/apps/www/_blog/2021-07-29-supabase-reports-and-metrics.mdx
@@ -4,8 +4,8 @@ description: We're exposing a full set of metrics in your projects, so that you
author: div_arora
author_url: https://github.com/darora
author_image_url: https://github.com/darora.png
-image: launch-week-sql-day-4-reports-and-metrics/supabase-reports-and-metrics-og.jpg
-thumb: launch-week-sql-day-4-reports-and-metrics/reports-and-metrics-thumb.jpg
+imgSocial: launch-week-sql-day-4-reports-and-metrics/supabase-reports-and-metrics-og.jpg
+imgThumb: launch-week-sql-day-4-reports-and-metrics/reports-and-metrics-thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-07-30-1-the-supabase-hackathon.mdx b/apps/www/_blog/2021-07-30-1-the-supabase-hackathon.mdx
index 51890425261..e58402006d1 100644
--- a/apps/www/_blog/2021-07-30-1-the-supabase-hackathon.mdx
+++ b/apps/www/_blog/2021-07-30-1-the-supabase-hackathon.mdx
@@ -4,8 +4,8 @@ description: A whole week of Hacking for Fun and Prizes.
author: ant_wilson
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: hackathon/og-supabase-hackathon.png
-thumb: hackathon/cover-supabase-hackathon.png
+imgSocial: hackathon/og-supabase-hackathon.png
+imgThumb: hackathon/cover-supabase-hackathon.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx b/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx
index 3ca8dc76581..5776cba6b70 100644
--- a/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx
+++ b/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx
@@ -4,8 +4,8 @@ description: The question on everyone's mind - are we launching Supabase Functio
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: functions-updates/og-supabase-hooks.jpg
-thumb: functions-updates/thumb-supabase-hooks.jpg
+imgSocial: functions-updates/og-supabase-hooks.jpg
+imgThumb: functions-updates/thumb-supabase-hooks.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-07-30-supabase-swag-store.mdx b/apps/www/_blog/2021-07-30-supabase-swag-store.mdx
index a56a8e79615..53d1ebb7153 100644
--- a/apps/www/_blog/2021-07-30-supabase-swag-store.mdx
+++ b/apps/www/_blog/2021-07-30-supabase-swag-store.mdx
@@ -4,8 +4,8 @@ description: Today we are officially launching the Supabase Swag Store.
author: rory_wilding
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: swag-store/og-supabase-swag-store.jpg
-thumb: swag-store/cover-swag-store.jpg
+imgSocial: swag-store/og-supabase-swag-store.jpg
+imgThumb: swag-store/cover-swag-store.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-08-09-hackathon-winners.mdx b/apps/www/_blog/2021-08-09-hackathon-winners.mdx
index 3f20b24577f..2cec56809c8 100644
--- a/apps/www/_blog/2021-08-09-hackathon-winners.mdx
+++ b/apps/www/_blog/2021-08-09-hackathon-winners.mdx
@@ -4,8 +4,8 @@ description: Let the medal ceremony begin for the best projects submitted during
author: ant_wilson
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: hackathon-winners/misc/winners-og.png
-thumb: hackathon-winners/misc/winners-og.png
+imgSocial: hackathon-winners/misc/winners-og.png
+imgThumb: hackathon-winners/misc/winners-og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-08-12-supabase-beta-july-2021.mdx b/apps/www/_blog/2021-08-12-supabase-beta-july-2021.mdx
index 36ebff7fc5b..40eb87463fa 100644
--- a/apps/www/_blog/2021-08-12-supabase-beta-july-2021.mdx
+++ b/apps/www/_blog/2021-08-12-supabase-beta-july-2021.mdx
@@ -4,8 +4,8 @@ description: Discord Logins, Vercel Integration, Full text search, and OAuth gui
author: ant_wilson
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: 2021-july/release-july-2021.jpg
-thumb: 2021-july/release-july-2021-cover.jpg
+imgSocial: 2021-july/release-july-2021.jpg
+imgThumb: 2021-july/release-july-2021-cover.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx b/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx
index 0cb16823e7c..96f615148b6 100644
--- a/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx
+++ b/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx
@@ -4,8 +4,8 @@ description: Fundraising, Realtime Security, custom SMS templates, and deploymen
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: 2021-august/release-august-2021.jpg
-thumb: 2021-august/release-august-2021-cover.jpg
+imgSocial: 2021-august/release-august-2021.jpg
+imgThumb: 2021-august/release-august-2021-cover.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-09-28-supabase-hacktoberfest-hackathon-2021.mdx b/apps/www/_blog/2021-09-28-supabase-hacktoberfest-hackathon-2021.mdx
index bed043ef730..cf86b2ef835 100644
--- a/apps/www/_blog/2021-09-28-supabase-hacktoberfest-hackathon-2021.mdx
+++ b/apps/www/_blog/2021-09-28-supabase-hacktoberfest-hackathon-2021.mdx
@@ -4,8 +4,8 @@ description: We're running another Supabase Hackathon during Hacktoberfest!
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: hacktoberfest-hackathon/hacktoberfest_banner.png
-thumb: hacktoberfest-hackathon/hacktoberfest_banner.png
+imgSocial: hacktoberfest-hackathon/hacktoberfest_banner.png
+imgThumb: hacktoberfest-hackathon/hacktoberfest_banner.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-10-04-supabase-beta-sept-2021.mdx b/apps/www/_blog/2021-10-04-supabase-beta-sept-2021.mdx
index d185d46fd2b..3d029fa3edc 100644
--- a/apps/www/_blog/2021-10-04-supabase-beta-sept-2021.mdx
+++ b/apps/www/_blog/2021-10-04-supabase-beta-sept-2021.mdx
@@ -4,8 +4,8 @@ description: Hackathon, Aborting request, UI updates, and now Hiring.
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: 2021-sept/release-sept-2021.jpg
-thumb: 2021-sept/release-sept-2021-cover.jpg
+imgSocial: 2021-sept/release-sept-2021.jpg
+imgThumb: 2021-sept/release-sept-2021-cover.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-10-14-hacktoberfest-hackathon-winners-2021.mdx b/apps/www/_blog/2021-10-14-hacktoberfest-hackathon-winners-2021.mdx
index d59668bcc01..e73f3e06086 100644
--- a/apps/www/_blog/2021-10-14-hacktoberfest-hackathon-winners-2021.mdx
+++ b/apps/www/_blog/2021-10-14-hacktoberfest-hackathon-winners-2021.mdx
@@ -4,8 +4,8 @@ description: Celebrating many amazing projects submitted to our Hacktoberfest Ha
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: hackathon-winners/misc/hacktoberfest-og.png
-thumb: hackathon-winners/misc/hacktoberfest-og.png
+imgSocial: hackathon-winners/misc/hacktoberfest-og.png
+imgThumb: hackathon-winners/misc/hacktoberfest-og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-10-19-replenysh-time-to-value-in-less-than-24-hours.mdx b/apps/www/_blog/2021-10-19-replenysh-time-to-value-in-less-than-24-hours.mdx
index 6b1599d9878..fe8f094de0b 100644
--- a/apps/www/_blog/2021-10-19-replenysh-time-to-value-in-less-than-24-hours.mdx
+++ b/apps/www/_blog/2021-10-19-replenysh-time-to-value-in-less-than-24-hours.mdx
@@ -4,8 +4,8 @@ description: Learn how Replenysh uses Supabase to power the circular economy, re
author: rory_wilding
author_url: https://github.com/roryw10
author_image_url: https://github.com/roryw10.png
-image: replenysh/og-replenysh.png
-thumb: replenysh/thumb-replenysh.png
+imgSocial: replenysh/og-replenysh.png
+imgThumb: replenysh/thumb-replenysh.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-10-28-supabase-series-a.mdx b/apps/www/_blog/2021-10-28-supabase-series-a.mdx
index 169a480c7f0..1236f95845b 100644
--- a/apps/www/_blog/2021-10-28-supabase-series-a.mdx
+++ b/apps/www/_blog/2021-10-28-supabase-series-a.mdx
@@ -2,8 +2,8 @@
title: 'Supabase $30m Series A'
description: Supabase just raised $30M, bringing our total funding to $36M.
author: paul_copplestone
-image: series-a/supabase-series-a.png
-thumb: series-a/supabase-series-a.png
+imgSocial: series-a/supabase-series-a.png
+imgThumb: series-a/supabase-series-a.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx b/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx
index a7af48000cb..eef0319570c 100644
--- a/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx
+++ b/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx
@@ -4,8 +4,8 @@ description: Three new Auth providers, multi-schema support, and we're gearing u
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: 2021-oct/release-oct-2021.jpg
-thumb: 2021-oct/release-oct-2021-cover.jpg
+imgSocial: 2021-oct/release-oct-2021.jpg
+imgThumb: 2021-oct/release-oct-2021-cover.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-11-26-supabase-how-we-launch.mdx b/apps/www/_blog/2021-11-26-supabase-how-we-launch.mdx
index 8d533e27f0b..b2dabe523b7 100644
--- a/apps/www/_blog/2021-11-26-supabase-how-we-launch.mdx
+++ b/apps/www/_blog/2021-11-26-supabase-how-we-launch.mdx
@@ -4,8 +4,8 @@ description: The history and methodology of Supabase Launch Week.
author: ant_wilson
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: how-we-launch/how-we-launch-og.jpg
-thumb: how-we-launch/how-we-launch-thumb.jpg
+imgSocial: how-we-launch/how-we-launch-og.jpg
+imgThumb: how-we-launch/how-we-launch-thumb.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-11-26-supabase-launch-week-the-trilogy.mdx b/apps/www/_blog/2021-11-26-supabase-launch-week-the-trilogy.mdx
index 79b7ec196e6..71385df7189 100644
--- a/apps/www/_blog/2021-11-26-supabase-launch-week-the-trilogy.mdx
+++ b/apps/www/_blog/2021-11-26-supabase-launch-week-the-trilogy.mdx
@@ -4,8 +4,8 @@ description: Tis the season to be shipping.
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: launch-week-three/launch-week-three-og.jpg
-thumb: launch-week-three/launch-week-three-thumb.jpg
+imgSocial: launch-week-three/launch-week-three-og.jpg
+imgThumb: launch-week-three/launch-week-three-thumb.jpg
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2021-11-28-postgrest-9.mdx b/apps/www/_blog/2021-11-28-postgrest-9.mdx
index 1d6abfb7ad5..211148f9ea7 100644
--- a/apps/www/_blog/2021-11-28-postgrest-9.mdx
+++ b/apps/www/_blog/2021-11-28-postgrest-9.mdx
@@ -4,8 +4,8 @@ description: New features and updates in PostgREST version 9.
author: steve_chavez
author_url: https://github.com/steve-chavez
author_image_url: https://github.com/steve-chavez.png
-image: postgrest-9/whats-new-in-postgrest-9-og.png
-thumb: postgrest-9/whats-new-in-postgrest-9-thumb.png
+imgSocial: postgrest-9/whats-new-in-postgrest-9-og.png
+imgThumb: postgrest-9/whats-new-in-postgrest-9-thumb.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx b/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx
index 286d0e91883..fd5ae875ff3 100644
--- a/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx
+++ b/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx
@@ -4,8 +4,8 @@ description: 'A quick look at some new features and functionality in PostgreSQL
author: gurjeet
author_url: https://github.com/gurjeet
author_image_url: https://github.com/gurjeet.png
-image: whats-new-in-postgres-14/whats-new-in-postgres-14-og.png
-thumb: whats-new-in-postgres-14/whats-new-in-postgres-14-thumb.png
+imgSocial: whats-new-in-postgres-14/whats-new-in-postgres-14-og.png
+imgThumb: whats-new-in-postgres-14/whats-new-in-postgres-14-thumb.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2021-11-29-community-day-lw3.mdx b/apps/www/_blog/2021-11-29-community-day-lw3.mdx
index 095789b54b6..fc219cc6736 100644
--- a/apps/www/_blog/2021-11-29-community-day-lw3.mdx
+++ b/apps/www/_blog/2021-11-29-community-day-lw3.mdx
@@ -4,8 +4,8 @@ description: Kicking off launch week by highlighting the communities around Supa
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: launch-week-three/community-day/supabase-oss.jpg
-thumb: launch-week-three/community-day/supabase-oss.jpg
+imgSocial: launch-week-three/community-day/supabase-oss.jpg
+imgThumb: launch-week-three/community-day/supabase-oss.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-11-30-supabase-studio.mdx b/apps/www/_blog/2021-11-30-supabase-studio.mdx
index 241716817b3..42c259b3ddf 100644
--- a/apps/www/_blog/2021-11-30-supabase-studio.mdx
+++ b/apps/www/_blog/2021-11-30-supabase-studio.mdx
@@ -4,8 +4,8 @@ description: "The same Dashboard that you're using on our Platform is now availa
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: launch-week-three/studio/open-source-studio-og.png
-thumb: launch-week-three/studio/open-source-studio-thumb.png
+imgSocial: launch-week-three/studio/open-source-studio-og.png
+imgThumb: launch-week-three/studio/open-source-studio-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx b/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx
index 53b37897075..d2489530ebe 100644
--- a/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx
+++ b/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx
@@ -4,8 +4,8 @@ description: 'Realtime database changes are now broadcast to authenticated users
author: oli_rice
author_url: https://github.com/olirice
author_image_url: https://github.com/olirice.png
-image: launch-week-three/realtime-row-level-security-in-postgresql/realtime-row-level-security-in-postgresql-og.png
-thumb: launch-week-three/realtime-row-level-security-in-postgresql/realtime-row-level-security-in-postgresql-thumb.png
+imgSocial: launch-week-three/realtime-row-level-security-in-postgresql/realtime-row-level-security-in-postgresql-og.png
+imgThumb: launch-week-three/realtime-row-level-security-in-postgresql/realtime-row-level-security-in-postgresql-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-12-02-supabase-acquires-logflare.mdx b/apps/www/_blog/2021-12-02-supabase-acquires-logflare.mdx
index 60c8a04eb00..11463b4c083 100644
--- a/apps/www/_blog/2021-12-02-supabase-acquires-logflare.mdx
+++ b/apps/www/_blog/2021-12-02-supabase-acquires-logflare.mdx
@@ -4,8 +4,8 @@ description: "Today, we're ecstatic to announce that Logflare is joining Supabas
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: launch-week-three/supabase-acquires-logflare/supabase-acquires-logflare-og.png
-thumb: launch-week-three/supabase-acquires-logflare/supabase-acquires-logflare-thumb.png
+imgSocial: launch-week-three/supabase-acquires-logflare/supabase-acquires-logflare-og.png
+imgThumb: launch-week-three/supabase-acquires-logflare/supabase-acquires-logflare-thumb.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2021-12-03-launch-week-three-friday-five-more-things.mdx b/apps/www/_blog/2021-12-03-launch-week-three-friday-five-more-things.mdx
index aa3a4e70026..b809a6d6b81 100644
--- a/apps/www/_blog/2021-12-03-launch-week-three-friday-five-more-things.mdx
+++ b/apps/www/_blog/2021-12-03-launch-week-three-friday-five-more-things.mdx
@@ -4,8 +4,8 @@ description: It's never just one more thing!
author: ant_wilson
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: launch-week-three/five-more-things/five-more-things-og.png
-thumb: launch-week-three/five-more-things/five-more-things-thumb.png
+imgSocial: launch-week-three/five-more-things/five-more-things-og.png
+imgThumb: launch-week-three/five-more-things/five-more-things-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-12-03-pg-graphql.mdx b/apps/www/_blog/2021-12-03-pg-graphql.mdx
index 0158e74ae8f..e0a846629fe 100644
--- a/apps/www/_blog/2021-12-03-pg-graphql.mdx
+++ b/apps/www/_blog/2021-12-03-pg-graphql.mdx
@@ -4,8 +4,8 @@ description: GraphQL support is in development for PostgreSQL + Supabase.
author: oli_rice
author_url: https://github.com/olirice
author_image_url: https://github.com/olirice.png
-image: launch-week-three/five-more-things/supabase-pg-graphql-og.jpg
-thumb: launch-week-three/five-more-things/supabase-pg-graphql-thumb.jpg
+imgSocial: launch-week-three/five-more-things/supabase-pg-graphql-og.jpg
+imgThumb: launch-week-three/five-more-things/supabase-pg-graphql-thumb.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx b/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx
index 311a7cb4871..a8c85b30816 100644
--- a/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx
+++ b/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx
@@ -4,8 +4,8 @@ description: Build cool stuff and celebrate open-source software with us during
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: launch-week-three/holiday-hackdays-og.png
-thumb: launch-week-three/holiday-hackdays-og.png
+imgSocial: launch-week-three/holiday-hackdays-og.png
+imgThumb: launch-week-three/holiday-hackdays-og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2021-12-15-beta-november-2021-launch-week-recap.mdx b/apps/www/_blog/2021-12-15-beta-november-2021-launch-week-recap.mdx
index 7d5bca8b4c3..6d956bd7572 100644
--- a/apps/www/_blog/2021-12-15-beta-november-2021-launch-week-recap.mdx
+++ b/apps/www/_blog/2021-12-15-beta-november-2021-launch-week-recap.mdx
@@ -4,8 +4,8 @@ description: We wrapped up November with Supabase's third Launch Week. Here's al
author: ant_wilson
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: 2021-nov/release-nov-2021.jpg
-thumb: 2021-nov/release-nov-2021-cover.jpg
+imgSocial: 2021-nov/release-nov-2021.jpg
+imgThumb: 2021-nov/release-nov-2021-cover.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2021-12-17-holiday-hackdays-winners-2021.mdx b/apps/www/_blog/2021-12-17-holiday-hackdays-winners-2021.mdx
index 1211f7ec2e4..435285f4e7f 100644
--- a/apps/www/_blog/2021-12-17-holiday-hackdays-winners-2021.mdx
+++ b/apps/www/_blog/2021-12-17-holiday-hackdays-winners-2021.mdx
@@ -4,8 +4,8 @@ description: Celebrating many amazing projects submitted to our Holiday Hackdays
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: hackathon-winners/holiday-hackdays/holiday-hackdays-winners-og.png
-thumb: hackathon-winners/holiday-hackdays/holiday-hackdays-winners-og.png
+imgSocial: hackathon-winners/holiday-hackdays/holiday-hackdays-winners-og.png
+imgThumb: hackathon-winners/holiday-hackdays/holiday-hackdays-winners-og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx b/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx
index 64bbc268c62..a6af36a0d96 100644
--- a/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx
+++ b/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx
@@ -4,8 +4,8 @@ description: Hang out with us while watching the Product Hunt Golden Kitty Award
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: product-hunt-golden-kitty-awards-2021.png
-thumb: product-hunt-golden-kitty-awards-2021-thumb.png
+imgSocial: product-hunt-golden-kitty-awards-2021.png
+imgThumb: product-hunt-golden-kitty-awards-2021-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-01-20-supabase-beta-december-2021.mdx b/apps/www/_blog/2022-01-20-supabase-beta-december-2021.mdx
index 7aa9042c189..27e1f94c084 100644
--- a/apps/www/_blog/2022-01-20-supabase-beta-december-2021.mdx
+++ b/apps/www/_blog/2022-01-20-supabase-beta-december-2021.mdx
@@ -4,8 +4,8 @@ description: New crypto extension, Postgres videos, and a bunch of cool integrat
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: 2021-dec/release-dec-2021.png
-thumb: 2021-dec/release-dec-2021-cover.png
+imgSocial: 2021-dec/release-dec-2021.png
+imgThumb: 2021-dec/release-dec-2021-cover.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx b/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx
index 7df0d214f8a..6efc2bf3ccf 100644
--- a/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx
+++ b/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx
@@ -4,8 +4,8 @@ description: New auth providers, SMS providers, and new videos.
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: 2022-january/thumb.jpg
-thumb: 2022-january/thumb.jpg
+imgSocial: 2022-january/thumb.jpg
+imgThumb: 2022-january/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-03-08-postgres-audit.mdx b/apps/www/_blog/2022-03-08-postgres-audit.mdx
index 82d9726540b..9cee58a0435 100644
--- a/apps/www/_blog/2022-03-08-postgres-audit.mdx
+++ b/apps/www/_blog/2022-03-08-postgres-audit.mdx
@@ -4,8 +4,8 @@ description: PostgreSQL has a robust set of features which we can leverage to cr
author: oli_rice
author_url: https://github.com/olirice
author_image_url: https://github.com/olirice.png
-image: supa-audit/postgres_auditing_in_150_lines_of_SQL.png
-thumb: supa-audit/postgres_auditing_in_150_lines_of_SQL.png
+imgSocial: supa-audit/postgres_auditing_in_150_lines_of_SQL.png
+imgThumb: supa-audit/postgres_auditing_in_150_lines_of_SQL.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-03-25-should-i-open-source-my-company.mdx b/apps/www/_blog/2022-03-25-should-i-open-source-my-company.mdx
index aad708d497b..60c4e035b49 100644
--- a/apps/www/_blog/2022-03-25-should-i-open-source-my-company.mdx
+++ b/apps/www/_blog/2022-03-25-should-i-open-source-my-company.mdx
@@ -4,8 +4,8 @@ description: The unexpected upsides of building in public
author: ant_wilson
author_url: https://github.com/awalias
author_image_url: https://github.com/awalias.png
-image: open-source/open-source-thumb.png
-thumb: open-source/open-source-thumb.png
+imgSocial: open-source/open-source-thumb.png
+imgThumb: open-source/open-source-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-03-25-supabase-launch-week-four.mdx b/apps/www/_blog/2022-03-25-supabase-launch-week-four.mdx
index 356bc9f8b5b..357a6463c9c 100644
--- a/apps/www/_blog/2022-03-25-supabase-launch-week-four.mdx
+++ b/apps/www/_blog/2022-03-25-supabase-launch-week-four.mdx
@@ -4,8 +4,8 @@ description: 'Launch Week 4: One new feature every day for an entire week. Start
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
-image: launch-week-4/friday-before/launchweek-4-promo-cal.png
-thumb: launch-week-4/friday-before/launchweek-4-promo.png
+imgSocial: launch-week-4/friday-before/launchweek-4-promo-cal.png
+imgThumb: launch-week-4/friday-before/launchweek-4-promo.png
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2022-03-28-community-day-lw4.mdx b/apps/www/_blog/2022-03-28-community-day-lw4.mdx
index 84d1e6deb7d..9dcce9c0a69 100644
--- a/apps/www/_blog/2022-03-28-community-day-lw4.mdx
+++ b/apps/www/_blog/2022-03-28-community-day-lw4.mdx
@@ -4,8 +4,8 @@ description: Kicking off Launch Week 4 with contributors, partners, and friends.
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: launch-week-4/community-day/community-day-thumb.png
-thumb: launch-week-4/community-day/community-day-thumb.png
+imgSocial: launch-week-4/community-day/community-day-thumb.png
+imgThumb: launch-week-4/community-day/community-day-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-03-29-graphql-now-available.mdx b/apps/www/_blog/2022-03-29-graphql-now-available.mdx
index a0b07fccb52..3d65119b580 100644
--- a/apps/www/_blog/2022-03-29-graphql-now-available.mdx
+++ b/apps/www/_blog/2022-03-29-graphql-now-available.mdx
@@ -2,8 +2,8 @@
title: 'GraphQL is now available in Supabase'
description: GraphQL support is now in general availability on the Supabase platform via our open source PostgreSQL extension, pg_graphql.
author: oli_rice,dthyresson
-image: launch-week-4/tuesday-graphql/graphql-thumb-og.png
-thumb: launch-week-4/tuesday-graphql/graphql-thumb.png
+imgSocial: launch-week-4/tuesday-graphql/graphql-thumb-og.png
+imgThumb: launch-week-4/tuesday-graphql/graphql-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-03-30-supabase-enterprise.mdx b/apps/www/_blog/2022-03-30-supabase-enterprise.mdx
index 66e56db4763..e654fb72ede 100644
--- a/apps/www/_blog/2022-03-30-supabase-enterprise.mdx
+++ b/apps/www/_blog/2022-03-30-supabase-enterprise.mdx
@@ -2,8 +2,8 @@
title: 'Introducing Supabase Enterprise'
description: 'Today we are releasing Supabase Enterprise, a suite of features to scale your project.'
author: rory_wilding,paul_copplestone
-image: launch-week-4/enterprise-day/enterprise-thumb.png
-thumb: launch-week-4/enterprise-day/enterprise-thumb.png
+imgSocial: launch-week-4/enterprise-day/enterprise-thumb.png
+imgThumb: launch-week-4/enterprise-day/enterprise-thumb.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx b/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx
index 616132ce632..52753d18e04 100644
--- a/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx
+++ b/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx
@@ -2,8 +2,8 @@
title: Edge Functions are now available in Supabase
description: Today we're launching Edge Functions. Edge Functions let you execute Typescript code close to your users, no matter where they're located.
author: inian
-image: launch-week-4/thursday-functions/functions-thumb.png
-thumb: launch-week-4/thursday-functions/functions-thumb.png
+imgSocial: launch-week-4/thursday-functions/functions-thumb.png
+imgThumb: launch-week-4/thursday-functions/functions-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx b/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx
index 7104fdf3b70..d20f1b00a5a 100644
--- a/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx
+++ b/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx
@@ -4,8 +4,8 @@ description: Build open-source projects with our latest features, win limited ed
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: launch-week-4/friday-hackathon/hackathon-fun-og.png
-thumb: launch-week-4/friday-hackathon/hackathon-fun-og.png
+imgSocial: launch-week-4/friday-hackathon/hackathon-fun-og.png
+imgThumb: launch-week-4/friday-hackathon/hackathon-fun-og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-04-01-supabase-realtime-with-multiplayer-features.mdx b/apps/www/_blog/2022-04-01-supabase-realtime-with-multiplayer-features.mdx
index 0923197d1ca..029b5037575 100644
--- a/apps/www/_blog/2022-04-01-supabase-realtime-with-multiplayer-features.mdx
+++ b/apps/www/_blog/2022-04-01-supabase-realtime-with-multiplayer-features.mdx
@@ -2,8 +2,8 @@
title: Supabase Realtime, with Multiplayer Features
description: Today we're announced Realtime, with multiplayer features. Realtime enables broadcast, presence, and listening to database changes delivered over WebSockets.
author: wenbo
-image: launch-week-4/friday-realtime/multiplayer-realtime-thumb.png
-thumb: launch-week-4/friday-realtime/multiplayer-realtime-thumb.png
+imgSocial: launch-week-4/friday-realtime/multiplayer-realtime-thumb.png
+imgThumb: launch-week-4/friday-realtime/multiplayer-realtime-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-04-01-supabrew.mdx b/apps/www/_blog/2022-04-01-supabrew.mdx
index 043292a471e..416f8e8508c 100644
--- a/apps/www/_blog/2022-04-01-supabrew.mdx
+++ b/apps/www/_blog/2022-04-01-supabrew.mdx
@@ -2,8 +2,8 @@
title: Supabrew - Never Code Thirsty
description: A light and refreshing non-alcoholic beer for devs.
author: ant_wilson
-image: launch-week-4/friday-supabrew/productShot1.jpg
-thumb: launch-week-4/friday-supabrew/productShot1.png
+imgSocial: launch-week-4/friday-supabrew/productShot1.jpg
+imgThumb: launch-week-4/friday-supabrew/productShot1.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2022-04-15-beta-update-march-2022.mdx b/apps/www/_blog/2022-04-15-beta-update-march-2022.mdx
index f68f3554dcc..9233270bd4c 100644
--- a/apps/www/_blog/2022-04-15-beta-update-march-2022.mdx
+++ b/apps/www/_blog/2022-04-15-beta-update-march-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta March 2022
description: Functions, GraphQL, and much more.
author: ant_wilson
-image: 2022-march/thumb.jpg
-thumb: 2022-march/thumb.jpg
+imgSocial: 2022-march/thumb.jpg
+imgThumb: 2022-march/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx b/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx
index 459fd01909b..94878e27d23 100644
--- a/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx
+++ b/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx
@@ -4,8 +4,8 @@ description: Celebrating many amazing OSS Hackathon projects using GraphQL and E
author: thor_schaeff
author_url: https://github.com/thorwebdev
author_image_url: https://github.com/thorwebdev.png
-image: hackathon-winners/bring-the-func/funcwinners.png
-thumb: hackathon-winners/bring-the-func/funcwinners.png
+imgSocial: hackathon-winners/bring-the-func/funcwinners.png
+imgThumb: hackathon-winners/bring-the-func/funcwinners.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-04-20-partner-gallery-works-with-supabase.mdx b/apps/www/_blog/2022-04-20-partner-gallery-works-with-supabase.mdx
index 4b4dcaf95a6..6b294161216 100644
--- a/apps/www/_blog/2022-04-20-partner-gallery-works-with-supabase.mdx
+++ b/apps/www/_blog/2022-04-20-partner-gallery-works-with-supabase.mdx
@@ -2,8 +2,8 @@
title: Works With Supabase - announcing our Partner Gallery
description: Introducing our Partner Gallery - open source and made with Supabase.
author: alaister,shanerice,thor_schaeff
-image: partner-gallery/partner-showcase-thumb.png
-thumb: partner-gallery/partner-showcase-thumb.png
+imgSocial: partner-gallery/partner-showcase-thumb.png
+imgThumb: partner-gallery/partner-showcase-thumb.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2022-05-26-how-supabase-accelerates-development-of-all-pull-together.mdx b/apps/www/_blog/2022-05-26-how-supabase-accelerates-development-of-all-pull-together.mdx
index 87633c9a9df..d2891d63f87 100644
--- a/apps/www/_blog/2022-05-26-how-supabase-accelerates-development-of-all-pull-together.mdx
+++ b/apps/www/_blog/2022-05-26-how-supabase-accelerates-development-of-all-pull-together.mdx
@@ -2,8 +2,8 @@
title: How Mike Lyndon is using Supabase to accelerate development of AllPullTogether
description: Mike Lyndon is learning web development as he builds AllPullTogether, and Supabase is helping him accelerate what he can accomplish.
author: shanerice
-image: all-pull-together/all-pull-together-thumb.png
-thumb: all-pull-together/all-pull-together-thumb.png
+imgSocial: all-pull-together/all-pull-together-thumb.png
+imgThumb: all-pull-together/all-pull-together-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx b/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx
index db804634c7d..f53c7d2d80b 100644
--- a/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx
+++ b/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta May 2022
description: Product and community updates including wildcard auth redirects, edge functions with webhooks, and Prometheus endpoints for everybody.
author: ant_wilson
-image: 2022-may/thumb.jpg
-thumb: 2022-may/thumb.jpg
+imgSocial: 2022-may/thumb.jpg
+imgThumb: 2022-may/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx b/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx
index 82e14501335..24cb0ea3ea4 100644
--- a/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx
+++ b/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx
@@ -2,8 +2,8 @@
title: Python data loading with Supabase
description: An example of how to load data into Supabase using supabase-py
author: ant_wilson
-image: python-1/python.jpg
-thumb: python-1/python.jpg
+imgSocial: python-1/python.jpg
+imgThumb: python-1/python.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx b/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx
index 0647e84df18..03c173ca954 100644
--- a/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx
+++ b/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx
@@ -2,8 +2,8 @@
title: Partial data dumps using Postgres Row Level Security
description: Using RLS to create seed files for local PostgreSQL testing.
author: paul_copplestone
-image: partial-dumps/og-partial-dumps-with-rls.png
-thumb: partial-dumps/og-partial-dumps-with-rls.png
+imgSocial: partial-dumps/og-partial-dumps-with-rls.png
+imgThumb: partial-dumps/og-partial-dumps-with-rls.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx b/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx
index 2eb98a735cc..7eeb59d73a3 100644
--- a/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx
+++ b/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx
@@ -2,8 +2,8 @@
title: Visualizing Supabase Data using Metabase
description: How to create different kinds of charts out of data stored in Supabase using Metabase.
author: ant_wilson
-image: python-1/supabase-python-metabase.jpg
-thumb: python-1/supabase-python-metabase.jpg
+imgSocial: python-1/supabase-python-metabase.jpg
+imgThumb: python-1/supabase-python-metabase.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx b/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx
index c951211165d..9ddfb9d672a 100644
--- a/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx
+++ b/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx
@@ -2,8 +2,8 @@
title: 'Flutter Tutorial: building a Flutter chat app'
description: Learn how to build a Flutter chat app with open source and scalable backend (inc. auth, realtime, database, and more).
author: tyler_shukert
-image: flutter-chat/flutter-chat-app.jpg
-thumb: flutter-chat/flutter-chat-app.jpg
+imgSocial: flutter-chat/flutter-chat-app.jpg
+imgThumb: flutter-chat/flutter-chat-app.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-07-05-beta-update-june-2022.mdx b/apps/www/_blog/2022-07-05-beta-update-june-2022.mdx
index 8b52dc1ef97..d0cd2446623 100644
--- a/apps/www/_blog/2022-07-05-beta-update-june-2022.mdx
+++ b/apps/www/_blog/2022-07-05-beta-update-june-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta June 2022
description: Auth Helpers, Unlimited Free Projects, CLI and more...
author: ant_wilson
-image: 2022-june/thumb.png
-thumb: 2022-june/thumb.png
+imgSocial: 2022-june/thumb.png
+imgThumb: 2022-june/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-07-13-supabase-auth-helpers-with-sveltekit-support.mdx b/apps/www/_blog/2022-07-13-supabase-auth-helpers-with-sveltekit-support.mdx
index 0f1fdee6ccc..e04b522b36e 100644
--- a/apps/www/_blog/2022-07-13-supabase-auth-helpers-with-sveltekit-support.mdx
+++ b/apps/www/_blog/2022-07-13-supabase-auth-helpers-with-sveltekit-support.mdx
@@ -2,8 +2,8 @@
title: Revamped Auth Helpers for Supabase (with SvelteKit support)
description: Supabase Auth Helpers now have improved developer experience, Sveltekit support, and more.
author: andrew_smith
-image: supabase-auth-helpers-sveltekit.png
-thumb: supabase-auth-helpers-sveltekit.png
+imgSocial: supabase-auth-helpers-sveltekit.png
+imgThumb: supabase-auth-helpers-sveltekit.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-07-18-seen-by-in-postgresql.mdx b/apps/www/_blog/2022-07-18-seen-by-in-postgresql.mdx
index 5a8c32b463a..91d37c8f489 100644
--- a/apps/www/_blog/2022-07-18-seen-by-in-postgresql.mdx
+++ b/apps/www/_blog/2022-07-18-seen-by-in-postgresql.mdx
@@ -2,8 +2,8 @@
title: Implementing "seen by" functionality with Postgres
description: Different approaches for tracking visitor counts with PostgreSQL.
author: victor
-image: seen-by/seen-by-postgresql-thumb.png
-thumb: seen-by/seen-by-postgresql-thumb.png
+imgSocial: seen-by/seen-by-postgresql-thumb.png
+imgThumb: seen-by/seen-by-postgresql-thumb.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx b/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx
index 0f926da2c3b..e20cd0d9abc 100644
--- a/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx
+++ b/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Flutter SDK 1.0 Developer Preview'
description: Supabase Flutter SDK is getting a major update and we need your help making it better.
author: tyler_shukert
-image: flutter-1/supabase-flutter-1.jpg
-thumb: flutter-1/supabase-flutter-1.jpg
+imgSocial: flutter-1/supabase-flutter-1.jpg
+imgThumb: flutter-1/supabase-flutter-1.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-08-03-supabase-beta-update-july-2022.mdx b/apps/www/_blog/2022-08-03-supabase-beta-update-july-2022.mdx
index 636a6d25858..3fabc65c2e9 100644
--- a/apps/www/_blog/2022-08-03-supabase-beta-update-july-2022.mdx
+++ b/apps/www/_blog/2022-08-03-supabase-beta-update-july-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta July 2022
description: Launch Week Golden Tickets, Flutter SDK 1.0 Developer Preview and more...
author: ant_wilson
-image: 2022-july/thumb.png
-thumb: 2022-july/thumb.png
+imgSocial: 2022-july/thumb.png
+imgThumb: 2022-july/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-08-09-slack-consolidate-slackbot-to-consolidate-messages.mdx b/apps/www/_blog/2022-08-09-slack-consolidate-slackbot-to-consolidate-messages.mdx
index fde2537ee28..44186213f2d 100644
--- a/apps/www/_blog/2022-08-09-slack-consolidate-slackbot-to-consolidate-messages.mdx
+++ b/apps/www/_blog/2022-08-09-slack-consolidate-slackbot-to-consolidate-messages.mdx
@@ -2,8 +2,8 @@
title: 'Slack Consolidate: a slackbot built with Python and Supabase'
description: A slackbot to consolidate messages from different channels using Supabase, Slack SDK and Python
author: rodrigo_mansueli
-image: slackbot-consolidate/slackbot-thumb.jpg
-thumb: slackbot-consolidate/slackbot-thumb.jpg
+imgSocial: slackbot-consolidate/slackbot-thumb.jpg
+imgThumb: slackbot-consolidate/slackbot-thumb.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx b/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx
index 8f62e05a4c7..77d3e788069 100644
--- a/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx
+++ b/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week 5 Hackathon'
description: Build to win $1500 - Friday 12th to Monday 21st August 2022
author: ant_wilson
-image: lw5-hackathon/thumbnail.jpg
-thumb: lw5-hackathon/thumbnail.jpg
+imgSocial: lw5-hackathon/thumbnail.jpg
+imgThumb: lw5-hackathon/thumbnail.jpg
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2022-08-12-supabase-series-b.mdx b/apps/www/_blog/2022-08-12-supabase-series-b.mdx
index 7bfbea836ab..f363c107c63 100644
--- a/apps/www/_blog/2022-08-12-supabase-series-b.mdx
+++ b/apps/www/_blog/2022-08-12-supabase-series-b.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Series B'
description: Supabase raised $80M in May, bringing our total funding to $116M.
author: paul_copplestone
-image: series-b/supabase-series-b.png
-thumb: series-b/supabase-series-b.png
+imgSocial: series-b/supabase-series-b.png
+imgThumb: series-b/supabase-series-b.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2022-08-15-supabase-cli-v1-and-admin-api-beta.mdx b/apps/www/_blog/2022-08-15-supabase-cli-v1-and-admin-api-beta.mdx
index 573392a4ae3..3a137054a4a 100644
--- a/apps/www/_blog/2022-08-15-supabase-cli-v1-and-admin-api-beta.mdx
+++ b/apps/www/_blog/2022-08-15-supabase-cli-v1-and-admin-api-beta.mdx
@@ -2,8 +2,8 @@
title: 'Supabase CLI v1 and Management API Beta'
description: We are moving Supabase CLI v1 out of beta, and releasing Management API beta.
author: soedirgo,qiao
-image: lw5-cli/thumbnail.jpg
-thumb: lw5-cli/thumbnail.jpg
+imgSocial: lw5-cli/thumbnail.jpg
+imgThumb: lw5-cli/thumbnail.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-08-16-supabase-js-v2.mdx b/apps/www/_blog/2022-08-16-supabase-js-v2.mdx
index 9da795ff6ea..5221f5eaa3a 100644
--- a/apps/www/_blog/2022-08-16-supabase-js-v2.mdx
+++ b/apps/www/_blog/2022-08-16-supabase-js-v2.mdx
@@ -2,8 +2,8 @@
title: 'supabase-js v2'
description: A look at supabase-js v2, which brings type support and focuses on quality-of-life improvements for developers.
author: inian,alaister
-image: lw5-supabase-js/thumb.jpg
-thumb: lw5-supabase-js/thumb.jpg
+imgSocial: lw5-supabase-js/thumb.jpg
+imgThumb: lw5-supabase-js/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-08-17-supabase-soc2.mdx b/apps/www/_blog/2022-08-17-supabase-soc2.mdx
index 8be8b88e046..60c4dd24640 100644
--- a/apps/www/_blog/2022-08-17-supabase-soc2.mdx
+++ b/apps/www/_blog/2022-08-17-supabase-soc2.mdx
@@ -2,8 +2,8 @@
title: 'Supabase is SOC2 compliant'
description: Supabase is now SOC2 compliant. Learn how we got here and what it means for our customers.
author: inian,joel
-image: lw5-soc2/thumb.jpg
-thumb: lw5-soc2/thumb.jpg
+imgSocial: lw5-soc2/thumb.jpg
+imgThumb: lw5-soc2/thumb.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2022-08-18-supabase-realtime-multiplayer-general-availability.mdx b/apps/www/_blog/2022-08-18-supabase-realtime-multiplayer-general-availability.mdx
index 0b7a2b5d574..fe4e29e4c41 100644
--- a/apps/www/_blog/2022-08-18-supabase-realtime-multiplayer-general-availability.mdx
+++ b/apps/www/_blog/2022-08-18-supabase-realtime-multiplayer-general-availability.mdx
@@ -2,8 +2,8 @@
title: 'Realtime: Multiplayer Edition'
description: Announcing the general availability of Realtime's Broadcast and Presence.
author: wenbo,stas
-image: lw5-realtime/thumb.jpg
-thumb: lw5-realtime/thumb.jpg
+imgSocial: lw5-realtime/thumb.jpg
+imgThumb: lw5-realtime/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx b/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx
index 25d26617bec..b8f7b380c16 100644
--- a/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx
+++ b/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx
@@ -2,8 +2,8 @@
title: 'Community Day'
description: Wrapping up Launch Week 5 with contributors, partners, and friends.
author: andrew_smith,jonmeyers_io,thor_schaeff,tyler_shukert
-image: lw5-community-day/community_day_og.jpg
-thumb: lw5-community-day/community_day_og.jpg
+imgSocial: lw5-community-day/community_day_og.jpg
+imgThumb: lw5-community-day/community_day_og.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-08-19-launch-week-5-one-more-thing.mdx b/apps/www/_blog/2022-08-19-launch-week-5-one-more-thing.mdx
index 5205ec64053..ac06016d089 100644
--- a/apps/www/_blog/2022-08-19-launch-week-5-one-more-thing.mdx
+++ b/apps/www/_blog/2022-08-19-launch-week-5-one-more-thing.mdx
@@ -2,8 +2,8 @@
title: 'One more thing'
description: "Let's be honest, it's never just one more thing."
author: paul_copplestone
-image: lw5-one-more/lw5-one-more-thumb.jpg
-thumb: lw5-one-more/lw5-one-more-thumb.jpg
+imgSocial: lw5-one-more/lw5-one-more-thumb.jpg
+imgThumb: lw5-one-more/lw5-one-more-thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-08-19-pg-jsonschema-a-postgres-extension-for-json-validation.mdx b/apps/www/_blog/2022-08-19-pg-jsonschema-a-postgres-extension-for-json-validation.mdx
index f096342e9a6..ce17e80d189 100644
--- a/apps/www/_blog/2022-08-19-pg-jsonschema-a-postgres-extension-for-json-validation.mdx
+++ b/apps/www/_blog/2022-08-19-pg-jsonschema-a-postgres-extension-for-json-validation.mdx
@@ -2,8 +2,8 @@
title: 'pg_jsonschema: JSON Schema support for Postgres'
description: "Today we're releasing pg_jsonschema, a Postgres extension for JSON validation."
author: oli_rice
-image: lw5-pg_jsonschema/jsonschema-thumb.jpg
-thumb: lw5-pg_jsonschema/jsonschema-thumb.jpg
+imgSocial: lw5-pg_jsonschema/jsonschema-thumb.jpg
+imgThumb: lw5-pg_jsonschema/jsonschema-thumb.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-08-19-postgrest-v10.mdx b/apps/www/_blog/2022-08-19-postgrest-v10.mdx
index 5c5af13b0f8..9d1781aa024 100644
--- a/apps/www/_blog/2022-08-19-postgrest-v10.mdx
+++ b/apps/www/_blog/2022-08-19-postgrest-v10.mdx
@@ -2,8 +2,8 @@
title: 'PostgREST v10: EXPLAIN and Improved Relationship Detection'
description: "Today, PostgREST 10 was released. Let's take a look at some of the new features that go hand in hand with supabase-js v2."
author: steve_chavez
-image: lw5/postgrest-v10.png
-thumb: lw5/postgrest-v10.png
+imgSocial: lw5/postgrest-v10.png
+imgThumb: lw5/postgrest-v10.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-08-19-supabase-vault.mdx b/apps/www/_blog/2022-08-19-supabase-vault.mdx
index fff7ae1126c..601b6c8c87b 100644
--- a/apps/www/_blog/2022-08-19-supabase-vault.mdx
+++ b/apps/www/_blog/2022-08-19-supabase-vault.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Vault'
description: "Today we're announcing Vault, a Postgres extension for managing secrets and encryption inside your database."
author: michel
-image: lw5-vault/supabase-vault.jpg
-thumb: lw5-vault/supabase-vault.jpg
+imgSocial: lw5-vault/supabase-vault.jpg
+imgThumb: lw5-vault/supabase-vault.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-08-24-building-a-realtime-trello-board-with-supabase-and-angular.mdx b/apps/www/_blog/2022-08-24-building-a-realtime-trello-board-with-supabase-and-angular.mdx
index 3c2c03d8018..e4f2944ee14 100644
--- a/apps/www/_blog/2022-08-24-building-a-realtime-trello-board-with-supabase-and-angular.mdx
+++ b/apps/www/_blog/2022-08-24-building-a-realtime-trello-board-with-supabase-and-angular.mdx
@@ -2,8 +2,8 @@
title: 'Building a Realtime Trello Board with Supabase and Angular'
description: Go beyond the hello world example with this real world project.
author: simon_grimm
-image: simon-grimm-angular-realtime/angular-supabase.jpg
-thumb: simon-grimm-angular-realtime/angular-supabase.jpg
+imgSocial: simon-grimm-angular-realtime/angular-supabase.jpg
+imgThumb: simon-grimm-angular-realtime/angular-supabase.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-08-25-launch-week-5-hackathon-winners.mdx b/apps/www/_blog/2022-08-25-launch-week-5-hackathon-winners.mdx
index 915d5a20e11..99fe7dc2276 100644
--- a/apps/www/_blog/2022-08-25-launch-week-5-hackathon-winners.mdx
+++ b/apps/www/_blog/2022-08-25-launch-week-5-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week 5 Hackathon Winners'
description: Announcing the winners of the Launch Week 5 Hackathon!
author: tyler_shukert
-image: lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg
-thumb: lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg
+imgSocial: lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg
+imgThumb: lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-09-07-supabase-beta-update-august-2022.mdx b/apps/www/_blog/2022-09-07-supabase-beta-update-august-2022.mdx
index e6c8508fe8c..fa1ab21ed4b 100644
--- a/apps/www/_blog/2022-09-07-supabase-beta-update-august-2022.mdx
+++ b/apps/www/_blog/2022-09-07-supabase-beta-update-august-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta August 2022
description: Launch Week Special. See everything we shipped, plus winners of the Hackathon and the extended Community Highlights
author: ant_wilson
-image: 2022-august/monthly-update-august-2022.jpg
-thumb: 2022-august/monthly-update-august-2022.jpg
+imgSocial: 2022-august/monthly-update-august-2022.jpg
+imgThumb: 2022-august/monthly-update-august-2022.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-09-08-choosing-a-postgres-primary-key.mdx b/apps/www/_blog/2022-09-08-choosing-a-postgres-primary-key.mdx
index b01571d4f17..533c2a85990 100644
--- a/apps/www/_blog/2022-09-08-choosing-a-postgres-primary-key.mdx
+++ b/apps/www/_blog/2022-09-08-choosing-a-postgres-primary-key.mdx
@@ -2,8 +2,8 @@
title: Choosing a Postgres Primary Key
description: Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out
author: victor
-image: primary-keys/postgres-primary-key.jpg
-thumb: primary-keys/postgres-primary-key.jpg
+imgSocial: primary-keys/postgres-primary-key.jpg
+imgThumb: primary-keys/postgres-primary-key.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-10-03-postgres-wasm.mdx b/apps/www/_blog/2022-10-03-postgres-wasm.mdx
index 61a91e659d1..6599411f710 100644
--- a/apps/www/_blog/2022-10-03-postgres-wasm.mdx
+++ b/apps/www/_blog/2022-10-03-postgres-wasm.mdx
@@ -2,8 +2,8 @@
title: Postgres WASM by Snaplet and Supabase
description: We're open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet.
author: burggraf
-image: postgres-wasm/postgres-wasm.jpg
-thumb: postgres-wasm/postgres-wasm.jpg
+imgSocial: postgres-wasm/postgres-wasm.jpg
+imgThumb: postgres-wasm/postgres-wasm.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-10-05-supabase-beta-update-september-2022.mdx b/apps/www/_blog/2022-10-05-supabase-beta-update-september-2022.mdx
index c2b5fd865a4..4f713a7026b 100644
--- a/apps/www/_blog/2022-10-05-supabase-beta-update-september-2022.mdx
+++ b/apps/www/_blog/2022-10-05-supabase-beta-update-september-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta September 2022
description: We were too focused on clearing out the backlog so we didn't ship anything new last month... or did we?!
author: ant_wilson
-image: 2022-september/monthly-update-september-2022.jpg
-thumb: 2022-september/monthly-update-september-2022.jpg
+imgSocial: 2022-september/monthly-update-september-2022.jpg
+imgThumb: 2022-september/monthly-update-september-2022.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-10-14-postgres-full-text-search-vs-the-rest.mdx b/apps/www/_blog/2022-10-14-postgres-full-text-search-vs-the-rest.mdx
index 7e518b9e656..359061de406 100644
--- a/apps/www/_blog/2022-10-14-postgres-full-text-search-vs-the-rest.mdx
+++ b/apps/www/_blog/2022-10-14-postgres-full-text-search-vs-the-rest.mdx
@@ -2,8 +2,8 @@
title: 'Postgres Full Text Search vs the rest'
description: 'Comparing one of the most popular Postgres features against alternatives'
author: victor
-image: postgres-fts-vs-the-rest/postgres-full-text-search.jpg
-thumb: postgres-fts-vs-the-rest/postgres-full-text-search.jpg
+imgSocial: postgres-fts-vs-the-rest/postgres-full-text-search.jpg
+imgThumb: postgres-fts-vs-the-rest/postgres-full-text-search.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-10-20-supabase-js-v2-released.mdx b/apps/www/_blog/2022-10-20-supabase-js-v2-released.mdx
index d496af2d8fa..3e1a545598e 100644
--- a/apps/www/_blog/2022-10-20-supabase-js-v2-released.mdx
+++ b/apps/www/_blog/2022-10-20-supabase-js-v2-released.mdx
@@ -2,8 +2,8 @@
title: 'supabase-js v2 Released'
description: We've released supabase-js v2. Updated examples, quickstarts, and an improved experience.
author: thor_schaeff
-image: supabase-js-v2-release/supabase-js.jpg
-thumb: supabase-js-v2-release/supabase-js.jpg
+imgSocial: supabase-js-v2-release/supabase-js.jpg
+imgThumb: supabase-js-v2-release/supabase-js.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx b/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx
index c2fea3ccd5e..6805e7bbf9e 100644
--- a/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx
+++ b/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx
@@ -2,8 +2,8 @@
title: 'supabase-flutter v1 Released'
description: We've released supabase-flutter v1. More intuitive way of accessing Supabase from your Flutter application.
author: tyler_shukert
-image: flutter-v1-release/flutter_v1_official_release.jpeg
-thumb: flutter-v1-release/flutter_v1_official_release.jpeg
+imgSocial: flutter-v1-release/flutter_v1_official_release.jpeg
+imgThumb: flutter-v1-release/flutter_v1_official_release.jpeg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-10-27-postgresql-commitfest.mdx b/apps/www/_blog/2022-10-27-postgresql-commitfest.mdx
index 64d38d41e80..ce2f52b7196 100644
--- a/apps/www/_blog/2022-10-27-postgresql-commitfest.mdx
+++ b/apps/www/_blog/2022-10-27-postgresql-commitfest.mdx
@@ -2,8 +2,8 @@
title: 'What is PostgreSQL commitfest and how to contribute'
description: 'A time-tested method for contributing to the core Postgres code'
author: pavel
-image: what-is-postgres-commitfest/what-is-postgres-commitfest.jpg
-thumb: what-is-postgres-commitfest/what-is-postgres-commitfest.jpg
+imgSocial: what-is-postgres-commitfest/what-is-postgres-commitfest.jpg
+imgThumb: what-is-postgres-commitfest/what-is-postgres-commitfest.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-11-02-supabase-beta-update-october-2022.mdx b/apps/www/_blog/2022-11-02-supabase-beta-update-october-2022.mdx
index e8716550fe1..9a5948260cf 100644
--- a/apps/www/_blog/2022-11-02-supabase-beta-update-october-2022.mdx
+++ b/apps/www/_blog/2022-11-02-supabase-beta-update-october-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta October 2022
description: New SDKs, quickstarts, Functions tricks, and more. But, more importantly, Launch Week 6️ has a date!
author: ant_wilson
-image: 2022-october/monthly-update-october-2022.jpg
-thumb: 2022-october/monthly-update-october-2022.jpg
+imgSocial: 2022-october/monthly-update-october-2022.jpg
+imgThumb: 2022-october/monthly-update-october-2022.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-11-08-authentication-in-ionic-angular.mdx b/apps/www/_blog/2022-11-08-authentication-in-ionic-angular.mdx
index 7eae723a2d6..c6fa7976886 100644
--- a/apps/www/_blog/2022-11-08-authentication-in-ionic-angular.mdx
+++ b/apps/www/_blog/2022-11-08-authentication-in-ionic-angular.mdx
@@ -2,8 +2,8 @@
title: 'Authentication in Ionic Angular with Supabase'
description: Learn how to build an Ionic Angular app with authentication, Row Level Security, and Magic Link auth.
author: simon_grimm
-image: simmon-grim-ionic-angular-authentication/ionic-angular-supabase.jpg
-thumb: simmon-grim-ionic-angular-authentication/ionic-angular-supabase.jpg
+imgSocial: simmon-grim-ionic-angular-authentication/ionic-angular-supabase.jpg
+imgThumb: simmon-grim-ionic-angular-authentication/ionic-angular-supabase.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-11-17-fetching-and-caching-supabase-data-in-next-js-server-components.mdx b/apps/www/_blog/2022-11-17-fetching-and-caching-supabase-data-in-next-js-server-components.mdx
index 9bdcd9d41a8..09f8c134d04 100644
--- a/apps/www/_blog/2022-11-17-fetching-and-caching-supabase-data-in-next-js-server-components.mdx
+++ b/apps/www/_blog/2022-11-17-fetching-and-caching-supabase-data-in-next-js-server-components.mdx
@@ -2,8 +2,8 @@
title: 'Fetching and caching Supabase data in Next.js 13 Server Components'
description: 'Next.js 13 introduces new data fetching and caching methods to enable React Server Components and Suspense.'
author: jonmeyers_io
-image: 2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg
-thumb: 2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg
+imgSocial: 2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg
+imgThumb: 2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2022-11-22-flutter-authorization-with-rls.mdx b/apps/www/_blog/2022-11-22-flutter-authorization-with-rls.mdx
index a0ac18ff5a2..6fac75e758e 100644
--- a/apps/www/_blog/2022-11-22-flutter-authorization-with-rls.mdx
+++ b/apps/www/_blog/2022-11-22-flutter-authorization-with-rls.mdx
@@ -2,8 +2,8 @@
title: 'Flutter Authorization with RLS'
description: Learn how you can secure your Flutter app using Supabase Row Level Security.
author: tyler_shukert
-image: flutter-chat-auth/supabase-flutter-auth.jpg
-thumb: flutter-chat-auth/supabase-flutter-auth.jpg
+imgSocial: flutter-chat-auth/supabase-flutter-auth.jpg
+imgThumb: flutter-chat-auth/supabase-flutter-auth.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-11-24-sql-or-nosql-both-with-postgresql.mdx b/apps/www/_blog/2022-11-24-sql-or-nosql-both-with-postgresql.mdx
index e6f4f7b98f9..1c72e7e5708 100644
--- a/apps/www/_blog/2022-11-24-sql-or-nosql-both-with-postgresql.mdx
+++ b/apps/www/_blog/2022-11-24-sql-or-nosql-both-with-postgresql.mdx
@@ -2,8 +2,8 @@
title: SQL or NoSQL? Why not use both (with PostgreSQL)?
description: How to turn Postgres into an easy-to-use NoSQL database that retains all the power of SQL
author: burggraf
-image: 2022-11-24-sql-nosql-postgresql/sql-nosql-postgresql.jpg
-thumb: 2022-11-24-sql-nosql-postgresql/sql-nosql-postgresql.jpg
+imgSocial: 2022-11-24-sql-nosql-postgresql/sql-nosql-postgresql.jpg
+imgThumb: 2022-11-24-sql-nosql-postgresql/sql-nosql-postgresql.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-12-06-the-supabase-content-storm.mdx b/apps/www/_blog/2022-12-06-the-supabase-content-storm.mdx
index c45a2e21d7b..5db5cc20a8f 100644
--- a/apps/www/_blog/2022-12-06-the-supabase-content-storm.mdx
+++ b/apps/www/_blog/2022-12-06-the-supabase-content-storm.mdx
@@ -2,8 +2,8 @@
title: The Supabase Content Storm
description: We worked with +30 content creators to drop a mountain of content simultaneously.
author: ramiro
-image: 2022-12-06-content-storm/content-storm.jpg
-thumb: 2022-12-06-content-storm/content-storm.jpg
+imgSocial: 2022-12-06-content-storm/content-storm.jpg
+imgThumb: 2022-12-06-content-storm/content-storm.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2022-12-07-supabase-beta-november-2022.mdx b/apps/www/_blog/2022-12-07-supabase-beta-november-2022.mdx
index 223b1e2b689..db967d56072 100644
--- a/apps/www/_blog/2022-12-07-supabase-beta-november-2022.mdx
+++ b/apps/www/_blog/2022-12-07-supabase-beta-november-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta November 2022
description: We are preparing everything for Launch Week 6, but we still had time to ship some goodies this month!
author: ant_wilson
-image: 2022-12-07-november-beta-update/monthly-update-november-2022.jpg
-thumb: 2022-12-07-november-beta-update/monthly-update-november-2022.jpg
+imgSocial: 2022-12-07-november-beta-update/monthly-update-november-2022.jpg
+imgThumb: 2022-12-07-november-beta-update/monthly-update-november-2022.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-09-launch-week-6-hackathon.mdx b/apps/www/_blog/2022-12-09-launch-week-6-hackathon.mdx
index add24516795..f3e57c479e7 100644
--- a/apps/www/_blog/2022-12-09-launch-week-6-hackathon.mdx
+++ b/apps/www/_blog/2022-12-09-launch-week-6-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week 6 Hackathon'
description: Build an Open Source Project, Win $1500 and the Supabase Darkmode Keyboard
author: ant_wilson
-image: lw6-hackathon/thumbnail.jpg
-thumb: lw6-hackathon/thumbnail.jpg
+imgSocial: lw6-hackathon/thumbnail.jpg
+imgThumb: lw6-hackathon/thumbnail.jpg
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2022-12-09-who-we-hire.mdx b/apps/www/_blog/2022-12-09-who-we-hire.mdx
index 413a78eea8e..f29ff1be720 100644
--- a/apps/www/_blog/2022-12-09-who-we-hire.mdx
+++ b/apps/www/_blog/2022-12-09-who-we-hire.mdx
@@ -3,8 +3,8 @@ title: 'Who We Hire at Supabase'
description: Traits we look for to maintain a culture of shipping fast and often
video: https://www.youtube.com/v/-BG9XptyCKI
author: ant_wilson
-image: who-we-hire.jpg
-thumb: who-we-hire-cover.jpg
+imgSocial: who-we-hire.jpg
+imgThumb: who-we-hire-cover.jpg
categories:
- company
tags:
diff --git a/apps/www/_blog/2022-12-10-postgres-crdt.mdx b/apps/www/_blog/2022-12-10-postgres-crdt.mdx
index 08ec0061b81..79cd6d117bc 100644
--- a/apps/www/_blog/2022-12-10-postgres-crdt.mdx
+++ b/apps/www/_blog/2022-12-10-postgres-crdt.mdx
@@ -2,8 +2,8 @@
title: 'pg_crdt - an experimental CRDT extension for Postgres'
description: 'Embedding Yjs and Automerge into Postgres for collaborative applications.'
author: paul_copplestone
-image: launch-week-6/crdt/og-pg-crdt.png
-thumb: launch-week-6/crdt/og-pg-crdt.png
+imgSocial: launch-week-6/crdt/og-pg-crdt.png
+imgThumb: launch-week-6/crdt/og-pg-crdt.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-12-12-new-supabase-docs-built-with-nextjs.mdx b/apps/www/_blog/2022-12-12-new-supabase-docs-built-with-nextjs.mdx
index d2a1ec5360a..febe8c05263 100644
--- a/apps/www/_blog/2022-12-12-new-supabase-docs-built-with-nextjs.mdx
+++ b/apps/www/_blog/2022-12-12-new-supabase-docs-built-with-nextjs.mdx
@@ -2,8 +2,8 @@
title: 'New Supabase Docs, built with Next.js'
description: We've redesigned our Docs and migrated to Next.js
author: jonny
-image: lw6-day-1/lw6-day1-docs.jpg
-thumb: lw6-day-1/lw6-day1-docs.jpg
+imgSocial: lw6-day-1/lw6-day1-docs.jpg
+imgThumb: lw6-day-1/lw6-day1-docs.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-13-storage-image-resizing-smart-cdn.mdx b/apps/www/_blog/2022-12-13-storage-image-resizing-smart-cdn.mdx
index e0c4aed5d6f..4b83ef7fcfd 100644
--- a/apps/www/_blog/2022-12-13-storage-image-resizing-smart-cdn.mdx
+++ b/apps/www/_blog/2022-12-13-storage-image-resizing-smart-cdn.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Storage v2: Image resizing and Smart CDN'
description: "We're introducing new features for Supabase Storage: Image resizing and a Smart CDN."
author: fabrizio,inian
-image: lw6-storage/Image-resizing.jpg
-thumb: lw6-storage/Image-resizing.jpg
+imgSocial: lw6-storage/Image-resizing.jpg
+imgThumb: lw6-storage/Image-resizing.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-14-mfa-auth-via-rls.mdx b/apps/www/_blog/2022-12-14-mfa-auth-via-rls.mdx
index baa4e2e1388..a824d34b7a2 100644
--- a/apps/www/_blog/2022-12-14-mfa-auth-via-rls.mdx
+++ b/apps/www/_blog/2022-12-14-mfa-auth-via-rls.mdx
@@ -2,8 +2,8 @@
title: 'Multi-factor Authentication via Row Level Security Enforcement'
description: MFA Auth with enforcement via RLS
author: joel,kangmingtay,stojan
-image: lw6-auth/mfa-banner.jpg
-thumb: lw6-auth/mfa-banner.jpg
+imgSocial: lw6-auth/mfa-banner.jpg
+imgThumb: lw6-auth/mfa-banner.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-15-postgres-foreign-data-wrappers-rust.mdx b/apps/www/_blog/2022-12-15-postgres-foreign-data-wrappers-rust.mdx
index e5de0996bc8..7ffcaef0dc1 100644
--- a/apps/www/_blog/2022-12-15-postgres-foreign-data-wrappers-rust.mdx
+++ b/apps/www/_blog/2022-12-15-postgres-foreign-data-wrappers-rust.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Wrappers, a Postgres FDW framework written in Rust'
description: 'A framework for building Postgres Foreign Data Wrappers which connects to Stripe, Firebase, Clickhouse, and more.'
author: paul_copplestone,bo_lu,oli_rice
-image: launch-week-6/wrappers/wrappers-og.png
-thumb: launch-week-6/wrappers/wrappers-og.png
+imgSocial: launch-week-6/wrappers/wrappers-og.png
+imgThumb: launch-week-6/wrappers/wrappers-og.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-16-custom-domain-names.mdx b/apps/www/_blog/2022-12-16-custom-domain-names.mdx
index af70e3907a1..43895b5f6fd 100644
--- a/apps/www/_blog/2022-12-16-custom-domain-names.mdx
+++ b/apps/www/_blog/2022-12-16-custom-domain-names.mdx
@@ -2,8 +2,8 @@
title: Custom Domain Names
description: Change your Supabase project's domain name to your own domain.
author: div_arora
-image: launch-week-6/custom-domains/og-custom-domains.png
-thumb: launch-week-6/custom-domains/og-custom-domains.png
+imgSocial: launch-week-6/custom-domains/og-custom-domains.png
+imgThumb: launch-week-6/custom-domains/og-custom-domains.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-16-launch-week-6-community-day.mdx b/apps/www/_blog/2022-12-16-launch-week-6-community-day.mdx
index 5dc1b31c040..20636d43b6a 100644
--- a/apps/www/_blog/2022-12-16-launch-week-6-community-day.mdx
+++ b/apps/www/_blog/2022-12-16-launch-week-6-community-day.mdx
@@ -2,8 +2,8 @@
title: 'Community Day'
description: Wrapping up Launch Week 6 with contributors, partners, and friends.
author: andrew_smith,jonmeyers_io,thor_schaeff,tyler_shukert
-image: lw6-community/community-day.png
-thumb: lw6-community/community-day.png
+imgSocial: lw6-community/community-day.png
+imgThumb: lw6-community/community-day.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2022-12-16-launch-week-6-wrap-up.mdx b/apps/www/_blog/2022-12-16-launch-week-6-wrap-up.mdx
index 5711485deaf..128d6ffd4a2 100644
--- a/apps/www/_blog/2022-12-16-launch-week-6-wrap-up.mdx
+++ b/apps/www/_blog/2022-12-16-launch-week-6-wrap-up.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week 6: Wrap Up'
description: "That's a wrap on Supabase Launch Week Day 6. Here's everything we shipped in one long blog post."
author: paul_copplestone
-image: launch-week-6/wrap-up/og-wrap-up.png
-thumb: launch-week-6/wrap-up/og-wrap-up.png
+imgSocial: launch-week-6/wrap-up/og-wrap-up.png
+imgThumb: launch-week-6/wrap-up/og-wrap-up.png
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2022-12-16-new-in-postgres-15.mdx b/apps/www/_blog/2022-12-16-new-in-postgres-15.mdx
index be30d2d1b16..d8dc7ab699d 100644
--- a/apps/www/_blog/2022-12-16-new-in-postgres-15.mdx
+++ b/apps/www/_blog/2022-12-16-new-in-postgres-15.mdx
@@ -2,8 +2,8 @@
title: What's new in Postgres 15?
description: Describes the release of Postgres 15, new features and reasons to use it
author: pavel
-image: lw6-community/pg15.png
-thumb: lw6-community/pg15.png
+imgSocial: lw6-community/pg15.png
+imgThumb: lw6-community/pg15.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-12-16-pg-graphql-v1.mdx b/apps/www/_blog/2022-12-16-pg-graphql-v1.mdx
index 48f1e54f85e..678efd09d0f 100644
--- a/apps/www/_blog/2022-12-16-pg-graphql-v1.mdx
+++ b/apps/www/_blog/2022-12-16-pg-graphql-v1.mdx
@@ -2,8 +2,8 @@
title: pg_graphql v1.0
description: Announcing the v1.0 release of pg_graphql
author: oli_rice
-image: launch-week-6/pggraphql/og-pg-graphql.png
-thumb: launch-week-6/pggraphql/og-pg-graphql.png
+imgSocial: launch-week-6/pggraphql/og-pg-graphql.png
+imgThumb: launch-week-6/pggraphql/og-pg-graphql.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-16-postgres-point-in-time-recovery.mdx b/apps/www/_blog/2022-12-16-postgres-point-in-time-recovery.mdx
index 09a79acbb9e..4071628f806 100644
--- a/apps/www/_blog/2022-12-16-postgres-point-in-time-recovery.mdx
+++ b/apps/www/_blog/2022-12-16-postgres-point-in-time-recovery.mdx
@@ -2,8 +2,8 @@
title: 'Point in Time Recovery is now available for Pro projects'
description: "We're making PITR available for more projects, with a new Dashboard UI that makes it simple to use."
author: angelico_de_los_reyes
-image: launch-week-6/pitr/og-pitr.png
-thumb: launch-week-6/pitr/og-pitr.png
+imgSocial: launch-week-6/pitr/og-pitr.png
+imgThumb: launch-week-6/pitr/og-pitr.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2022-12-16-postgrest-11-prerelease.mdx b/apps/www/_blog/2022-12-16-postgrest-11-prerelease.mdx
index 8c1d6b29824..85acc78add1 100644
--- a/apps/www/_blog/2022-12-16-postgrest-11-prerelease.mdx
+++ b/apps/www/_blog/2022-12-16-postgrest-11-prerelease.mdx
@@ -2,8 +2,8 @@
title: PostgREST 11 pre-release
description: Describes new features of PostgREST 11 pre-release
author: steve_chavez
-image: lw6-community/postgrest.png
-thumb: lw6-community/postgrest.png
+imgSocial: lw6-community/postgrest.png
+imgThumb: lw6-community/postgrest.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2022-12-16-vault-now-in-beta.mdx b/apps/www/_blog/2022-12-16-vault-now-in-beta.mdx
index 9acf95c0807..ff06d533c94 100644
--- a/apps/www/_blog/2022-12-16-vault-now-in-beta.mdx
+++ b/apps/www/_blog/2022-12-16-vault-now-in-beta.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Vault is now in Beta'
description: 'A Postgres extension to store encrypted secrets and encrypt data.'
author: michel
-image: launch-week-6/vault/og-vault.png
-thumb: launch-week-6/vault/og-vault.png
+imgSocial: launch-week-6/vault/og-vault.png
+imgThumb: launch-week-6/vault/og-vault.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-01-03-launch-week-6-hackathon-winners.mdx b/apps/www/_blog/2023-01-03-launch-week-6-hackathon-winners.mdx
index 72b43742455..d422c36434f 100644
--- a/apps/www/_blog/2023-01-03-launch-week-6-hackathon-winners.mdx
+++ b/apps/www/_blog/2023-01-03-launch-week-6-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week 6 Hackathon Winners'
description: Announcing the winners of the Launch Week 6 Hackathon!
author: andrew_smith,tyler_shukert
-image: lw6-hackathon-winners/hackathon-winners.png
-thumb: lw6-hackathon-winners/hackathon-winners.png
+imgSocial: lw6-hackathon-winners/hackathon-winners.png
+imgThumb: lw6-hackathon-winners/hackathon-winners.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-01-05-supabase-beta-december-2022.mdx b/apps/www/_blog/2023-01-05-supabase-beta-december-2022.mdx
index 999a56c2060..09fcc7d02d5 100644
--- a/apps/www/_blog/2023-01-05-supabase-beta-december-2022.mdx
+++ b/apps/www/_blog/2023-01-05-supabase-beta-december-2022.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta December 2022
description: This month the Beta Update is a Launch Week 6 Special, where we review the cascade of announcements.
author: ant_wilson
-image: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
-thumb: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
+imgSocial: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
+imgThumb: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx b/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx
index fb4f913b48d..e91a0ebe899 100644
--- a/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx
+++ b/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx
@@ -2,8 +2,8 @@
title: Storing OpenAI embeddings in Postgres with pgvector
description: An example of how to build an AI-powered search engine using OpenAI's embeddings and PostgreSQL.
author: gregnr
-image: embeddings/og_pgvector.png
-thumb: embeddings/og_pgvector.png
+imgSocial: embeddings/og_pgvector.png
+imgThumb: embeddings/og_pgvector.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx b/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx
index fe8f61cf7df..6a281decf96 100644
--- a/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx
+++ b/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Clippy: ChatGPT for Supabase Docs'
description: Creating a ChatGPT interface for the Supabase documentation.
author: paul_copplestone
-image: docsgpt/og_supabase_clippy.png
-thumb: docsgpt/og_supabase_clippy.png
+imgSocial: docsgpt/og_supabase_clippy.png
+imgThumb: docsgpt/og_supabase_clippy.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx b/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
index 21638da1712..67eb2b7e2d9 100644
--- a/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
+++ b/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta January 2023
description: New Postgres extensions, pg_graphql updates, changes to Edge Functions, and more!
author: ant_wilson
-image: 2023-02-08-january-beta-update/supabase-beta-update-january-2023.jpg
-thumb: 2023-02-08-january-beta-update/supabase-beta-update-january-2023.jpg
+imgSocial: 2023-02-08-january-beta-update/supabase-beta-update-january-2023.jpg
+imgThumb: 2023-02-08-january-beta-update/supabase-beta-update-january-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx b/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx
index 98b26ce6d0e..39ed6a7ffdd 100644
--- a/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx
+++ b/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx
@@ -2,8 +2,8 @@
title: How to build a real-time multiplayer game with Flutter Flame
description: Build a real-time multiplayer game using Flutter, Flame, and Supabase realtime.
author: tyler_shukert
-image: flutter-realtime-game/flutter-flame-realtime-multiplayer-game.jpg
-thumb: flutter-realtime-game/flutter-flame-realtime-multiplayer-game.jpg
+imgSocial: flutter-realtime-game/flutter-flame-realtime-multiplayer-game.jpg
+imgThumb: flutter-realtime-game/flutter-flame-realtime-multiplayer-game.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-02-16-case-study-happyteams.mdx b/apps/www/_blog/2023-02-16-case-study-happyteams.mdx
index 4685fa5116d..39965a28309 100644
--- a/apps/www/_blog/2023-02-16-case-study-happyteams.mdx
+++ b/apps/www/_blog/2023-02-16-case-study-happyteams.mdx
@@ -2,8 +2,8 @@
title: HappyTeams unlocks better performance and reduces cost with Supabase
description: How a bootstrapped startup migrated from Heroku to Supabase in 30 minutes and never looked back
author: rory_wilding
-image: 2023-02-16-case-study-happyteams/case-study-happyteams.jpg
-thumb: 2023-02-16-case-study-happyteams/case-study-happyteams.jpg
+imgSocial: 2023-02-16-case-study-happyteams/case-study-happyteams.jpg
+imgThumb: 2023-02-16-case-study-happyteams/case-study-happyteams.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-02-17-type-constraints-in-65-lines-of-sql.mdx b/apps/www/_blog/2023-02-17-type-constraints-in-65-lines-of-sql.mdx
index a6d427b3286..dddc80b8502 100644
--- a/apps/www/_blog/2023-02-17-type-constraints-in-65-lines-of-sql.mdx
+++ b/apps/www/_blog/2023-02-17-type-constraints-in-65-lines-of-sql.mdx
@@ -2,8 +2,8 @@
title: Type Constraints in 65 lines of SQL
description: Creating validated data types in Postgres
author: oli_rice
-image: 2023-jan/semver-thumb.jpg
-thumb: 2023-jan/semver-thumb.jpg
+imgSocial: 2023-jan/semver-thumb.jpg
+imgThumb: 2023-jan/semver-thumb.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2023-03-01-geo-queries-with-postgis-in-ionic-angular.mdx b/apps/www/_blog/2023-03-01-geo-queries-with-postgis-in-ionic-angular.mdx
index 1dc074c032f..75065f47217 100644
--- a/apps/www/_blog/2023-03-01-geo-queries-with-postgis-in-ionic-angular.mdx
+++ b/apps/www/_blog/2023-03-01-geo-queries-with-postgis-in-ionic-angular.mdx
@@ -2,8 +2,8 @@
title: Geo Queries with PostGIS in Ionic Angular
description: Using the PostGIS extension to build a cross-platform application with Ionic Angular.
author: simon_grimm
-image: 2023-02-28-geoqueries-postgis/postgis-ionic-angular.jpg
-thumb: 2023-02-28-geoqueries-postgis/postgis-ionic-angular.jpg
+imgSocial: 2023-02-28-geoqueries-postgis/postgis-ionic-angular.jpg
+imgThumb: 2023-02-28-geoqueries-postgis/postgis-ionic-angular.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-03-09-supabase-beta-update-february-2023.mdx b/apps/www/_blog/2023-03-09-supabase-beta-update-february-2023.mdx
index d56fa0d3af9..3f68842fd20 100644
--- a/apps/www/_blog/2023-03-09-supabase-beta-update-february-2023.mdx
+++ b/apps/www/_blog/2023-03-09-supabase-beta-update-february-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta February 2023
description: There is something for everybody this month - AI, Auth, Database, Edge Functions, GraphQL … you name it!
author: ant_wilson
-image: 2023-03-09-beta-update-february/supabase-beta-update-february-2023.jpg
-thumb: 2023-03-09-beta-update-february/supabase-beta-update-february-2023.jpg
+imgSocial: 2023-03-09-beta-update-february/supabase-beta-update-february-2023.jpg
+imgThumb: 2023-03-09-beta-update-february/supabase-beta-update-february-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-04-01-supaclub.mdx b/apps/www/_blog/2023-04-01-supaclub.mdx
index 6a49e0b3bee..8a627534e2a 100644
--- a/apps/www/_blog/2023-04-01-supaclub.mdx
+++ b/apps/www/_blog/2023-04-01-supaclub.mdx
@@ -2,8 +2,8 @@
title: SupaClub
description: The Worlds First Software Engineering Nightclub.
author: ant_wilson
-image: supaclub/supaclub-thumb.png
-thumb: supaclub/supaclub-thumb.png
+imgSocial: supaclub/supaclub-thumb.png
+imgThumb: supaclub/supaclub-thumb.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx b/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx
index 67f4d341036..acc69acccbb 100644
--- a/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx
+++ b/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx
@@ -2,8 +2,8 @@
title: Infinite scroll with Next.js, Framer Motion, and Supabase
description: Lazy load and paginate data on scroll with Next.js and a sprinkle of Framer Motion magic ✨
author: fsansalvadore
-image: infinite-scroll-thumb.jpg
-thumb: infinite-scroll-thumb.jpg
+imgSocial: infinite-scroll-thumb.jpg
+imgThumb: infinite-scroll-thumb.jpg
launchweek: '7'
categories:
- engineering
diff --git a/apps/www/_blog/2023-04-07-designing-with-ai-midjourney.mdx b/apps/www/_blog/2023-04-07-designing-with-ai-midjourney.mdx
index 1707cec508e..a292b8f4407 100644
--- a/apps/www/_blog/2023-04-07-designing-with-ai-midjourney.mdx
+++ b/apps/www/_blog/2023-04-07-designing-with-ai-midjourney.mdx
@@ -2,8 +2,8 @@
title: 'Designing with AI: Generating unique artwork for every user'
description: Using MidJourney to generative artwork and serving ticket images with Edge Functions
author: marijana,thor_schaeff
-image: launch-week-7/designing-with-ai-midjourney/header.png
-thumb: launch-week-7/designing-with-ai-midjourney/header.png
+imgSocial: launch-week-7/designing-with-ai-midjourney/header.png
+imgThumb: launch-week-7/designing-with-ai-midjourney/header.png
launchweek: '7'
categories:
- launch-week
diff --git a/apps/www/_blog/2023-04-07-launch-week-7-hackathon.mdx b/apps/www/_blog/2023-04-07-launch-week-7-hackathon.mdx
index d33c6f2f7af..f6b71744b6f 100644
--- a/apps/www/_blog/2023-04-07-launch-week-7-hackathon.mdx
+++ b/apps/www/_blog/2023-04-07-launch-week-7-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'The Supabase AI Hackathon'
description: Build an Open Source Project over 10 days. 5 prize categories.
author: tyler_shukert
-image: lw7-hackathon/thumbnail.png
-thumb: lw7-hackathon/thumbnail.png
+imgSocial: lw7-hackathon/thumbnail.png
+imgThumb: lw7-hackathon/thumbnail.png
launchweek: '7'
categories:
- launch-week
diff --git a/apps/www/_blog/2023-04-08-supabase-beta-update-march-2023.mdx b/apps/www/_blog/2023-04-08-supabase-beta-update-march-2023.mdx
index f009959b792..c74bcd52020 100644
--- a/apps/www/_blog/2023-04-08-supabase-beta-update-march-2023.mdx
+++ b/apps/www/_blog/2023-04-08-supabase-beta-update-march-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta March 2023
description: We are in full shipping mode 🛥️… Launch Week 7 can’t come quickly enough!
author: ant_wilson
-image: 2023-04-08-supabase-beta-update-march/monthly-update-march-2023.jpg
-thumb: 2023-04-08-supabase-beta-update-march/monthly-update-march-2023.jpg
+imgSocial: 2023-04-08-supabase-beta-update-march/monthly-update-march-2023.jpg
+imgThumb: 2023-04-08-supabase-beta-update-march/monthly-update-march-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-04-10-supabase-logs-self-hosted.mdx b/apps/www/_blog/2023-04-10-supabase-logs-self-hosted.mdx
index ad401ead4ae..dce100a4de5 100644
--- a/apps/www/_blog/2023-04-10-supabase-logs-self-hosted.mdx
+++ b/apps/www/_blog/2023-04-10-supabase-logs-self-hosted.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-04-10'
toc_depth: 3
author: chasers,ziinc
-image: launch-week-7/day-1-supabase-logs-self-hosted/day-1-supabase-logs-self-hosted-og.jpg
-thumb: launch-week-7/day-1-supabase-logs-self-hosted/day-1-supabase-logs-self-hosted-thumb.jpg
+imgSocial: launch-week-7/day-1-supabase-logs-self-hosted/day-1-supabase-logs-self-hosted-og.jpg
+imgThumb: launch-week-7/day-1-supabase-logs-self-hosted/day-1-supabase-logs-self-hosted-thumb.jpg
---
Today, we’re releasing Supabase Logs for both self-hosted users and CLI development.
diff --git a/apps/www/_blog/2023-04-11-edge-runtime-self-hosted-deno-functions.mdx b/apps/www/_blog/2023-04-11-edge-runtime-self-hosted-deno-functions.mdx
index e1d81f1c9de..0198ef480b7 100644
--- a/apps/www/_blog/2023-04-11-edge-runtime-self-hosted-deno-functions.mdx
+++ b/apps/www/_blog/2023-04-11-edge-runtime-self-hosted-deno-functions.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-04-11'
toc_depth: 3
author: laktek,inian
-image: launch-week-7/day-2-edge-runtime/edge-runtime-og.jpg
-thumb: launch-week-7/day-2-edge-runtime/edge-runtime-thumb.jpeg
+imgSocial: launch-week-7/day-2-edge-runtime/edge-runtime-og.jpg
+imgThumb: launch-week-7/day-2-edge-runtime/edge-runtime-thumb.jpeg
---
diff --git a/apps/www/_blog/2023-04-12-storage-v3-resumable-uploads.mdx b/apps/www/_blog/2023-04-12-storage-v3-resumable-uploads.mdx
index 8b30e022af1..b56d6fcbdec 100644
--- a/apps/www/_blog/2023-04-12-storage-v3-resumable-uploads.mdx
+++ b/apps/www/_blog/2023-04-12-storage-v3-resumable-uploads.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-04-12'
toc_depth: 3
author: fabrizio,inian
-image: launch-week-7/day-3-storage-resumable-uploads/storage-v3-og.jpg
-thumb: launch-week-7/day-3-storage-resumable-uploads/storage-v3-thumb.jpg
+imgSocial: launch-week-7/day-3-storage-resumable-uploads/storage-v3-og.jpg
+imgThumb: launch-week-7/day-3-storage-resumable-uploads/storage-v3-thumb.jpg
---
Supabase Storage is receiving a major upgrade, implementing many of the most requested features from our users: Resumable Uploads, Quality Filters, Next.js support, and WebP support.
diff --git a/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx b/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx
index d909658a48b..f88ef35899a 100644
--- a/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx
+++ b/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-04-13'
toc_depth: 3
author: stojan,joel,kangmingtay
-image: launch-week-7/day-4-supabase-auth-sso-pkce/supabase-auth-sso-pkce-thumb.png
-thumb: launch-week-7/day-4-supabase-auth-sso-pkce/supabase-auth-sso-pkce-og.jpg
+imgSocial: launch-week-7/day-4-supabase-auth-sso-pkce/supabase-auth-sso-pkce-thumb.png
+imgThumb: launch-week-7/day-4-supabase-auth-sso-pkce/supabase-auth-sso-pkce-og.jpg
---
Today we're excited to announce a few new features for Supabase Auth:
diff --git a/apps/www/_blog/2023-04-14-dbdev.mdx b/apps/www/_blog/2023-04-14-dbdev.mdx
index efd222e82a9..56a47ca6d81 100644
--- a/apps/www/_blog/2023-04-14-dbdev.mdx
+++ b/apps/www/_blog/2023-04-14-dbdev.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-04-14'
toc_depth: 3
author: oli_rice,daltjoh-aws
-image: launch-week-7/day-5-one-more-thing/day-5-dbdev-og.jpg
-thumb: launch-week-7/day-5-one-more-thing/day-5-dbdev-thumb.jpg
+imgSocial: launch-week-7/day-5-one-more-thing/day-5-dbdev-og.jpg
+imgThumb: launch-week-7/day-5-one-more-thing/day-5-dbdev-thumb.jpg
---
Today we’re publicly previewing [**`database.dev`**](https://database.dev), a PostgreSQL package manager. At this stage the package registry is read-only. We've preloaded it with a handful of packages to showcase some of the more interesting possibilities.
diff --git a/apps/www/_blog/2023-04-14-launch-week-7-community-highlights.mdx b/apps/www/_blog/2023-04-14-launch-week-7-community-highlights.mdx
index cb0fcbfb062..59805f97250 100644
--- a/apps/www/_blog/2023-04-14-launch-week-7-community-highlights.mdx
+++ b/apps/www/_blog/2023-04-14-launch-week-7-community-highlights.mdx
@@ -9,8 +9,8 @@ tags:
date: '2023-04-14'
toc_depth: 3
author: paul_copplestone
-image: launch-week-7/day-5-community-highlights/day-5-community-highlights-og.jpg
-thumb: launch-week-7/day-5-community-highlights/day-5-community-highlights-thumb.jpg
+imgSocial: launch-week-7/day-5-community-highlights/day-5-community-highlights-og.jpg
+imgThumb: launch-week-7/day-5-community-highlights/day-5-community-highlights-thumb.jpg
---
Supabase is a collaborative company. We work with, sponsor, and support as many open source tools as possible. Here’s a few of this community highlights from the past 3 months.
diff --git a/apps/www/_blog/2023-04-14-pg-tle.mdx b/apps/www/_blog/2023-04-14-pg-tle.mdx
index d7ff966eb24..50ef9b18419 100644
--- a/apps/www/_blog/2023-04-14-pg-tle.mdx
+++ b/apps/www/_blog/2023-04-14-pg-tle.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-04-14'
toc_depth: 3
author: michel,daltjoh-aws
-image: launch-week-7/day-5-supabase-pg-tle/day-5-postgres-tle-thumb.jpg
-thumb: launch-week-7/day-5-supabase-pg-tle/day-5-postgres-tle-thumb.jpg
+imgSocial: launch-week-7/day-5-supabase-pg-tle/day-5-postgres-tle-thumb.jpg
+imgThumb: launch-week-7/day-5-supabase-pg-tle/day-5-postgres-tle-thumb.jpg
---
Most PostgreSQL cloud providers, such as Supabase and AWS RDS, do not allow users to install Postgres extensions into their databases until they have been rigorously vetted. Because of this, many useful Postgres extensions cannot be used on cloud platforms. To solve this, the RDS team has developed a new kind of extension called a **Trusted Language Extension** (TLE).
diff --git a/apps/www/_blog/2023-04-14-supabase-studio-2.0.mdx b/apps/www/_blog/2023-04-14-supabase-studio-2.0.mdx
index bd2e544e8c5..d93fdd56829 100644
--- a/apps/www/_blog/2023-04-14-supabase-studio-2.0.mdx
+++ b/apps/www/_blog/2023-04-14-supabase-studio-2.0.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-04-14'
toc_depth: 3
author: alaister,joshenlim,jonny,saltcod
-image: launch-week-7/day-5-supabase-studio-2.0/day-5-supabase-studio-2.0-og.jpg
-thumb: launch-week-7/day-5-supabase-studio-2.0/day-5-supabase-studio-2.0-thumb.jpg
+imgSocial: launch-week-7/day-5-supabase-studio-2.0/day-5-supabase-studio-2.0-og.jpg
+imgThumb: launch-week-7/day-5-supabase-studio-2.0/day-5-supabase-studio-2.0-thumb.jpg
---
Today we're announcing Supabase Studio 2.0, packed with a ton of new stuff. We have features people have been asking for forever, and new capabilities that will change the way you work.
diff --git a/apps/www/_blog/2023-04-21-whats-new-in-pg-graphql-v1-2.mdx b/apps/www/_blog/2023-04-21-whats-new-in-pg-graphql-v1-2.mdx
index 511ef63d659..5ec8c7c8043 100644
--- a/apps/www/_blog/2023-04-21-whats-new-in-pg-graphql-v1-2.mdx
+++ b/apps/www/_blog/2023-04-21-whats-new-in-pg-graphql-v1-2.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-04-21'
toc_depth: 3
author: oli_rice
-image: launch-week-6/pggraphql/og-pg-graphql.png
-thumb: launch-week-6/pggraphql/og-pg-graphql.png
+imgSocial: launch-week-6/pggraphql/og-pg-graphql.png
+imgThumb: launch-week-6/pggraphql/og-pg-graphql.png
---
It's been 4 months since the [1.0.0 release of pg_graphql](https://supabase.com/blog/pg-graphql-v1).
diff --git a/apps/www/_blog/2023-04-24-launch-week-7-hackathon-winners.mdx b/apps/www/_blog/2023-04-24-launch-week-7-hackathon-winners.mdx
index 5e80a44da20..3b554f7c2e6 100644
--- a/apps/www/_blog/2023-04-24-launch-week-7-hackathon-winners.mdx
+++ b/apps/www/_blog/2023-04-24-launch-week-7-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week 7 Hackathon Winners'
description: Announcing the winners of the Launch Week 7 Hackathon!
author: tyler_shukert
-image: lw7-hackathon-winners/lw7-hackathon-winner.jpg
-thumb: lw7-hackathon-winners/lw7-hackathon-winner.jpg
+imgSocial: lw7-hackathon-winners/lw7-hackathon-winner.jpg
+imgThumb: lw7-hackathon-winners/lw7-hackathon-winner.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-04-28-postgres-pluggable-strorage.mdx b/apps/www/_blog/2023-04-28-postgres-pluggable-strorage.mdx
index a309b79580d..f517fc055e7 100644
--- a/apps/www/_blog/2023-04-28-postgres-pluggable-strorage.mdx
+++ b/apps/www/_blog/2023-04-28-postgres-pluggable-strorage.mdx
@@ -2,8 +2,8 @@
title: 'Next steps for Postgres pluggable storage'
description: Exploring history of Postgres pluggable storage and the possibility of landing it in the Postgres core.
author: paul_copplestone
-image: pluggable-storage/pluggable-storage-og.jpg
-thumb: pluggable-storage/pluggable-storage.jpg
+imgSocial: pluggable-storage/pluggable-storage-og.jpg
+imgThumb: pluggable-storage/pluggable-storage.jpg
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx b/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx
index 954cc75165e..162d20690c2 100644
--- a/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx
+++ b/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx
@@ -2,8 +2,8 @@
title: 'Securing your Flutter apps with Multi-Factor Authentication'
description: Build a Flutter app where the user is required to authenticate using Multi-Factor Authentication.
author: tyler_shukert
-image: flutter-mfa/flutter-mfa-thumb.jpg
-thumb: flutter-mfa/flutter-mfa-thumb.jpg
+imgSocial: flutter-mfa/flutter-mfa-thumb.jpg
+imgThumb: flutter-mfa/flutter-mfa-thumb.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-05-09-supabase-beta-update-april-2023.mdx b/apps/www/_blog/2023-05-09-supabase-beta-update-april-2023.mdx
index b2dc0b42e0d..d72ea33a11f 100644
--- a/apps/www/_blog/2023-05-09-supabase-beta-update-april-2023.mdx
+++ b/apps/www/_blog/2023-05-09-supabase-beta-update-april-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta April 2023
description: A review of Launch Week 7 and more exciting updates from last month.
author: ant_wilson
-image: 2023-05-09-beta-update-april/monthly-update-april-2023.jpg
-thumb: 2023-05-09-beta-update-april/monthly-update-april-2023.jpg
+imgSocial: 2023-05-09-beta-update-april/monthly-update-april-2023.jpg
+imgThumb: 2023-05-09-beta-update-april/monthly-update-april-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-05-12-flutter-hackathon.mdx b/apps/www/_blog/2023-05-12-flutter-hackathon.mdx
index 95321215933..24908bfcbf2 100644
--- a/apps/www/_blog/2023-05-12-flutter-hackathon.mdx
+++ b/apps/www/_blog/2023-05-12-flutter-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'Flutter Hackathon'
description: Build Flutter apps and win limited edition swag.
author: tyler_shukert
-image: flutter-hackathon/thumbnail.jpg
-thumb: flutter-hackathon/thumbnail.jpg
+imgSocial: flutter-hackathon/thumbnail.jpg
+imgThumb: flutter-hackathon/thumbnail.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-05-15-building-chatgpt-plugins-template.mdx b/apps/www/_blog/2023-05-15-building-chatgpt-plugins-template.mdx
index b71ea367ec4..f03df5710b6 100644
--- a/apps/www/_blog/2023-05-15-building-chatgpt-plugins-template.mdx
+++ b/apps/www/_blog/2023-05-15-building-chatgpt-plugins-template.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-05-15'
toc_depth: 2
author: thor_schaeff
-image: 2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg
-thumb: 2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg
+imgSocial: 2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg
+imgThumb: 2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg
---
ChatGPT Plugins support is [rolling out in beta](https://help.openai.com/en/articles/6825453-chatgpt-release-notes) this week! To help you get up and running quickly, we're releasing a [plugin template](https://github.com/supabase-community/chatgpt-plugin-template-deno) written in TypeScript and running on [Supabase Edge Runtime](https://supabase.com/blog/edge-runtime-self-hosted-deno-functions)!
diff --git a/apps/www/_blog/2023-05-25-chatgpt-plugins-support-postgres.mdx b/apps/www/_blog/2023-05-25-chatgpt-plugins-support-postgres.mdx
index 23e9302f780..6fcf0768ba2 100644
--- a/apps/www/_blog/2023-05-25-chatgpt-plugins-support-postgres.mdx
+++ b/apps/www/_blog/2023-05-25-chatgpt-plugins-support-postgres.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-05-25'
toc_depth: 2
author: egor_romanov,paul_copplestone
-image: 2023-05-25-chatgpt-plugins-support-postgres/chatgpt-plugins-support-postgres.jpeg
-thumb: 2023-05-25-chatgpt-plugins-support-postgres/chatgpt-plugins-support-postgres.jpeg
+imgSocial: 2023-05-25-chatgpt-plugins-support-postgres/chatgpt-plugins-support-postgres.jpeg
+imgThumb: 2023-05-25-chatgpt-plugins-support-postgres/chatgpt-plugins-support-postgres.jpeg
---
One of the challenges that ChatGPT faces is being able to answer questions from a private dataset. We can solve this with “retrieval plugins”, which allow ChatGPT to access information from a database.
diff --git a/apps/www/_blog/2023-05-29-flutter-hackathon-winners.mdx b/apps/www/_blog/2023-05-29-flutter-hackathon-winners.mdx
index 2be79647879..ad39e666733 100644
--- a/apps/www/_blog/2023-05-29-flutter-hackathon-winners.mdx
+++ b/apps/www/_blog/2023-05-29-flutter-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Flutter Hackathon Winners'
description: Announcing the winners of the Flutter Hackathon!
author: tyler_shukert
-image: flutter-hackathon-winners/flutter-hackathon-winners.png
-thumb: flutter-hackathon-winners/flutter-hackathon-winners.png
+imgSocial: flutter-hackathon-winners/flutter-hackathon-winners.png
+imgThumb: flutter-hackathon-winners/flutter-hackathon-winners.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-05-31-vecs.mdx b/apps/www/_blog/2023-05-31-vecs.mdx
index 77f6e782ce6..531bda76b61 100644
--- a/apps/www/_blog/2023-05-31-vecs.mdx
+++ b/apps/www/_blog/2023-05-31-vecs.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Vecs: a vector client for Postgres'
description: Introducing Supabase Vecs, a PostgreSQL vector client
author: oli_rice
-image: 2023-06-01-vecs/og-image.jpg
-thumb: 2023-06-01-vecs/og-image.jpg
+imgSocial: 2023-06-01-vecs/og-image.jpg
+imgThumb: 2023-06-01-vecs/og-image.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-06-09-supabase-beta-update-may-2023.mdx b/apps/www/_blog/2023-06-09-supabase-beta-update-may-2023.mdx
index 66116cc051a..53ca4ccd846 100644
--- a/apps/www/_blog/2023-06-09-supabase-beta-update-may-2023.mdx
+++ b/apps/www/_blog/2023-06-09-supabase-beta-update-may-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta May 2023
description: Learn about the great things we shipped last month. Spoiler alert... lots of AI.
author: ant_wilson
-image: 2023-09-06-may-2023-beta-update/monthly-update-may-2023.jpg
-thumb: 2023-09-06-may-2023-beta-update/monthly-update-may-2023.jpg
+imgSocial: 2023-09-06-may-2023-beta-update/monthly-update-may-2023.jpg
+imgThumb: 2023-09-06-may-2023-beta-update/monthly-update-may-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-06-27-native-mobile-auth.mdx b/apps/www/_blog/2023-06-27-native-mobile-auth.mdx
index e67564d1bc4..adf2b376b04 100644
--- a/apps/www/_blog/2023-06-27-native-mobile-auth.mdx
+++ b/apps/www/_blog/2023-06-27-native-mobile-auth.mdx
@@ -2,8 +2,8 @@
title: Native Mobile Auth Support for Google and Apple Sign in
description: Supabase auth adds full support for native mobile sign in with Apple and Google.
author: stojan,tyler_shukert
-image: native-mobile-auth/native-mobile-auth.png
-thumb: native-mobile-auth/native-mobile-auth.png
+imgSocial: native-mobile-auth/native-mobile-auth.png
+imgThumb: native-mobile-auth/native-mobile-auth.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-07-06-supabase-beta-update-june-2023.mdx b/apps/www/_blog/2023-07-06-supabase-beta-update-june-2023.mdx
index 9b649c6c718..d4708b86743 100644
--- a/apps/www/_blog/2023-07-06-supabase-beta-update-june-2023.mdx
+++ b/apps/www/_blog/2023-07-06-supabase-beta-update-june-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta June 2023
description: A plethora of announcements... read till the end to find out when is the new Launch Week
author: ant_wilson
-image: 2023-07-06-beta-update-june/beta-update-june-2023.png
-thumb: 2023-07-06-beta-update-june/beta-update-june-2023.png
+imgSocial: 2023-07-06-beta-update-june/beta-update-june-2023.png
+imgThumb: 2023-07-06-beta-update-june/beta-update-june-2023.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-07-12-postgrest-11-1-release.mdx b/apps/www/_blog/2023-07-12-postgrest-11-1-release.mdx
index 917d040ca10..7f40fde451c 100644
--- a/apps/www/_blog/2023-07-12-postgrest-11-1-release.mdx
+++ b/apps/www/_blog/2023-07-12-postgrest-11-1-release.mdx
@@ -2,8 +2,8 @@
title: 'What is new in PostgREST v11.1?'
description: 'Impersonated Role Settings, Configurable Isolation Level, improved Bulk Insert, and more'
author: steve_chavez
-image: lw6-community/postgrest.png
-thumb: lw6-community/postgrest.png
+imgSocial: lw6-community/postgrest.png
+imgThumb: lw6-community/postgrest.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2023-07-13-pgvector-performance.mdx b/apps/www/_blog/2023-07-13-pgvector-performance.mdx
index 3618daf5f62..1f386b4c79b 100644
--- a/apps/www/_blog/2023-07-13-pgvector-performance.mdx
+++ b/apps/www/_blog/2023-07-13-pgvector-performance.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-07-13'
toc_depth: 2
author: egor_romanov,pavel
-image: 2023-07-13-pgvector-performance/vector-benchmarks-og.jpeg
-thumb: 2023-07-13-pgvector-performance/vector-benchmarks-thumb.jpeg
+imgSocial: 2023-07-13-pgvector-performance/vector-benchmarks-og.jpeg
+imgThumb: 2023-07-13-pgvector-performance/vector-benchmarks-thumb.jpeg
---
diff --git a/apps/www/_blog/2023-07-18-flutter-authentication.mdx b/apps/www/_blog/2023-07-18-flutter-authentication.mdx
index bcce18aa6f3..0af9e05674e 100644
--- a/apps/www/_blog/2023-07-18-flutter-authentication.mdx
+++ b/apps/www/_blog/2023-07-18-flutter-authentication.mdx
@@ -9,8 +9,8 @@ tags:
date: '2023-07-18'
toc_depth: 2
author: tyler_shukert
-image: flutter-authentication/flutter-authentication.jpg
-thumb: flutter-authentication/flutter-authentication.jpg
+imgSocial: flutter-authentication/flutter-authentication.jpg
+imgThumb: flutter-authentication/flutter-authentication.jpg
---
Flutter is Google’s open-source framework to develop cross-platform applications. In this article, we will take a look at how we can implement authentication using Google sign-in to secure our application using the [Supabase SDK for Flutter](https://supabase.com/docs/reference/dart/introduction).
diff --git a/apps/www/_blog/2023-07-25-supabase-lw8-hackathon.mdx b/apps/www/_blog/2023-07-25-supabase-lw8-hackathon.mdx
index 992f86fc2d8..1cfd3b78594 100644
--- a/apps/www/_blog/2023-07-25-supabase-lw8-hackathon.mdx
+++ b/apps/www/_blog/2023-07-25-supabase-lw8-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Launch Week 8 Hackathon'
description: Build an Open Source Project over 10 days. 5 prize categories.
author: ant_wilson
-image: lw8-hackathon/thumbnail.png
-thumb: lw8-hackathon/thumbnail.png
+imgSocial: lw8-hackathon/thumbnail.png
+imgThumb: lw8-hackathon/thumbnail.png
launchweek: '8'
categories:
- launch-week
diff --git a/apps/www/_blog/2023-08-01-react-native-storage.mdx b/apps/www/_blog/2023-08-01-react-native-storage.mdx
index 11d001b9d64..305c5d9a66a 100644
--- a/apps/www/_blog/2023-08-01-react-native-storage.mdx
+++ b/apps/www/_blog/2023-08-01-react-native-storage.mdx
@@ -2,8 +2,8 @@
title: 'React Native file upload with Supabase Storage'
description: Learn how to implement authentication and file upload in a React Native app.
author: simon_grimm
-image: 2023-08-01-react-native-storage/react-native-storage.jpg
-thumb: 2023-08-01-react-native-storage/react-native-storage.jpg
+imgSocial: 2023-08-01-react-native-storage/react-native-storage.jpg
+imgThumb: 2023-08-01-react-native-storage/react-native-storage.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-08-02-beta-update-july-2023.mdx b/apps/www/_blog/2023-08-02-beta-update-july-2023.mdx
index 54a4c25ff85..63e59d7b260 100644
--- a/apps/www/_blog/2023-08-02-beta-update-july-2023.mdx
+++ b/apps/www/_blog/2023-08-02-beta-update-july-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta July 2023
description: Launch Week 8 is coming - but we still shipped some goodies during July
author: ant_wilson
-image: 2023-08-02-july-2023-beta-update/july-2023-beta-update.png
-thumb: 2023-08-02-july-2023-beta-update/july-2023-beta-update.png
+imgSocial: 2023-08-02-july-2023-beta-update/july-2023-beta-update.png
+imgThumb: 2023-08-02-july-2023-beta-update/july-2023-beta-update.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-08-03-fewer-dimensions-are-better-pgvector.mdx b/apps/www/_blog/2023-08-03-fewer-dimensions-are-better-pgvector.mdx
index 1aa6cbd6931..18df29f89b0 100644
--- a/apps/www/_blog/2023-08-03-fewer-dimensions-are-better-pgvector.mdx
+++ b/apps/www/_blog/2023-08-03-fewer-dimensions-are-better-pgvector.mdx
@@ -11,8 +11,8 @@ tags:
- planetpg
date: '2023-08-03'
toc_depth: 3
-image: 2023-08-03-fewer-dimensions-are-better-pgvector/fewer-dimensions-og.png
-thumb: 2023-08-03-fewer-dimensions-are-better-pgvector/fewer-dimensions-thumb.png
+imgSocial: 2023-08-03-fewer-dimensions-are-better-pgvector/fewer-dimensions-og.png
+imgThumb: 2023-08-03-fewer-dimensions-are-better-pgvector/fewer-dimensions-thumb.png
---
Embeddings have become a core tool in AI applications to determine semantic similarity between pieces of content. Developers are using embeddings for various tasks, such as search, retrieval augmented generation, and clustering.
diff --git a/apps/www/_blog/2023-08-04-interactive-constellation-threejs-react-three-fiber.mdx b/apps/www/_blog/2023-08-04-interactive-constellation-threejs-react-three-fiber.mdx
index 1664c0049da..025984eabb5 100644
--- a/apps/www/_blog/2023-08-04-interactive-constellation-threejs-react-three-fiber.mdx
+++ b/apps/www/_blog/2023-08-04-interactive-constellation-threejs-react-three-fiber.mdx
@@ -2,8 +2,8 @@
title: Coding the stars - an interactive constellation with Three.js and React Three Fiber
description: How we built a constellation of stars with Three.js and React Three Fiber.
author: fsansalvadore
-image: lw8-constellation-breakdown/lw8-constellation-breakdown-og.png
-thumb: lw8-constellation-breakdown/lw8-constellation-breakdown-og.png
+imgSocial: lw8-constellation-breakdown/lw8-constellation-breakdown-og.png
+imgThumb: lw8-constellation-breakdown/lw8-constellation-breakdown-og.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2023-08-05-why-supabase-remote.mdx b/apps/www/_blog/2023-08-05-why-supabase-remote.mdx
index 7a83399758a..45fe3a661fe 100644
--- a/apps/www/_blog/2023-08-05-why-supabase-remote.mdx
+++ b/apps/www/_blog/2023-08-05-why-supabase-remote.mdx
@@ -2,8 +2,8 @@
title: "Why we'll stay remote"
description: Offices are making a comeback, just not at Supabase.
author: ant_wilson
-image: remote/og.jpg
-thumb: remote/thumb.jpg
+imgSocial: remote/og.jpg
+imgThumb: remote/thumb.jpg
launchweek: '8'
categories:
- company
diff --git a/apps/www/_blog/2023-08-07-hugging-face-supabase.mdx b/apps/www/_blog/2023-08-07-hugging-face-supabase.mdx
index c6f69be2b95..191053a70c7 100644
--- a/apps/www/_blog/2023-08-07-hugging-face-supabase.mdx
+++ b/apps/www/_blog/2023-08-07-hugging-face-supabase.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-08-07'
toc_depth: 3
author: gregnr,oli_rice
-image: launch-week-8/day-1/hugging-face-supabase-og.jpg
-thumb: launch-week-8/day-1/hugging-face-supabase-thumb.jpg
+imgSocial: launch-week-8/day-1/hugging-face-supabase-og.jpg
+imgThumb: launch-week-8/day-1/hugging-face-supabase-thumb.jpg
---
Since launching our [Vector Toolkit](https://supabase.com/modules/vector) a few months ago, the number of AI applications on Supabase has grown - a lot. Hundreds of new databases every week are using [pgvector](https://github.com/pgvector/pgvector).
diff --git a/apps/www/_blog/2023-08-08-supabase-local-dev.mdx b/apps/www/_blog/2023-08-08-supabase-local-dev.mdx
index d9f3934bf3a..3ffe9d23de8 100644
--- a/apps/www/_blog/2023-08-08-supabase-local-dev.mdx
+++ b/apps/www/_blog/2023-08-08-supabase-local-dev.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-08-08'
toc_depth: 3
author: qiao,soedirgo,jonny
-image: launch-week-8/day-2/OG-day2.jpg
-thumb: launch-week-8/day-2/thumb-day2.jpg
+imgSocial: launch-week-8/day-2/OG-day2.jpg
+imgThumb: launch-week-8/day-2/thumb-day2.jpg
---
One of our goals at Supabase is to make Postgres development delightful. To do this, we need to simplify the experience between our CLI, your code editor, and the remote Postgres database powering your applications.
diff --git a/apps/www/_blog/2023-08-09-supabase-studio-3-0.mdx b/apps/www/_blog/2023-08-09-supabase-studio-3-0.mdx
index 4437bb46a2d..c9a8a02526a 100644
--- a/apps/www/_blog/2023-08-09-supabase-studio-3-0.mdx
+++ b/apps/www/_blog/2023-08-09-supabase-studio-3-0.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-08-09'
toc_depth: 3
author: alaister,gregnr,joshenlim
-image: launch-week-8/day-3/og-day3.jpg
-thumb: launch-week-8/day-3/thumb-day3.jpg
+imgSocial: launch-week-8/day-3/og-day3.jpg
+imgThumb: launch-week-8/day-3/thumb-day3.jpg
---
Supabase Studio 3.0 is here, with some huge new features, including a brand new Supabase AI, integrated right into our SQL Editor. If you hate writing SQL, you'll love this update.
diff --git a/apps/www/_blog/2023-08-10-supabase-integrations-marketplace.mdx b/apps/www/_blog/2023-08-10-supabase-integrations-marketplace.mdx
index 483dee3ff48..1f526d38af2 100644
--- a/apps/www/_blog/2023-08-10-supabase-integrations-marketplace.mdx
+++ b/apps/www/_blog/2023-08-10-supabase-integrations-marketplace.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-08-10'
toc_depth: 3
author: thor_schaeff
-image: launch-week-8/day-4/integration-marketplace-og.jpg
-thumb: launch-week-8/day-4/integration-marketplace-thumb.jpg
+imgSocial: launch-week-8/day-4/integration-marketplace-og.jpg
+imgThumb: launch-week-8/day-4/integration-marketplace-thumb.jpg
---
We've been running our [Integrations Marketplace](/partners) in “stealth mode” for about a year now. What started as a dog-fooding project has now transformed into a marketplace with [over 60 integrations](/partners/integrations). (It's also an [open source template](https://vercel.com/templates/next.js/supabase-partner-gallery) that you can use yourself).
diff --git a/apps/www/_blog/2023-08-10-using-supabase-with-vercel.mdx b/apps/www/_blog/2023-08-10-using-supabase-with-vercel.mdx
index e9a09d93472..d39f9532011 100644
--- a/apps/www/_blog/2023-08-10-using-supabase-with-vercel.mdx
+++ b/apps/www/_blog/2023-08-10-using-supabase-with-vercel.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-08-10'
toc_depth: 3
author: jonny,jonmeyers_io
-image: launch-week-8/day-4/vercel-and-supabase-og.jpg
-thumb: launch-week-8/day-4/vercel-and-supabase-thumb.jpg
+imgSocial: launch-week-8/day-4/vercel-and-supabase-og.jpg
+imgThumb: launch-week-8/day-4/vercel-and-supabase-thumb.jpg
---
Vercel's open source framework, [Next.js](https://nextjs.org/), is the most popular frontend framework for Supabase developers.
diff --git a/apps/www/_blog/2023-08-11-launch-week-8-community-highlights.mdx b/apps/www/_blog/2023-08-11-launch-week-8-community-highlights.mdx
index 3637cdf4da2..30fc259fcf8 100644
--- a/apps/www/_blog/2023-08-11-launch-week-8-community-highlights.mdx
+++ b/apps/www/_blog/2023-08-11-launch-week-8-community-highlights.mdx
@@ -9,8 +9,8 @@ tags:
date: '2023-08-11'
toc_depth: 3
author: paul_copplestone
-image: launch-week-8/day-5-community/community-highlights-OG.jpg
-thumb: launch-week-8/day-5-community/community-highlights-thumbs.jpg
+imgSocial: launch-week-8/day-5-community/community-highlights-OG.jpg
+imgThumb: launch-week-8/day-5-community/community-highlights-thumbs.jpg
---
Supabase aims to be as collaborative as possible - working with, sponsoring, and supporting as many open source tools as possible. In many ways, we're more like a "community of communities". Here are a few highlights from the past 4 months.
diff --git a/apps/www/_blog/2023-08-11-supabase-soc2-hipaa.mdx b/apps/www/_blog/2023-08-11-supabase-soc2-hipaa.mdx
index 7246749156c..60c57b77436 100644
--- a/apps/www/_blog/2023-08-11-supabase-soc2-hipaa.mdx
+++ b/apps/www/_blog/2023-08-11-supabase-soc2-hipaa.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-08-11'
toc_depth: 3
author: inian
-image: launch-week-8/day-5/OG-day5-compliance.jpg
-thumb: launch-week-8/day-5/thumb-day5-compliance.jpg
+imgSocial: launch-week-8/day-5/OG-day5-compliance.jpg
+imgThumb: launch-week-8/day-5/thumb-day5-compliance.jpg
---
While we weren’t [planning](https://news.ycombinator.com/item?id=35526018) to do anything official for this announcement, [the customer is always right](https://news.ycombinator.com/item?id=35555756).
diff --git a/apps/www/_blog/2023-08-11-supavisor-1-million.mdx b/apps/www/_blog/2023-08-11-supavisor-1-million.mdx
index 58399333c6b..ff2fc6038fc 100644
--- a/apps/www/_blog/2023-08-11-supavisor-1-million.mdx
+++ b/apps/www/_blog/2023-08-11-supavisor-1-million.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-08-11'
toc_depth: 3
author: egor_romanov,chasers,stas
-image: launch-week-8/day-5/supavisor-og.jpg
-thumb: launch-week-8/day-5/supavisor-thumb.jpg
+imgSocial: launch-week-8/day-5/supavisor-og.jpg
+imgThumb: launch-week-8/day-5/supavisor-thumb.jpg
---
One of the most [widely-discussed shortcomings](https://news.ycombinator.com/item?id=24735012) of Postgres is it's connection system. Every Postgres connection has a reasonably high memory footprint, and determining the maximum number of connections your database can handle is a [bit of an art](https://momjian.us/main/blogs/pgblog/2020.html#April_22_2020).
diff --git a/apps/www/_blog/2023-08-24-launch-week-8-hackathon-winners.mdx b/apps/www/_blog/2023-08-24-launch-week-8-hackathon-winners.mdx
index 6538f0299fc..4c74dfc8eff 100644
--- a/apps/www/_blog/2023-08-24-launch-week-8-hackathon-winners.mdx
+++ b/apps/www/_blog/2023-08-24-launch-week-8-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week 8 Hackathon Winners'
description: Announcing the winners of the Launch Week 8 Hackathon!
author: andrew_smith,saltcod,tyler_shukert
-image: lw8-hackathon-winners/hackathon-winners.png
-thumb: lw8-hackathon-winners/hackathon-winners.png
+imgSocial: lw8-hackathon-winners/hackathon-winners.png
+imgThumb: lw8-hackathon-winners/hackathon-winners.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-08-31-organization-based-billing.mdx b/apps/www/_blog/2023-08-31-organization-based-billing.mdx
index 641045e2c1c..efa0d263218 100644
--- a/apps/www/_blog/2023-08-31-organization-based-billing.mdx
+++ b/apps/www/_blog/2023-08-31-organization-based-billing.mdx
@@ -2,8 +2,8 @@
title: 'Organization-based Billing, Project Transfers, Team Plan'
description: Introducing the new Organization-based Billing
author: paul_copplestone,kevcodez
-image: 2023-08-31-org-billing/org-billing-thumb.png
-thumb: 2023-08-31-org-billing/org-billing-thumb.png
+imgSocial: 2023-08-31-org-billing/org-billing-thumb.png
+imgThumb: 2023-08-31-org-billing/org-billing-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-09-06-increase-performance-pgvector-hnsw.mdx b/apps/www/_blog/2023-09-06-increase-performance-pgvector-hnsw.mdx
index 7f880355b87..bfb1d7e049b 100644
--- a/apps/www/_blog/2023-09-06-increase-performance-pgvector-hnsw.mdx
+++ b/apps/www/_blog/2023-09-06-increase-performance-pgvector-hnsw.mdx
@@ -11,8 +11,8 @@ tags:
- planetpg
date: '2023-09-06'
toc_depth: 3
-image: 2023-09-06-increase-performance-pgvector-hnsw/pgvector-v0-5-0-og.png
-thumb: 2023-09-06-increase-performance-pgvector-hnsw/pgvector-v0-5-0-thumb.png
+imgSocial: 2023-09-06-increase-performance-pgvector-hnsw/pgvector-v0-5-0-og.png
+imgThumb: 2023-09-06-increase-performance-pgvector-hnsw/pgvector-v0-5-0-thumb.png
---
_Contributed by: [Egor Romanov](https://github.com/egor-romanov)_
diff --git a/apps/www/_blog/2023-09-08-beta-update-august-2023.mdx b/apps/www/_blog/2023-09-08-beta-update-august-2023.mdx
index 610c8e721e4..45c6a18cca0 100644
--- a/apps/www/_blog/2023-09-08-beta-update-august-2023.mdx
+++ b/apps/www/_blog/2023-09-08-beta-update-august-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta August 2023
description: Launch Week 8 review and more things we shipped 🚀
author: ant_wilson
-image: 2023-09-07-beta-update-august-2023/monthly-update-august-2023.jpg
-thumb: 2023-09-07-beta-update-august-2023/monthly-update-august-2023.jpg
+imgSocial: 2023-09-07-beta-update-august-2023/monthly-update-august-2023.jpg
+imgThumb: 2023-09-07-beta-update-august-2023/monthly-update-august-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-10-03-postgres-dynamic-table-partitioning.mdx b/apps/www/_blog/2023-10-03-postgres-dynamic-table-partitioning.mdx
index 5cc4648b017..b270ffebbf4 100644
--- a/apps/www/_blog/2023-10-03-postgres-dynamic-table-partitioning.mdx
+++ b/apps/www/_blog/2023-10-03-postgres-dynamic-table-partitioning.mdx
@@ -8,8 +8,8 @@ tags:
date: '2023-10-03'
toc_depth: 3
author: michel
-image: partitions/dynamic-table-partitioning-og.png
-thumb: partitions/dynamic-table-partitioning-thumb.png
+imgSocial: partitions/dynamic-table-partitioning-og.png
+imgThumb: partitions/dynamic-table-partitioning-thumb.png
---
We helped a customer recently who was storing 500 million chat messages in a single Postgres table. As the table was growing, their queries were slowing down.
diff --git a/apps/www/_blog/2023-10-04-beta-update-september-2023.mdx b/apps/www/_blog/2023-10-04-beta-update-september-2023.mdx
index c2f11db94af..a3807192a50 100644
--- a/apps/www/_blog/2023-10-04-beta-update-september-2023.mdx
+++ b/apps/www/_blog/2023-10-04-beta-update-september-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta September 2023
description: September was packed with so many new features and releases that it might have seemed like another Launch Week, but it wasn't!
author: ant_wilson
-image: 2023-10-04-beta-update-september/monthly-update-september-2023.jpg
-thumb: 2023-10-04-beta-update-september/monthly-update-september-2023.jpg
+imgSocial: 2023-10-04-beta-update-september/monthly-update-september-2023.jpg
+imgThumb: 2023-10-04-beta-update-september/monthly-update-september-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-10-08-react-native-offline-first-watermelon-db.mdx b/apps/www/_blog/2023-10-08-react-native-offline-first-watermelon-db.mdx
index 2090e1c29e6..db56fbe264c 100644
--- a/apps/www/_blog/2023-10-08-react-native-offline-first-watermelon-db.mdx
+++ b/apps/www/_blog/2023-10-08-react-native-offline-first-watermelon-db.mdx
@@ -2,8 +2,8 @@
title: Offline-first React Native Apps with Expo, WatermelonDB, and Supabase
description: Store your data locally and sync it with Postgres using WatermelonDB!
author: benediktmueller
-image: 2023-10-08-react-native-offline-first-watermelon-db/expo-watermelondb-supabase.jpg
-thumb: 2023-10-08-react-native-offline-first-watermelon-db/expo-watermelondb-supabase.jpg
+imgSocial: 2023-10-08-react-native-offline-first-watermelon-db/expo-watermelondb-supabase.jpg
+imgThumb: 2023-10-08-react-native-offline-first-watermelon-db/expo-watermelondb-supabase.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2023-10-10-pgvector-vs-pinecone.mdx b/apps/www/_blog/2023-10-10-pgvector-vs-pinecone.mdx
index 5504cb86d37..81b00412146 100644
--- a/apps/www/_blog/2023-10-10-pgvector-vs-pinecone.mdx
+++ b/apps/www/_blog/2023-10-10-pgvector-vs-pinecone.mdx
@@ -10,8 +10,8 @@ tags:
- postgres
date: '2023-10-10'
toc_depth: 3
-image: 2023-10-10-pgvector-vs-pinecone/pgvector-pinecone-og.png
-thumb: 2023-10-10-pgvector-vs-pinecone/pgvector-pinecone-thumb.png
+imgSocial: 2023-10-10-pgvector-vs-pinecone/pgvector-pinecone-og.png
+imgThumb: 2023-10-10-pgvector-vs-pinecone/pgvector-pinecone-thumb.png
---
At Supabase, we believe that a combination of Postgres and pgvector serves as a better alternative to single-purpose databases like Pinecone for AI tasks. This isn't the first time a Postgres-based solution has successfully rivaled specialized databases designed for specific data types. Timescale for time-series data and Greenplum for analytics are just a few examples.
diff --git a/apps/www/_blog/2023-11-01-supabase-is-now-compatible-with-nextjs-14.mdx b/apps/www/_blog/2023-11-01-supabase-is-now-compatible-with-nextjs-14.mdx
index 9fb473003ad..48925dc6d0e 100644
--- a/apps/www/_blog/2023-11-01-supabase-is-now-compatible-with-nextjs-14.mdx
+++ b/apps/www/_blog/2023-11-01-supabase-is-now-compatible-with-nextjs-14.mdx
@@ -9,8 +9,8 @@ tags:
- intgrations
date: '2023-11-01'
toc_depth: 3
-image: 2023-11-01-supabase-is-now-compatible-with-nextjs-14/nextjs-compatible.jpg
-thumb: 2023-11-01-supabase-is-now-compatible-with-nextjs-14/nextjs-compatible.jpg
+imgSocial: 2023-11-01-supabase-is-now-compatible-with-nextjs-14/nextjs-compatible.jpg
+imgThumb: 2023-11-01-supabase-is-now-compatible-with-nextjs-14/nextjs-compatible.jpg
---
As part of [Next.js Conf 2023](https://nextjs.org/conf), the team at Vercel released [Next.js 14](https://nextjs.org/blog/next-14). The huge headline feature was...
diff --git a/apps/www/_blog/2023-11-06-beta-update-october-2023.mdx b/apps/www/_blog/2023-11-06-beta-update-october-2023.mdx
index 2f34c3ccbcf..119c14bedac 100644
--- a/apps/www/_blog/2023-11-06-beta-update-october-2023.mdx
+++ b/apps/www/_blog/2023-11-06-beta-update-october-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta October 2023
description: Brand-new features, community content, and (more importantly) the date for our next Launch Week.
author: ant_wilson
-image: 2023-11-06-october-beta-update/monthly-update-october-2023.jpg
-thumb: 2023-11-06-october-beta-update/monthly-update-october-2023.jpg
+imgSocial: 2023-11-06-october-beta-update/monthly-update-october-2023.jpg
+imgThumb: 2023-11-06-october-beta-update/monthly-update-october-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-11-16-react-native-authentication.mdx b/apps/www/_blog/2023-11-16-react-native-authentication.mdx
index 5c5ab09644f..07da7ad668c 100644
--- a/apps/www/_blog/2023-11-16-react-native-authentication.mdx
+++ b/apps/www/_blog/2023-11-16-react-native-authentication.mdx
@@ -9,8 +9,8 @@ tags:
date: '2023-11-16'
toc_depth: 3
author: thor_schaeff
-image: 2023-11-16-react-native-authentication/react-native-authentication-supabase.jpg
-thumb: 2023-11-16-react-native-authentication/react-native-authentication-supabase.jpg
+imgSocial: 2023-11-16-react-native-authentication/react-native-authentication-supabase.jpg
+imgThumb: 2023-11-16-react-native-authentication/react-native-authentication-supabase.jpg
---
Authentication is the process of verifying the identity of a user who is attempting to access a system, application, or online service. In this blog post, you will learn about React Native authentication, including native mobile specific login mechanisms like "Sign in with Apple" and "Google One Tap sign-in", as well as SMS & WhatsApp based authentication.
diff --git a/apps/www/_blog/2023-11-21-oauth2-login-python-flask-apps.mdx b/apps/www/_blog/2023-11-21-oauth2-login-python-flask-apps.mdx
index d6cc14d08d2..f444aefe4fa 100644
--- a/apps/www/_blog/2023-11-21-oauth2-login-python-flask-apps.mdx
+++ b/apps/www/_blog/2023-11-21-oauth2-login-python-flask-apps.mdx
@@ -9,8 +9,8 @@ tags:
date: '2023-11-21'
toc_depth: 3
author: andrew_smith
-image: oauth2-login-python-flask-apps/flask-supabase-auth.jpg
-thumb: oauth2-login-python-flask-apps/flask-supabase-auth.jpg
+imgSocial: oauth2-login-python-flask-apps/flask-supabase-auth.jpg
+imgThumb: oauth2-login-python-flask-apps/flask-supabase-auth.jpg
---
In this guide we'll learn how to quickly build an OAuth2.0 integration into a simple Flask app using Supabase-py. This will enable your users to login to your web app using their GitHub account.
diff --git a/apps/www/_blog/2023-12-01-automatic-cli-login.mdx b/apps/www/_blog/2023-12-01-automatic-cli-login.mdx
index 076e7347f3f..8221f5fbd46 100644
--- a/apps/www/_blog/2023-12-01-automatic-cli-login.mdx
+++ b/apps/www/_blog/2023-12-01-automatic-cli-login.mdx
@@ -9,8 +9,8 @@ tags:
date: '2023-12-01'
toc_depth: 3
author: kamil_ogorek
-image: automatic-cli-login/automatic-cli-login-og.jpg
-thumb: automatic-cli-login/automatic-cli-login-thumb.jpg
+imgSocial: automatic-cli-login/automatic-cli-login-og.jpg
+imgThumb: automatic-cli-login/automatic-cli-login-thumb.jpg
---
Using the [Supabase CLI](https://supabase.com/docs/guides/cli) is the go-to method for many to interact with their Supabase projects. It enables easy local project development, working with the local database, managing migrations, and generating types, among other functionalities. However, some scenarios demand connecting to the real Supabase project, requiring a login. Until now, the login process involved typing `supabase login`, which prompted users to manually generate a token from [supabase.com/dashboard/account/tokens](https://supabase.com/dashboard/account/tokens) and paste it back into the terminal.
diff --git a/apps/www/_blog/2023-12-05-beta-update-november-2023.mdx b/apps/www/_blog/2023-12-05-beta-update-november-2023.mdx
index 5c6393c6c26..ec25136b265 100644
--- a/apps/www/_blog/2023-12-05-beta-update-november-2023.mdx
+++ b/apps/www/_blog/2023-12-05-beta-update-november-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta November 2023
description: "Launch Week X is coming! But we still have cool updates that we couldn't fit next week."
author: ant_wilson
-image: beta-update-november-2023/beta-update-november.png
-thumb: beta-update-november-2023/beta-update-november.png
+imgSocial: beta-update-november-2023/beta-update-november.png
+imgThumb: beta-update-november-2023/beta-update-november.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2023-12-05-community-meetups-lwx.mdx b/apps/www/_blog/2023-12-05-community-meetups-lwx.mdx
index f2ee7321e29..2c336a81b4d 100644
--- a/apps/www/_blog/2023-12-05-community-meetups-lwx.mdx
+++ b/apps/www/_blog/2023-12-05-community-meetups-lwx.mdx
@@ -2,8 +2,8 @@
title: 'Launch Week X Community Meetups'
description: "The Supabase Community Meetups are back, and this time we've got more events happening all over the world!"
author: yuri
-image: lwx-community-meetups/meetups.jpg
-thumb: lwx-community-meetups/meetups.jpg
+imgSocial: lwx-community-meetups/meetups.jpg
+imgThumb: lwx-community-meetups/meetups.jpg
launchweek: x
categories:
- launch-week
diff --git a/apps/www/_blog/2023-12-05-supabase-hackathon-lwx.mdx b/apps/www/_blog/2023-12-05-supabase-hackathon-lwx.mdx
index f2ef2c2bc89..aeacac992cb 100644
--- a/apps/www/_blog/2023-12-05-supabase-hackathon-lwx.mdx
+++ b/apps/www/_blog/2023-12-05-supabase-hackathon-lwx.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Launch Week X Hackathon'
description: Build an Open Source Project over 10 days. 5 prize categories.
author: ant_wilson
-image: lwx-hackathon/ogimage.png
-thumb: lwx-hackathon/ogimage.png
+imgSocial: lwx-hackathon/ogimage.png
+imgThumb: lwx-hackathon/ogimage.png
launchweek: x
categories:
- launch-week
diff --git a/apps/www/_blog/2023-12-08-how-design-works-at-supabase.mdx b/apps/www/_blog/2023-12-08-how-design-works-at-supabase.mdx
index 46e20fbbdc2..92b89fc3623 100644
--- a/apps/www/_blog/2023-12-08-how-design-works-at-supabase.mdx
+++ b/apps/www/_blog/2023-12-08-how-design-works-at-supabase.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-12-08'
toc_depth: 3
author: jonny,marijana,fsansalvadore
-image: lwx-how-design-works-at-supabase/og.png
-thumb: lwx-how-design-works-at-supabase/design-at-supabase-thumb.jpg
+imgSocial: lwx-how-design-works-at-supabase/og.png
+imgThumb: lwx-how-design-works-at-supabase/design-at-supabase-thumb.jpg
---
After three years, only now are we figuring out “what design is” for Supabase and how it functions in the wider org.
diff --git a/apps/www/_blog/2023-12-08-postgres-language-server-implementing-parser.mdx b/apps/www/_blog/2023-12-08-postgres-language-server-implementing-parser.mdx
index dbd4c4a142f..c7a8ba37a0f 100644
--- a/apps/www/_blog/2023-12-08-postgres-language-server-implementing-parser.mdx
+++ b/apps/www/_blog/2023-12-08-postgres-language-server-implementing-parser.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-12-08'
toc_depth: 3
author: philipp
-image: lwx-postgres-language-server/postgres-language-server-og-02.jpg
-thumb: lwx-postgres-language-server/postgres-language-server-thumb.jpg
+imgSocial: lwx-postgres-language-server/postgres-language-server-og-02.jpg
+imgThumb: lwx-postgres-language-server/postgres-language-server-thumb.jpg
---
During our previous Launch Week we [announced](https://news.ycombinator.com/item?id=37020610) the development of a [Postgres Language Server](https://github.com/supabase/postgres_lsp). The response was more enthusiastic than we imagined and we received some excellent ideas.
diff --git a/apps/www/_blog/2023-12-11-studio-introducing-assistant.mdx b/apps/www/_blog/2023-12-11-studio-introducing-assistant.mdx
index 3f5415e4ae7..412ea8bdee6 100644
--- a/apps/www/_blog/2023-12-11-studio-introducing-assistant.mdx
+++ b/apps/www/_blog/2023-12-11-studio-introducing-assistant.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-12-11'
toc_depth: 3
author: alaister,ivasilov,joshenlim
-image: launch-week-x/day-1/day-1-supabase-assistant-thumb.png
-thumb: launch-week-x/day-1/day-1-supabase-assistant-og.png
+imgSocial: launch-week-x/day-1/day-1-supabase-assistant-thumb.jpg
+imgThumb: launch-week-x/day-1/day-1-supabase-assistant-og.png
---
During the previous Launch Week we introduced text-to-sql in the SQL Editor within Supabase Studio. This was our first step towards a full AI Assistant.
diff --git a/apps/www/_blog/2023-12-12-edge-functions-node-npm.mdx b/apps/www/_blog/2023-12-12-edge-functions-node-npm.mdx
index bdc6fa829b3..525e3f76bcc 100644
--- a/apps/www/_blog/2023-12-12-edge-functions-node-npm.mdx
+++ b/apps/www/_blog/2023-12-12-edge-functions-node-npm.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-12-12'
toc_depth: 3
author: laktek,andreespirela
-image: launch-week-x/day-2/og-edge-runtime.png
-thumb: launch-week-x/day-2/edge-runtime-thumb.png
+imgSocial: launch-week-x/day-2/og-edge-runtime.png
+imgThumb: launch-week-x/day-2/edge-runtime-thumb.png
---
We are excited to announce that [Edge Functions](https://supabase.com/docs/guides/functions) now natively supports npm modules and Node built-in APIs. You can directly import millions of popular, commonly used npm modules into your Edge Functions.
diff --git a/apps/www/_blog/2023-12-12-pg-graphql-postgres-functions.mdx b/apps/www/_blog/2023-12-12-pg-graphql-postgres-functions.mdx
index a21ab94c096..081f6a71f89 100644
--- a/apps/www/_blog/2023-12-12-pg-graphql-postgres-functions.mdx
+++ b/apps/www/_blog/2023-12-12-pg-graphql-postgres-functions.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-12-12'
toc_depth: 3
author: oli_rice
-image: lwx-pg-graphql/pg-graphql-og.png
-thumb: lwx-pg-graphql/pg-graphql-thumb.png
+imgSocial: lwx-pg-graphql/pg-graphql-og.png
+imgThumb: lwx-pg-graphql/pg-graphql-thumb.png
---
Supabase GraphQL (pg_graphql) 1.4+ supports the most requested feature: Postgres functions a.k.a. User Defined Functions (UDFs). This addition marks a significant improvement in GraphQL flexibility at Supabase, both as a novel approach to defining entry points into the Graph and as an escape hatch for users to implement custom/complex operations.
diff --git a/apps/www/_blog/2023-12-13-postgrest-12.mdx b/apps/www/_blog/2023-12-13-postgrest-12.mdx
index 65d088451a2..10c97e425c9 100644
--- a/apps/www/_blog/2023-12-13-postgrest-12.mdx
+++ b/apps/www/_blog/2023-12-13-postgrest-12.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-12-13'
toc_depth: 3
author: oli_rice
-image: lwx-postgrest-12/postgrest12-OG.png
-thumb: lwx-postgrest-12/postgrest12-thumb.png
+imgSocial: lwx-postgrest-12/postgrest12-OG.png
+imgThumb: lwx-postgrest-12/postgrest12-thumb.png
---
PostgREST 12 is out. In this post, we'll focus on a few of the major features. For the complete list, check out the [release on GitHub](https://github.com/PostgREST/postgrest/releases/tag/v12.0.0).
diff --git a/apps/www/_blog/2023-12-13-supabase-branching.mdx b/apps/www/_blog/2023-12-13-supabase-branching.mdx
index efd7028ee95..f2cf22faea7 100644
--- a/apps/www/_blog/2023-12-13-supabase-branching.mdx
+++ b/apps/www/_blog/2023-12-13-supabase-branching.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-12-13'
toc_depth: 3
author: qiao,jonny
-image: lwx-supabase-branching/branching-og.png
-thumb: lwx-supabase-branching/branching-thumb.png
+imgSocial: lwx-supabase-branching/branching-og.png
+imgThumb: lwx-supabase-branching/branching-thumb.png
---
A few months ago we mentioned that we were working on Branching with a (somewhat ambitious) early-access form.
diff --git a/apps/www/_blog/2023-12-13-supavisor-postgres-connection-pooler.mdx b/apps/www/_blog/2023-12-13-supavisor-postgres-connection-pooler.mdx
index 24f2c56756c..cfd5203a6a2 100644
--- a/apps/www/_blog/2023-12-13-supavisor-postgres-connection-pooler.mdx
+++ b/apps/www/_blog/2023-12-13-supavisor-postgres-connection-pooler.mdx
@@ -12,8 +12,8 @@ tags:
date: '2023-12-13'
toc_depth: 3
author: stas
-image: lwx-supavisor/supavisor-og.png
-thumb: lwx-supavisor/supavisor-thumb.png
+imgSocial: lwx-supavisor/supavisor-og.png
+imgThumb: lwx-supavisor/supavisor-thumb.png
---
After [launching Supavisor in August](https://supabase.com/blog/supavisor-1-million), we've successfully migrated all projects on the platform. Every new Supabase project launched now gets a Supavisor connection string to use for connection pooling.
diff --git a/apps/www/_blog/2023-12-14-supabase-auth-identity-linking-hooks.mdx b/apps/www/_blog/2023-12-14-supabase-auth-identity-linking-hooks.mdx
index 06cad16ee19..dd4f8f06814 100644
--- a/apps/www/_blog/2023-12-14-supabase-auth-identity-linking-hooks.mdx
+++ b/apps/www/_blog/2023-12-14-supabase-auth-identity-linking-hooks.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-12-14'
toc_depth: 3
author: stojan,joel,kangmingtay
-image: lwx-supabase-auth/auth-og.png
-thumb: lwx-supabase-auth/auth-thumb.png
+imgSocial: lwx-supabase-auth/auth-og.png
+imgThumb: lwx-supabase-auth/auth-thumb.png
---
We're excited to announce four new features for Supabase Auth:
diff --git a/apps/www/_blog/2023-12-14-supabase-wrappers-v02.mdx b/apps/www/_blog/2023-12-14-supabase-wrappers-v02.mdx
index 3f42afc202f..f9ca4895bc4 100644
--- a/apps/www/_blog/2023-12-14-supabase-wrappers-v02.mdx
+++ b/apps/www/_blog/2023-12-14-supabase-wrappers-v02.mdx
@@ -11,8 +11,8 @@ tags:
date: '2023-12-14'
toc_depth: 3
author: bo_lu
-image: lwx-wrappers/wrappers-OG.png
-thumb: lwx-wrappers/wrappers-thumb.png
+imgSocial: lwx-wrappers/wrappers-OG.png
+imgThumb: lwx-wrappers/wrappers-thumb.png
---
Supabase Wrappers v0.2 is out and now available on the Supabase platform. Wrappers is a Postgres extension that provides integrations with external sources so you can interact with third-party data using SQL.
diff --git a/apps/www/_blog/2023-12-15-client-libraries-v2.mdx b/apps/www/_blog/2023-12-15-client-libraries-v2.mdx
index c3da42d147f..e330e1772ef 100644
--- a/apps/www/_blog/2023-12-15-client-libraries-v2.mdx
+++ b/apps/www/_blog/2023-12-15-client-libraries-v2.mdx
@@ -9,8 +9,8 @@ tags:
date: '2023-12-15'
toc_depth: 3
author: tyler_shukert,andrew_smith,thor_schaeff
-image: lwx-client-libs/client-libs-OG.png
-thumb: lwx-client-libs/client-libs-thumb.png
+imgSocial: lwx-client-libs/client-libs-OG.png
+imgThumb: lwx-client-libs/client-libs-thumb.png
---
Here is what you need to know:
diff --git a/apps/www/_blog/2023-12-15-introducing-read-replicas.mdx b/apps/www/_blog/2023-12-15-introducing-read-replicas.mdx
index 61d28325867..a2f131858f6 100644
--- a/apps/www/_blog/2023-12-15-introducing-read-replicas.mdx
+++ b/apps/www/_blog/2023-12-15-introducing-read-replicas.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-12-15'
toc_depth: 3
author: angelico_de_los_reyes
-image: lwx-read-replicas/introducing-read-replicas-og.png
-thumb: lwx-read-replicas/read-replicas-thumb.png
+imgSocial: lwx-read-replicas/introducing-read-replicas-og.png
+imgThumb: lwx-read-replicas/read-replicas-thumb.png
---
Today, we are launching support for Postgres Read Replicas. You can use Read Replicas to:
diff --git a/apps/www/_blog/2023-12-15-postgres-on-fly-by-supabase.mdx b/apps/www/_blog/2023-12-15-postgres-on-fly-by-supabase.mdx
index e07e609eb7f..e19d2c3ddaa 100644
--- a/apps/www/_blog/2023-12-15-postgres-on-fly-by-supabase.mdx
+++ b/apps/www/_blog/2023-12-15-postgres-on-fly-by-supabase.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-12-15'
toc_depth: 3
author: inian,paul_copplestone
-image: lwx-supafly/fly-postgres-og.png
-thumb: lwx-supafly/fly-postgres-thumb.png
+imgSocial: lwx-supafly/fly-postgres-og.png
+imgThumb: lwx-supafly/fly-postgres-thumb.png
---
diff --git a/apps/www/_blog/2023-12-19-launch-week-x-best-launches.mdx b/apps/www/_blog/2023-12-19-launch-week-x-best-launches.mdx
index ab4d82d7423..dd2099d496c 100644
--- a/apps/www/_blog/2023-12-19-launch-week-x-best-launches.mdx
+++ b/apps/www/_blog/2023-12-19-launch-week-x-best-launches.mdx
@@ -10,8 +10,8 @@ tags:
date: '2023-12-19'
toc_depth: 3
author: paul_copplestone
-image: lwx-best-launches/top-10-og.png
-thumb: lwx-best-launches/top-10-thumb.png
+imgSocial: lwx-best-launches/top-10-og.png
+imgThumb: lwx-best-launches/top-10-thumb.png
---
This launch week was unique. We had so much content that we decided to do a “main stage”, with five major features, and a “build stage” with additional content. It's a lot to digest, so here are 10 of my favorites.
diff --git a/apps/www/_blog/2024-01-04-launch-week-x-hackathon-winners.mdx b/apps/www/_blog/2024-01-04-launch-week-x-hackathon-winners.mdx
index 4b7ea9b1f6a..d072f9b7eb0 100644
--- a/apps/www/_blog/2024-01-04-launch-week-x-hackathon-winners.mdx
+++ b/apps/www/_blog/2024-01-04-launch-week-x-hackathon-winners.mdx
@@ -10,8 +10,8 @@ tags:
date: '2024-01-04'
toc_depth: 3
author: andrew_smith,tyler_shukert
-image: lwx-hackathon-winners/lwx-hackathon-winners.png
-thumb: lwx-hackathon-winners/lwx-hackathon-winners.png
+imgSocial: lwx-hackathon-winners/lwx-hackathon-winners.png
+imgThumb: lwx-hackathon-winners/lwx-hackathon-winners.png
---
We ended 2023 shipping tons of features in [Launch Week X](https://supabase.com/launch-week), but the fun hasn’t ended yet, because we get to announce the winners of our [LWX Hackathon](https://supabase.com/blog/supabase-hackathon-lwx)!
diff --git a/apps/www/_blog/2024-01-05-beta-update-december-2023.mdx b/apps/www/_blog/2024-01-05-beta-update-december-2023.mdx
index 46a0779baef..285baf0f5cf 100644
--- a/apps/www/_blog/2024-01-05-beta-update-december-2023.mdx
+++ b/apps/www/_blog/2024-01-05-beta-update-december-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta December 2023
description: 'A Launch Week X rundown with all the fantastic goodies we shipped'
author: ant_wilson
-image: beta-update-december-2023/monthly-update-december-2023.jpg
-thumb: beta-update-december-2023/monthly-update-december-2023.jpg
+imgSocial: beta-update-december-2023/monthly-update-december-2023.jpg
+imgThumb: beta-update-december-2023/monthly-update-december-2023.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-01-09-elixir-clustering-using-postgres.mdx b/apps/www/_blog/2024-01-09-elixir-clustering-using-postgres.mdx
index 79a425993ea..01a7117f44b 100644
--- a/apps/www/_blog/2024-01-09-elixir-clustering-using-postgres.mdx
+++ b/apps/www/_blog/2024-01-09-elixir-clustering-using-postgres.mdx
@@ -2,8 +2,8 @@
title: Elixir clustering using Postgres
description: 'Learn about our approach to connecting multiple nodes in Elixir using Postgres'
author: filipe
-image: elixir-clustering-using-postgres/elixir-clustering-OG.jpg
-thumb: elixir-clustering-using-postgres/elixir-clustering-thumb.jpg
+imgSocial: elixir-clustering-using-postgres/elixir-clustering-OG.jpg
+imgThumb: elixir-clustering-using-postgres/elixir-clustering-thumb.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-01-12-react-query-nextjs-app-router-cache-helpers.mdx b/apps/www/_blog/2024-01-12-react-query-nextjs-app-router-cache-helpers.mdx
index 3d897524218..41cb052d16d 100644
--- a/apps/www/_blog/2024-01-12-react-query-nextjs-app-router-cache-helpers.mdx
+++ b/apps/www/_blog/2024-01-12-react-query-nextjs-app-router-cache-helpers.mdx
@@ -9,8 +9,8 @@ tags:
date: '2024-01-12'
toc_depth: 3
author: giancarlo,philipp,thor_schaeff
-image: 2024-01-12-react-query/react-query-nextjs-supabase.png
-thumb: 2024-01-12-react-query/react-query-nextjs-supabase.png
+imgSocial: 2024-01-12-react-query/react-query-nextjs-supabase.png
+imgThumb: 2024-01-12-react-query/react-query-nextjs-supabase.png
---
[TanStack Query](https://tanstack.com/query/latest), also known as React Query, is an open source state management library for React which handles caching, background updates and stale data out of the box with zero-configuration, which makes it an ideal tool to pair with [supabase-js](/docs/reference/javascript/introduction) and our auto-generated [REST API](/docs/guides/api)!
diff --git a/apps/www/_blog/2024-01-16-ipv6.mdx b/apps/www/_blog/2024-01-16-ipv6.mdx
index 1b741336fd1..876abe24092 100644
--- a/apps/www/_blog/2024-01-16-ipv6.mdx
+++ b/apps/www/_blog/2024-01-16-ipv6.mdx
@@ -10,8 +10,8 @@ tags:
date: '2024-01-12'
toc_depth: 3
author: paul_copplestone
-image: 2024/ipv6/ipv4-ipv6.png
-thumb: 2024/ipv6/ipv4-ipv6.png
+imgSocial: 2024/ipv6/ipv4-ipv6.png
+imgThumb: 2024/ipv6/ipv4-ipv6.png
---
On February 1st 2024, AWS will [start charging for IPv4 addresses](https://aws.amazon.com/blogs/aws/new-aws-public-ipv4-address-charge-public-ip-insights/). This will cost $0.005 per hour - around $4 month.
diff --git a/apps/www/_blog/2024-01-17-what-is-saml-authentication.mdx b/apps/www/_blog/2024-01-17-what-is-saml-authentication.mdx
index 4672e464baf..db572a38dfd 100644
--- a/apps/www/_blog/2024-01-17-what-is-saml-authentication.mdx
+++ b/apps/www/_blog/2024-01-17-what-is-saml-authentication.mdx
@@ -2,8 +2,8 @@
title: What is SAML? A practical guide to the authentication protocol
description: Learn what is SAML authentication, how it differentiates from SSO, SAML with Postgres, and more.
author: kangmingtay
-image: what-is-saml/what-is-saml-og.png
-thumb: what-is-saml/what-is-saml-thumb.png
+imgSocial: what-is-saml/what-is-saml-og.png
+imgThumb: what-is-saml/what-is-saml-thumb.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-01-22-laravel-postgres.mdx b/apps/www/_blog/2024-01-22-laravel-postgres.mdx
index 0faeabeb68b..cb29130b4e3 100644
--- a/apps/www/_blog/2024-01-22-laravel-postgres.mdx
+++ b/apps/www/_blog/2024-01-22-laravel-postgres.mdx
@@ -2,8 +2,8 @@
title: Getting started with Laravel and Postgres
description: 'Learn how to create a new Laravel PHP app and connect it to a Supabase PostgreSQL database.'
author: thor_schaeff
-image: getting-started/laravel/laravel.jpg
-thumb: getting-started/laravel/laravel.jpg
+imgSocial: getting-started/laravel/laravel.jpg
+imgThumb: getting-started/laravel/laravel.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-01-24-how-pg-graphql-works.mdx b/apps/www/_blog/2024-01-24-how-pg-graphql-works.mdx
index cdfd1cb98f0..2df127057df 100644
--- a/apps/www/_blog/2024-01-24-how-pg-graphql-works.mdx
+++ b/apps/www/_blog/2024-01-24-how-pg-graphql-works.mdx
@@ -2,8 +2,8 @@
title: How pg_graphql works
description: 'An insight into the internals of GraphQL in Postgres using pg_graphql, and how you can contribute.'
author: raminder_singh
-image: how-pg-graphql-works/og.png
-thumb: how-pg-graphql-works/thumb.png
+imgSocial: how-pg-graphql-works/og.png
+imgThumb: how-pg-graphql-works/thumb.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-01-26-flutter-figma-clone.mdx b/apps/www/_blog/2024-01-26-flutter-figma-clone.mdx
index 51c2c615d3f..0b44d2423aa 100644
--- a/apps/www/_blog/2024-01-26-flutter-figma-clone.mdx
+++ b/apps/www/_blog/2024-01-26-flutter-figma-clone.mdx
@@ -2,8 +2,8 @@
title: Create a Figma Clone app with Flutter and Supabase Realtime
description: 'A tutorial on how to build a collaborative design app like Figma using Flutter and Supabase Realtime.'
author: tyler_shukert
-image: flutter-figma-clone/figma-clone-og.jpg
-thumb: flutter-figma-clone/figma-clone-og.jpg
+imgSocial: flutter-figma-clone/figma-clone-og.jpg
+imgThumb: flutter-figma-clone/figma-clone-og.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-01-29-ruby-on-rails-postgres.mdx b/apps/www/_blog/2024-01-29-ruby-on-rails-postgres.mdx
index 1cb36510eca..d09f6a895b7 100644
--- a/apps/www/_blog/2024-01-29-ruby-on-rails-postgres.mdx
+++ b/apps/www/_blog/2024-01-29-ruby-on-rails-postgres.mdx
@@ -2,8 +2,8 @@
title: Getting started with Ruby on Rails and Postgres on Supabase
description: 'Learn how to create a new Rails app and connect it to a Supabase Postgres database.'
author: thor_schaeff
-image: getting-started/rails/rails.jpg
-thumb: getting-started/rails/rails.jpg
+imgSocial: getting-started/rails/rails.jpg
+imgThumb: getting-started/rails/rails.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-01-30-pgvector-fast-builds.mdx b/apps/www/_blog/2024-01-30-pgvector-fast-builds.mdx
index 1881559ed37..163907322ae 100644
--- a/apps/www/_blog/2024-01-30-pgvector-fast-builds.mdx
+++ b/apps/www/_blog/2024-01-30-pgvector-fast-builds.mdx
@@ -2,8 +2,8 @@
title: 'pgvector 0.6.0: 30x faster with parallel index builds'
description: 'pgvector 0.6.0 brings a significant improvement: parallel index builds for HNSW. Building an HNSW index is now up to 30x faster for unlogged tables.'
author: egor_romanov
-image: 2024-01-30-pgvector-fast-builds/pgvector6.png
-thumb: 2024-01-30-pgvector-fast-builds/pgvector6.png
+imgSocial: 2024-01-30-pgvector-fast-builds/pgvector6.png
+imgThumb: 2024-01-30-pgvector-fast-builds/pgvector6.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-01-31-nosql-mongodb-compatibility-with-ferretdb-and-flydotio.mdx b/apps/www/_blog/2024-01-31-nosql-mongodb-compatibility-with-ferretdb-and-flydotio.mdx
index afbbb315708..7d62d103765 100644
--- a/apps/www/_blog/2024-01-31-nosql-mongodb-compatibility-with-ferretdb-and-flydotio.mdx
+++ b/apps/www/_blog/2024-01-31-nosql-mongodb-compatibility-with-ferretdb-and-flydotio.mdx
@@ -2,8 +2,8 @@
title: 'NoSQL Postgres: Add MongoDB compatibility to your Supabase projects with FerretDB'
description: 'NoSQL Postgres: Add MongoDB compatibility to your Supabase projects with FerretDB'
author: thor_schaeff
-image: getting-started/ferretdb/ferretdb.jpg
-thumb: getting-started/ferretdb/ferretdb.jpg
+imgSocial: getting-started/ferretdb/ferretdb.jpg
+imgThumb: getting-started/ferretdb/ferretdb.jpg
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-02-13-matryoshka-embeddings.mdx b/apps/www/_blog/2024-02-13-matryoshka-embeddings.mdx
index d937b3482f2..a65ec932391 100644
--- a/apps/www/_blog/2024-02-13-matryoshka-embeddings.mdx
+++ b/apps/www/_blog/2024-02-13-matryoshka-embeddings.mdx
@@ -2,8 +2,8 @@
title: 'Matryoshka embeddings: faster OpenAI vector search using Adaptive Retrieval'
description: Use Adaptive Retrieval to improve query performance with OpenAI's new embedding models
author: gregnr,egor_romanov
-image: 2024-02-13-matryoshka-embeddings/matryoshka-embeddings-og.png
-thumb: 2024-02-13-matryoshka-embeddings/matryoshka-embeddings-thumb.png
+imgSocial: 2024-02-13-matryoshka-embeddings/matryoshka-embeddings-og.png
+imgThumb: 2024-02-13-matryoshka-embeddings/matryoshka-embeddings-thumb.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-02-21-automating-performance-tests.mdx b/apps/www/_blog/2024-02-21-automating-performance-tests.mdx
index a8ad56ebfea..d79879cc326 100644
--- a/apps/www/_blog/2024-02-21-automating-performance-tests.mdx
+++ b/apps/www/_blog/2024-02-21-automating-performance-tests.mdx
@@ -2,8 +2,8 @@
title: 'Automating performance tests'
description: Learn about our story to get to the automated performance testing.
author: egor_romanov
-image: 2024-02-21-automating-performance-tests/automating-performance-tests-OG.png
-thumb: 2024-02-21-automating-performance-tests/automating-performance-tests-OG.png
+imgSocial: 2024-02-21-automating-performance-tests/automating-performance-tests-OG.png
+imgThumb: 2024-02-21-automating-performance-tests/automating-performance-tests-OG.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-02-26-content-recommendation-with-flutter.mdx b/apps/www/_blog/2024-02-26-content-recommendation-with-flutter.mdx
index 23dcafeaf6a..4f4b7ae925b 100644
--- a/apps/www/_blog/2024-02-26-content-recommendation-with-flutter.mdx
+++ b/apps/www/_blog/2024-02-26-content-recommendation-with-flutter.mdx
@@ -2,8 +2,8 @@
title: 'Build a content recommendation app with Flutter and OpenAI'
description: Build a movie-viewing app that recommends another movie based on what the user is viewing using OpenAI, Flutter and Supabase.
author: tyler_shukert
-image: 2024-02-26-content-recommendation-with-flutter/og.png
-thumb: 2024-02-26-content-recommendation-with-flutter/og.png
+imgSocial: 2024-02-26-content-recommendation-with-flutter/og.png
+imgThumb: 2024-02-26-content-recommendation-with-flutter/og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-02-29-postgrest-aggregate-functions.mdx b/apps/www/_blog/2024-02-29-postgrest-aggregate-functions.mdx
index 035a61055dc..dda48c4a5b5 100644
--- a/apps/www/_blog/2024-02-29-postgrest-aggregate-functions.mdx
+++ b/apps/www/_blog/2024-02-29-postgrest-aggregate-functions.mdx
@@ -2,8 +2,8 @@
title: 'PostgREST Aggregate Functions'
description: 'Summarize your data by performing calculations across groups of rows in PostgREST'
author: timabdulla
-image: aggregate_functions_og.jpg
-thumb: aggregate_functions_og.jpg
+imgSocial: aggregate_functions_og.jpg
+imgThumb: aggregate_functions_og.jpg
categories:
- postgrest
tags:
diff --git a/apps/www/_blog/2024-03-26-semantic-image-search-amazon-bedrock.mdx b/apps/www/_blog/2024-03-26-semantic-image-search-amazon-bedrock.mdx
index 5864fbeb64a..3cdb5755814 100644
--- a/apps/www/_blog/2024-03-26-semantic-image-search-amazon-bedrock.mdx
+++ b/apps/www/_blog/2024-03-26-semantic-image-search-amazon-bedrock.mdx
@@ -2,8 +2,8 @@
title: 'Implementing semantic image search with Amazon Titan and Supabase Vector'
description: 'Implementing semantic image search with Amazon Titan and Supabase Vector in Python.'
author: thor_schaeff
-image: getting-started/amazon-bedrock/amazon-bedrock-supabase-vecs.png
-thumb: getting-started/amazon-bedrock/amazon-bedrock-supabase-vecs.png
+imgSocial: getting-started/amazon-bedrock/amazon-bedrock-supabase-vecs.png
+imgThumb: getting-started/amazon-bedrock/amazon-bedrock-supabase-vecs.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-04-01-pg-paper-dump.mdx b/apps/www/_blog/2024-04-01-pg-paper-dump.mdx
index e7ba9c8f17d..038ea35956a 100644
--- a/apps/www/_blog/2024-04-01-pg-paper-dump.mdx
+++ b/apps/www/_blog/2024-04-01-pg-paper-dump.mdx
@@ -2,8 +2,8 @@
title: Announcing Data Preservation Service
description: Secure, reliable and timeless backups
author: long
-image: 2024-04-01-pg-paper-dump/pg-paper-dump-thumb.png
-thumb: 2024-04-01-pg-paper-dump/pg-paper-dump-thumb.png
+imgSocial: 2024-04-01-pg-paper-dump/pg-paper-dump-thumb.png
+imgThumb: 2024-04-01-pg-paper-dump/pg-paper-dump-thumb.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2024-04-11-postgres-roles-and-privileges.mdx b/apps/www/_blog/2024-04-11-postgres-roles-and-privileges.mdx
index 85e23887fec..97606ab3561 100644
--- a/apps/www/_blog/2024-04-11-postgres-roles-and-privileges.mdx
+++ b/apps/www/_blog/2024-04-11-postgres-roles-and-privileges.mdx
@@ -2,8 +2,8 @@
title: Postgres Roles and Privileges
description: A guide to Postgres roles and privileges
author: raminder_singh
-image: 2024-04-11-postgres-roles/pg-roles-og.png
-thumb: 2024-04-11-postgres-roles/pg-roles-og.png
+imgSocial: 2024-04-11-postgres-roles/pg-roles-og.png
+imgThumb: 2024-04-11-postgres-roles/pg-roles-og.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-04-12-supabase-oss-hackathon.mdx b/apps/www/_blog/2024-04-12-supabase-oss-hackathon.mdx
index d6503f72e52..ff0a98918e2 100644
--- a/apps/www/_blog/2024-04-12-supabase-oss-hackathon.mdx
+++ b/apps/www/_blog/2024-04-12-supabase-oss-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Open Source Hackathon 2024'
description: Build an Open Source Project over 10 days. 5 prize categories.
author: ant_wilson
-image: oss-hackathon/thumbnail.png
-thumb: oss-hackathon/thumbnail.png
+imgSocial: oss-hackathon/thumbnail.png
+imgThumb: oss-hackathon/thumbnail.png
launchweek: '11'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-04-15-branching-publicly-available.mdx b/apps/www/_blog/2024-04-15-branching-publicly-available.mdx
index 300a35f38a2..7f4bfe4900a 100644
--- a/apps/www/_blog/2024-04-15-branching-publicly-available.mdx
+++ b/apps/www/_blog/2024-04-15-branching-publicly-available.mdx
@@ -2,8 +2,8 @@
title: 'Branching now Publicly Available'
description: 'Supabase Branching is now available on Pro Plan and above.'
author: alaister,qiao
-image: ga-week/branching-publicly-available/og.png
-thumb: ga-week/branching-publicly-available/thumb.png
+imgSocial: ga-week/branching-publicly-available/og.png
+imgThumb: ga-week/branching-publicly-available/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-15-supabase-acquires-oriole.mdx b/apps/www/_blog/2024-04-15-supabase-acquires-oriole.mdx
index 822952e002b..191f1232e00 100644
--- a/apps/www/_blog/2024-04-15-supabase-acquires-oriole.mdx
+++ b/apps/www/_blog/2024-04-15-supabase-acquires-oriole.mdx
@@ -2,8 +2,8 @@
title: 'Oriole joins Supabase'
description: 'The Oriole team are joining Supabase to build a faster storage engine for Postgres.'
author: paul_copplestone
-image: launch-week-11/oriole/og.png
-thumb: launch-week-11/oriole/thumb.png
+imgSocial: launch-week-11/oriole/og.png
+imgThumb: launch-week-11/oriole/thumb.png
categories:
- company
tags:
diff --git a/apps/www/_blog/2024-04-15-supabase-aws-marketplace.mdx b/apps/www/_blog/2024-04-15-supabase-aws-marketplace.mdx
index 19e055bf72f..b709a604a91 100644
--- a/apps/www/_blog/2024-04-15-supabase-aws-marketplace.mdx
+++ b/apps/www/_blog/2024-04-15-supabase-aws-marketplace.mdx
@@ -2,8 +2,8 @@
title: 'Supabase on the AWS Marketplace'
description: 'Supabase is now available on the AWS Marketplace, Simplifying Procurement for Enterprise Customers.'
author: chris_chandler
-image: ga-week/aws-marketplace/og.png
-thumb: ga-week/aws-marketplace/thumb.png
+imgSocial: ga-week/aws-marketplace/og.png
+imgThumb: ga-week/aws-marketplace/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-15-supabase-bootstrap.mdx b/apps/www/_blog/2024-04-15-supabase-bootstrap.mdx
index 8e6ad27520e..a2e2879256c 100644
--- a/apps/www/_blog/2024-04-15-supabase-bootstrap.mdx
+++ b/apps/www/_blog/2024-04-15-supabase-bootstrap.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Bootstrap: the fastest way to launch a new project'
description: 'Launch a new hosted Supabase project directly from the CLI using pre-built applications.'
author: qiao,thor_schaeff
-image: ga-week/bootstrap/og.png
-thumb: ga-week/bootstrap/thumb.png
+imgSocial: ga-week/bootstrap/og.png
+imgThumb: ga-week/bootstrap/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-15-supabase-swift.mdx b/apps/www/_blog/2024-04-15-supabase-swift.mdx
index cebd74ba44c..3121241e41f 100644
--- a/apps/www/_blog/2024-04-15-supabase-swift.mdx
+++ b/apps/www/_blog/2024-04-15-supabase-swift.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Swift'
description: 'Supabase Swift is now officially supported.'
author: grdsdev
-image: launch-week-11/swift/og.png
-thumb: launch-week-11/swift/thumb.png
+imgSocial: launch-week-11/swift/og.png
+imgThumb: launch-week-11/swift/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-16-ai-inference-now-available-in-supabase-edge-functions.mdx b/apps/www/_blog/2024-04-16-ai-inference-now-available-in-supabase-edge-functions.mdx
index 67f2ff5f276..915e4da30f1 100644
--- a/apps/www/_blog/2024-04-16-ai-inference-now-available-in-supabase-edge-functions.mdx
+++ b/apps/www/_blog/2024-04-16-ai-inference-now-available-in-supabase-edge-functions.mdx
@@ -2,8 +2,8 @@
title: 'AI Inference now available in Supabase Edge Functions'
description: 'Use embeddings and large language models on the edge with Supabase Edge Functions.'
author: laktek
-image: ga-week/ai-inference-now-available-in-supabase-edge-functions/og.jpg
-thumb: ga-week/ai-inference-now-available-in-supabase-edge-functions/thumb.jpg
+imgSocial: ga-week/ai-inference-now-available-in-supabase-edge-functions/og.jpg
+imgThumb: ga-week/ai-inference-now-available-in-supabase-edge-functions/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-17-anonymous-sign-ins.mdx b/apps/www/_blog/2024-04-17-anonymous-sign-ins.mdx
index b3e6da9909e..86a26303481 100644
--- a/apps/www/_blog/2024-04-17-anonymous-sign-ins.mdx
+++ b/apps/www/_blog/2024-04-17-anonymous-sign-ins.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Auth now supports Anonymous Sign-ins'
description: 'Sign in as an anonymous user to authenticate with Supabase'
author: kangmingtay
-image: ga-week/anonymous-sign-ins/og.png
-thumb: ga-week/anonymous-sign-ins/thumb.png
+imgSocial: ga-week/anonymous-sign-ins/og.png
+imgThumb: ga-week/anonymous-sign-ins/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-18-s3-compatible-storage.mdx b/apps/www/_blog/2024-04-18-s3-compatible-storage.mdx
index e69f6fd2d60..ec657dd0033 100644
--- a/apps/www/_blog/2024-04-18-s3-compatible-storage.mdx
+++ b/apps/www/_blog/2024-04-18-s3-compatible-storage.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Storage: now supports the S3 protocol'
description: 'Supabase Storage is now officially an S3-Compatible Storage Provider.'
author: fabrizio
-image: ga-week/s3-compatible-storage/og.png?v=2
-thumb: ga-week/s3-compatible-storage/thumb.png?v=2
+imgSocial: ga-week/s3-compatible-storage/og.png?v=2
+imgThumb: ga-week/s3-compatible-storage/thumb.png?v=2
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-19-ga-week-summary.mdx b/apps/www/_blog/2024-04-19-ga-week-summary.mdx
index 7a3415fe68d..db760efabd9 100644
--- a/apps/www/_blog/2024-04-19-ga-week-summary.mdx
+++ b/apps/www/_blog/2024-04-19-ga-week-summary.mdx
@@ -2,8 +2,8 @@
title: 'Top 10 Launches from Supabase GA Week'
description: 'A recap of the most important launches and updates from the week.'
author: paul_copplestone
-image: ga-week/ga-week-summary/og.png
-thumb: ga-week/ga-week-summary/thumb.png
+imgSocial: ga-week/ga-week-summary/og.png
+imgThumb: ga-week/ga-week-summary/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-19-security-performance-advisor.mdx b/apps/www/_blog/2024-04-19-security-performance-advisor.mdx
index c9a34caddb8..dda27570698 100644
--- a/apps/www/_blog/2024-04-19-security-performance-advisor.mdx
+++ b/apps/www/_blog/2024-04-19-security-performance-advisor.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Security Advisor & Performance Advisor'
description: "We're making it easier to build a secure and high-performing application."
author: saltcod,oli_rice
-image: ga-week/security-peformance-advisor/og.png?v=3
-thumb: ga-week/security-peformance-advisor/thumb.png?v=3
+imgSocial: ga-week/security-peformance-advisor/og.png?v=3
+imgThumb: ga-week/security-peformance-advisor/thumb.png?v=3
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-04-25-exploring-support-tooling.mdx b/apps/www/_blog/2024-04-25-exploring-support-tooling.mdx
index 32fbf490f99..fc506262a2e 100644
--- a/apps/www/_blog/2024-04-25-exploring-support-tooling.mdx
+++ b/apps/www/_blog/2024-04-25-exploring-support-tooling.mdx
@@ -2,8 +2,8 @@
title: 'Exploring Support Tooling at Supabase: A Dive into SLA Buddy'
description: 'In this post, we explore the support tooling at Supabase, and how we use SLA Buddy to monitor our SLAs.'
author: rodrigo_mansueli
-image: 2024-04-25-exploring-support-tooling/slabuddy-og.png
-thumb: 2024-04-25-exploring-support-tooling/slabuddy-og.png
+imgSocial: 2024-04-25-exploring-support-tooling/slabuddy-og.png
+imgThumb: 2024-04-25-exploring-support-tooling/slabuddy-og.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-04-25-nix-postgres.mdx b/apps/www/_blog/2024-04-25-nix-postgres.mdx
index 4e25ed35f4a..9b9695aa45b 100644
--- a/apps/www/_blog/2024-04-25-nix-postgres.mdx
+++ b/apps/www/_blog/2024-04-25-nix-postgres.mdx
@@ -2,8 +2,8 @@
title: 'Packaging Supabase with Nix'
description: ''
author: samrose
-image: nix-postgres.png
-thumb: nix-postgres.png
+imgSocial: nix-postgres.png
+imgThumb: nix-postgres.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-04-26-postgres-bloat.mdx b/apps/www/_blog/2024-04-26-postgres-bloat.mdx
index 773719ea995..8b9a7a0e7a9 100644
--- a/apps/www/_blog/2024-04-26-postgres-bloat.mdx
+++ b/apps/www/_blog/2024-04-26-postgres-bloat.mdx
@@ -2,8 +2,8 @@
title: 'Postgres Bloat Minimization'
description: 'Understanding and minimizing Postgres table bloat'
author: pavel
-image: postgres-bloat.png
-thumb: postgres-bloat.png
+imgSocial: postgres-bloat.png
+imgThumb: postgres-bloat.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-04-30-supabase-oss-hackathon-winners.mdx b/apps/www/_blog/2024-04-30-supabase-oss-hackathon-winners.mdx
index 107df52cd4c..2baaa35b63a 100644
--- a/apps/www/_blog/2024-04-30-supabase-oss-hackathon-winners.mdx
+++ b/apps/www/_blog/2024-04-30-supabase-oss-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Open Source Hackathon 2024 winners'
description: Announcing the winners of the Open Source Hackathon 2024!
author: tyler_shukert
-image: oss-hackathon-winners/thumbnail.png
-thumb: oss-hackathon-winners/thumbnail.png
+imgSocial: oss-hackathon-winners/thumbnail.png
+imgThumb: oss-hackathon-winners/thumbnail.png
launchweek: '11'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-05-01-pgvector-0-7-0.mdx b/apps/www/_blog/2024-05-01-pgvector-0-7-0.mdx
index 0a89c0420e6..0795da519fa 100644
--- a/apps/www/_blog/2024-05-01-pgvector-0-7-0.mdx
+++ b/apps/www/_blog/2024-05-01-pgvector-0-7-0.mdx
@@ -2,8 +2,8 @@
title: "What's new in pgvector v0.7.0"
description: 'Exploring new features in pgvector v0.7.0'
author: pavel
-image: pgvector-0-7-0.png
-thumb: pgvector-0-7-0.png
+imgSocial: pgvector-0-7-0.png
+imgThumb: pgvector-0-7-0.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-05-09-meetup-kahoot-alternative.mdx b/apps/www/_blog/2024-05-09-meetup-kahoot-alternative.mdx
index 739a2063999..dfa9d446529 100644
--- a/apps/www/_blog/2024-05-09-meetup-kahoot-alternative.mdx
+++ b/apps/www/_blog/2024-05-09-meetup-kahoot-alternative.mdx
@@ -2,8 +2,8 @@
title: 'The open source Kahoot alternative'
description: How we built a Kahoot alternative for the Supabase community meetups.
author: tyler_shukert
-image: oss-kahoot-alternative/thumbnail.png
-thumb: oss-kahoot-alternative/thumbnail.png
+imgSocial: oss-kahoot-alternative/thumbnail.png
+imgThumb: oss-kahoot-alternative/thumbnail.png
launchweek: '11'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-06-18-calcom-platform-starter-kit-nextjs-supabase.mdx b/apps/www/_blog/2024-06-18-calcom-platform-starter-kit-nextjs-supabase.mdx
index cd38f0e7f3d..367a0850a6c 100644
--- a/apps/www/_blog/2024-06-18-calcom-platform-starter-kit-nextjs-supabase.mdx
+++ b/apps/www/_blog/2024-06-18-calcom-platform-starter-kit-nextjs-supabase.mdx
@@ -2,8 +2,8 @@
title: 'Cal.com launches Expert Marketplace built with Next.js and Supabase.'
description: Cal.com and Supabase team up to build an open-source platform starter kit for developers.
author: p6l-richard,PeerRich,thor_schaeff
-image: calcom_platform_starter/calcom_platform_starter_og.png
-thumb: calcom_platform_starter/calcom_platform_starter_og.png
+imgSocial: calcom_platform_starter/calcom_platform_starter_og.png
+imgThumb: calcom_platform_starter/calcom_platform_starter_og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-06-19-self-host-maps-storage-protomaps.mdx b/apps/www/_blog/2024-06-19-self-host-maps-storage-protomaps.mdx
index d97438d743e..37bb6b7d1de 100644
--- a/apps/www/_blog/2024-06-19-self-host-maps-storage-protomaps.mdx
+++ b/apps/www/_blog/2024-06-19-self-host-maps-storage-protomaps.mdx
@@ -2,8 +2,8 @@
title: 'Self-host Maps with Protomaps and Supabase Storage'
description: 'Host Protomaps PMTiles on Supabase Storage and render them with MapLibre GL.'
author: bdon,thor_schaeff
-image: protomaps_storage/protomaps_storage_og.png
-thumb: protomaps_storage/protomaps_storage_og.png
+imgSocial: protomaps_storage/protomaps_storage_og.png
+imgThumb: protomaps_storage/protomaps_storage_og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-06-26-postgis-generate-vector-tiles.mdx b/apps/www/_blog/2024-06-26-postgis-generate-vector-tiles.mdx
index af947c43ede..a2dc7a97f4a 100644
--- a/apps/www/_blog/2024-06-26-postgis-generate-vector-tiles.mdx
+++ b/apps/www/_blog/2024-06-26-postgis-generate-vector-tiles.mdx
@@ -2,8 +2,8 @@
title: 'Generate Vector Tiles with PostGIS'
description: 'Use PostGIS to programmatically generate Mapbox Vector Tiles and render them with MapLibre GL.'
author: bdon,thor_schaeff
-image: postgis_vector_tiles/overture_postgis_mvt.png
-thumb: postgis_vector_tiles/overture_postgis_mvt.png
+imgSocial: postgis_vector_tiles/overture_postgis_mvt.png
+imgThumb: postgis_vector_tiles/overture_postgis_mvt.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-07-04-postgres-realtime-location-sharing-with-maplibre.mdx b/apps/www/_blog/2024-07-04-postgres-realtime-location-sharing-with-maplibre.mdx
index 8f90d7d8e39..5f0166bfeeb 100644
--- a/apps/www/_blog/2024-07-04-postgres-realtime-location-sharing-with-maplibre.mdx
+++ b/apps/www/_blog/2024-07-04-postgres-realtime-location-sharing-with-maplibre.mdx
@@ -2,8 +2,8 @@
title: 'Postgres Realtime location sharing with MapLibre'
description: 'Use Supabase Realtime to draw live location data onto the map with MapLibre GL JS.'
author: thor_schaeff
-image: postgres_realtime_maplibre/postgres_realtime_maplibre.png
-thumb: postgres_realtime_maplibre/postgres_realtime_maplibre.png
+imgSocial: postgres_realtime_maplibre/postgres_realtime_maplibre.png
+imgThumb: postgres_realtime_maplibre/postgres_realtime_maplibre.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-07-11-hardening-supabase.mdx b/apps/www/_blog/2024-07-11-hardening-supabase.mdx
index 90f7ca0666c..e8f11e1b6a9 100644
--- a/apps/www/_blog/2024-07-11-hardening-supabase.mdx
+++ b/apps/www/_blog/2024-07-11-hardening-supabase.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Security Suite'
description: 'Learn how to use range columns in Postgres to simplify time-based queries and add constraints to prevent overlaps.'
author: paul_copplestone
-image: security-suite/hardening-og.png
-thumb: security-suite/hardening-thumb.png
+imgSocial: security-suite/hardening-og.png
+imgThumb: security-suite/hardening-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-07-11-range-columns.mdx b/apps/www/_blog/2024-07-11-range-columns.mdx
index c5c0dee5f79..b8c0cbf70da 100644
--- a/apps/www/_blog/2024-07-11-range-columns.mdx
+++ b/apps/www/_blog/2024-07-11-range-columns.mdx
@@ -2,8 +2,8 @@
title: 'Simplifying Time-Based Queries with Range Columns'
description: 'Learn how to use range columns in Postgres to simplify time-based queries and add constraints to prevent overlaps.'
author: tyler_shukert
-image: range-columns/range-columns-thumb.png
-thumb: range-columns/range-columns-thumb.png
+imgSocial: range-columns/range-columns-thumb.png
+imgThumb: range-columns/range-columns-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-07-16-supabase-js-on-jsr.mdx b/apps/www/_blog/2024-07-16-supabase-js-on-jsr.mdx
index eda923492fc..f5541abca29 100644
--- a/apps/www/_blog/2024-07-16-supabase-js-on-jsr.mdx
+++ b/apps/www/_blog/2024-07-16-supabase-js-on-jsr.mdx
@@ -2,8 +2,8 @@
title: 'Announcing Supabase on JSR'
description: 'Supabase is now available on the open source JavaScript Registry (JSR).'
author: soedirgo,thor_schaeff
-image: jsr_supabase/jsr_supabase.png
-thumb: jsr_supabase/jsr_supabase.png
+imgSocial: jsr_supabase/jsr_supabase.png
+imgThumb: jsr_supabase/jsr_supabase.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-08-12-github-copilot-extension-for-vs-code.mdx b/apps/www/_blog/2024-08-12-github-copilot-extension-for-vs-code.mdx
index a69492142f8..280d8cda7d3 100644
--- a/apps/www/_blog/2024-08-12-github-copilot-extension-for-vs-code.mdx
+++ b/apps/www/_blog/2024-08-12-github-copilot-extension-for-vs-code.mdx
@@ -2,8 +2,8 @@
title: Official Supabase extension for VS Code and GitHub Copilot
description: Today we're launching a new GitHub Copilot extension for VS Code to make your development with Supabase even more delightful.
author: anas-araid,thor_schaeff
-image: lw12/day-1/github_copilot_extension-og.png
-thumb: lw12/day-1/github_copilot_extension-thumb.png
+imgSocial: lw12/day-1/github_copilot_extension-og.png
+imgThumb: lw12/day-1/github_copilot_extension-thumb.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-12-postgres-new.mdx b/apps/www/_blog/2024-08-12-postgres-new.mdx
index 2983e31851a..0ad709aabb7 100644
--- a/apps/www/_blog/2024-08-12-postgres-new.mdx
+++ b/apps/www/_blog/2024-08-12-postgres-new.mdx
@@ -2,8 +2,8 @@
title: 'postgres.new: In-browser Postgres with an AI interface'
description: Introducing postgres.new, the in-browser Postgres sandbox with AI assistance.
author: gregnr
-image: lw12/day-1/postgres-new-og.png
-thumb: lw12/day-1/postgres-new-thumb.png
+imgSocial: lw12/day-1/postgres-new-og.png
+imgThumb: lw12/day-1/postgres-new-thumb.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-13-supabase-realtime-broadcast-and-presence-authorization.mdx b/apps/www/_blog/2024-08-13-supabase-realtime-broadcast-and-presence-authorization.mdx
index ed609a8ac26..818837af25c 100644
--- a/apps/www/_blog/2024-08-13-supabase-realtime-broadcast-and-presence-authorization.mdx
+++ b/apps/www/_blog/2024-08-13-supabase-realtime-broadcast-and-presence-authorization.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Realtime: Broadcast and Presence Authorization'
description: 'Secure Realtime Broadcast and Presence with Authorization'
author: filipe
-image: 2024-08-13-supabase-realtime-broadcast-and-presence-authorization/OG.png
-thumb: 2024-08-13-supabase-realtime-broadcast-and-presence-authorization/thumb.png
+imgSocial: 2024-08-13-supabase-realtime-broadcast-and-presence-authorization/OG.png
+imgThumb: 2024-08-13-supabase-realtime-broadcast-and-presence-authorization/thumb.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-14-snaplet-is-now-open-source.mdx b/apps/www/_blog/2024-08-14-snaplet-is-now-open-source.mdx
index e32ee586a0e..fc81a0ef4da 100644
--- a/apps/www/_blog/2024-08-14-snaplet-is-now-open-source.mdx
+++ b/apps/www/_blog/2024-08-14-snaplet-is-now-open-source.mdx
@@ -2,8 +2,8 @@
title: 'Snaplet is now open source'
description: 'Snaplet is closing their business and opening their source code'
author: paul_copplestone
-image: lw12/day-3/og-snaplet.png
-thumb: lw12/day-3/thumb-snaplet.png
+imgSocial: lw12/day-3/og-snaplet.png
+imgThumb: lw12/day-3/thumb-snaplet.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-14-third-party-auth-mfa-phone-send-hooks.mdx b/apps/www/_blog/2024-08-14-third-party-auth-mfa-phone-send-hooks.mdx
index fb43ce071ad..1e8ef886053 100644
--- a/apps/www/_blog/2024-08-14-third-party-auth-mfa-phone-send-hooks.mdx
+++ b/apps/www/_blog/2024-08-14-third-party-auth-mfa-phone-send-hooks.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Auth: Bring-your-own Auth0, Cognito, or Firebase'
description: 'Use Firebase Auth, Auth0 or AWS Cognito (Amplify) with your Supabase project, secure your users with SMS based MFA, and use send hooks.'
author: stojan
-image: lw12/third-party-auth/og.png
-thumb: lw12/third-party-auth/thumb.png
+imgSocial: lw12/third-party-auth/og.png
+imgThumb: lw12/third-party-auth/thumb.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-15-log-drains.mdx b/apps/www/_blog/2024-08-15-log-drains.mdx
index 69151c6e24a..83a27e20fa7 100644
--- a/apps/www/_blog/2024-08-15-log-drains.mdx
+++ b/apps/www/_blog/2024-08-15-log-drains.mdx
@@ -2,8 +2,8 @@
title: Introducing Log Drains
description: Log Drains for exporting product logs is now available under Public Alpha
author: ziinc
-image: lw12/day-4/log-drains-og.png
-thumb: lw12/day-4/log-drains-thumb.png
+imgSocial: lw12/day-4/log-drains-og.png
+imgThumb: lw12/day-4/log-drains-thumb.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-launch-week-12-top-10.mdx b/apps/www/_blog/2024-08-16-launch-week-12-top-10.mdx
index e7a78ac073e..a617c3abb84 100644
--- a/apps/www/_blog/2024-08-16-launch-week-12-top-10.mdx
+++ b/apps/www/_blog/2024-08-16-launch-week-12-top-10.mdx
@@ -2,8 +2,8 @@
title: 'Top 10 Launches of Launch Week 12'
description: Highlights from Launch Week 12
author: paul_copplestone
-image: lw12/day-5/OG_top-10-lw.png
-thumb: lw12/day-5/thumb_top-10-lw.png
+imgSocial: lw12/day-5/OG_top-10-lw.png
+imgThumb: lw12/day-5/thumb_top-10-lw.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-pg-graphql-1-5-7.mdx b/apps/www/_blog/2024-08-16-pg-graphql-1-5-7.mdx
index 34ecb3c522c..531c3afb09e 100644
--- a/apps/www/_blog/2024-08-16-pg-graphql-1-5-7.mdx
+++ b/apps/www/_blog/2024-08-16-pg-graphql-1-5-7.mdx
@@ -2,8 +2,8 @@
title: 'pg_graphql 1.5.7: pagination and multi-tenancy support'
description: Latest features of pg_graphql
author: oli_rice
-image: lw12/day-5/OG_pg_graphql.png
-thumb: lw12/day-5/thumb_pg_graphql.png
+imgSocial: lw12/day-5/OG_pg_graphql.png
+imgThumb: lw12/day-5/thumb_pg_graphql.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-platform-access-control.mdx b/apps/www/_blog/2024-08-16-platform-access-control.mdx
index 7e2de07613c..8a76fef667a 100644
--- a/apps/www/_blog/2024-08-16-platform-access-control.mdx
+++ b/apps/www/_blog/2024-08-16-platform-access-control.mdx
@@ -2,8 +2,8 @@
title: 'Introducing New Platform Access Control'
description: Granular permissions for adding users to specific projects in an Supabase organization.
author: hieu,joshenlim
-image: lw12/day-5/OG_platform-access-control.png
-thumb: lw12/day-5/thumb_platform-access-control.png
+imgSocial: lw12/day-5/OG_platform-access-control.png
+imgThumb: lw12/day-5/thumb_platform-access-control.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-postgres-foreign-data-wrappers-with-wasm.mdx b/apps/www/_blog/2024-08-16-postgres-foreign-data-wrappers-with-wasm.mdx
index 2fc000d3735..6ab177a4576 100644
--- a/apps/www/_blog/2024-08-16-postgres-foreign-data-wrappers-with-wasm.mdx
+++ b/apps/www/_blog/2024-08-16-postgres-foreign-data-wrappers-with-wasm.mdx
@@ -2,8 +2,8 @@
title: 'Postgres Foreign Data Wrappers with Wasm'
description: 'Build Wasm foreign data wrapper with Wrappers and use it on Supabase'
author: bo_lu
-image: lw12/day-5/OG_FDW-with-WASM.png
-thumb: lw12/day-5/thumb_FDW-with-WASM.png
+imgSocial: lw12/day-5/OG_FDW-with-WASM.png
+imgThumb: lw12/day-5/thumb_FDW-with-WASM.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-postgrest-12-2.mdx b/apps/www/_blog/2024-08-16-postgrest-12-2.mdx
index fa44468b183..04c147b7f8d 100644
--- a/apps/www/_blog/2024-08-16-postgrest-12-2.mdx
+++ b/apps/www/_blog/2024-08-16-postgrest-12-2.mdx
@@ -2,8 +2,8 @@
title: 'PostgREST 12.2: Prometheus metrics'
description: New features in the latest 12.2 release of PostgREST
author: steve_chavez
-image: lw12/day-5/OG_postgREST.png
-thumb: lw12/day-5/thumb_postgREST.png
+imgSocial: lw12/day-5/OG_postgREST.png
+imgThumb: lw12/day-5/thumb_postgREST.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-python-support.mdx b/apps/www/_blog/2024-08-16-python-support.mdx
index aa3d6ca33d2..41331880cea 100644
--- a/apps/www/_blog/2024-08-16-python-support.mdx
+++ b/apps/www/_blog/2024-08-16-python-support.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Python'
description: Supabase Python is now officially supported in Supabase.
author: grdsdev
-image: lw12/day-5/OG_python.png
-thumb: lw12/day-5/thumb_python.png
+imgSocial: lw12/day-5/OG_python.png
+imgThumb: lw12/day-5/thumb_python.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-supabase-book-by-david-lorenz.mdx b/apps/www/_blog/2024-08-16-supabase-book-by-david-lorenz.mdx
index 4bf3ccaa4f3..e369aa69f71 100644
--- a/apps/www/_blog/2024-08-16-supabase-book-by-david-lorenz.mdx
+++ b/apps/www/_blog/2024-08-16-supabase-book-by-david-lorenz.mdx
@@ -2,8 +2,8 @@
title: 'The Supabase Book by David Lorenz'
description: 'Learn Supabase by building a Multi-Tenant platform.'
author: activenode
-image: lw12/supabase-book/OG_supabase_book.png
-thumb: lw12/supabase-book/thumb_supabse_book.png
+imgSocial: lw12/supabase-book/OG_supabase_book.png
+imgThumb: lw12/supabase-book/thumb_supabse_book.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-16-vec2pg.mdx b/apps/www/_blog/2024-08-16-vec2pg.mdx
index 92d0c54d4ca..f49fc2b7f4b 100644
--- a/apps/www/_blog/2024-08-16-vec2pg.mdx
+++ b/apps/www/_blog/2024-08-16-vec2pg.mdx
@@ -2,8 +2,8 @@
title: 'vec2pg: Migrate to pgvector from Pinecone and Qdrant'
description: Migrate vector data from vector DBs to Supabase
author: oli_rice
-image: lw12/day-5/OG_vec2pg.png
-thumb: lw12/day-5/thumb_vec2pg.png
+imgSocial: lw12/day-5/OG_vec2pg.png
+imgThumb: lw12/day-5/thumb_vec2pg.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-21-mozilla-llamafile-in-supabase-edge-functions.mdx b/apps/www/_blog/2024-08-21-mozilla-llamafile-in-supabase-edge-functions.mdx
index d0d7080571c..bc1e52f33d3 100644
--- a/apps/www/_blog/2024-08-21-mozilla-llamafile-in-supabase-edge-functions.mdx
+++ b/apps/www/_blog/2024-08-21-mozilla-llamafile-in-supabase-edge-functions.mdx
@@ -2,8 +2,8 @@
title: 'Mozilla Llamafile in Supabase Edge Functions'
description: 'Use Mozilla Llamafile OpenAI API compatible server in Supabase Edge Functions.'
author: thor_schaeff
-image: mozilla-llamafile/mozilla-llamafile-og.png
-thumb: mozilla-llamafile/mozilla-llamafile-og.png
+imgSocial: mozilla-llamafile/mozilla-llamafile-og.png
+imgThumb: mozilla-llamafile/mozilla-llamafile-og.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-08-26-supabase-lw12-hackathon.mdx b/apps/www/_blog/2024-08-26-supabase-lw12-hackathon.mdx
index c1fb0c06047..3917b7f7132 100644
--- a/apps/www/_blog/2024-08-26-supabase-lw12-hackathon.mdx
+++ b/apps/www/_blog/2024-08-26-supabase-lw12-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Launch Week 12 Hackathon'
description: Build an Open Source Project over 10 days. 5 prize categories.
author: craig_cannon,tyler_shukert
-image: lw12/hackathon/thumbnail.png
-thumb: lw12/hackathon/thumbnail.png
+imgSocial: lw12/hackathon/thumbnail.png
+imgThumb: lw12/hackathon/thumbnail.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-08-28-supabase-vercel-partnership.mdx b/apps/www/_blog/2024-08-28-supabase-vercel-partnership.mdx
index 67218735298..80328c80b11 100644
--- a/apps/www/_blog/2024-08-28-supabase-vercel-partnership.mdx
+++ b/apps/www/_blog/2024-08-28-supabase-vercel-partnership.mdx
@@ -2,8 +2,8 @@
title: 'Supabase + Vercel Partnership'
description: "Vercel just added official First-Party Integrations. We're one of them."
author: kamil_ogorek,jonny
-image: vercel-supabase/vercel-supa-thumb.png
-thumb: vercel-supabase/vercel-supa-thumb.png
+imgSocial: vercel-supabase/vercel-supa-thumb.png
+imgThumb: vercel-supabase/vercel-supa-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-08-29-in-browser-semantic-search-pglite.mdx b/apps/www/_blog/2024-08-29-in-browser-semantic-search-pglite.mdx
index f9b7e4b9c2d..a838a5c0cba 100644
--- a/apps/www/_blog/2024-08-29-in-browser-semantic-search-pglite.mdx
+++ b/apps/www/_blog/2024-08-29-in-browser-semantic-search-pglite.mdx
@@ -2,8 +2,8 @@
title: 'In-Browser Semantic AI Search with PGlite and Transformers.js'
description: 'Use pgvector in PGlite and combine it with Huggingface Transformers.js for a fully local, in-browser semantic search functionality!'
author: thor_schaeff
-image: browser-semantic-search/browser_semantic_search_og.png
-thumb: browser-semantic-search/browser_semantic_search_og.png
+imgSocial: browser-semantic-search/browser_semantic_search_og.png
+imgThumb: browser-semantic-search/browser_semantic_search_og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-09-05-flutter-uber-clone.mdx b/apps/www/_blog/2024-09-05-flutter-uber-clone.mdx
index 359b30c95e4..d6bcb947d13 100644
--- a/apps/www/_blog/2024-09-05-flutter-uber-clone.mdx
+++ b/apps/www/_blog/2024-09-05-flutter-uber-clone.mdx
@@ -2,8 +2,8 @@
title: 'Building an Uber Clone with Flutter and Supabase'
description: 'Learn how to handle real-time geospatial data using Supabase Realtime and Flutter.'
author: tyler_shukert
-image: flutter-uber-clone/flutter-uber-clone-thumb.png
-thumb: flutter-uber-clone/flutter-uber-clone-thumb.png
+imgSocial: flutter-uber-clone/flutter-uber-clone-thumb.png
+imgThumb: flutter-uber-clone/flutter-uber-clone-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-09-12-edge-functions-faster-smaller.mdx b/apps/www/_blog/2024-09-12-edge-functions-faster-smaller.mdx
index c725270bf85..d5e36823ff1 100644
--- a/apps/www/_blog/2024-09-12-edge-functions-faster-smaller.mdx
+++ b/apps/www/_blog/2024-09-12-edge-functions-faster-smaller.mdx
@@ -2,8 +2,8 @@
title: 'Edge Functions are now 2x smaller and boot 3x faster'
description: 'Redeploy your Edge Functions with the CLI v1.192.5 for a peformance boost'
author: nyannyacha
-image: edge-functions-faster-smaller/edge-fns-faster-thumb.png
-thumb: edge-functions-faster-smaller/edge-fns-faster-thumb.png
+imgSocial: edge-functions-faster-smaller/edge-fns-faster-thumb.png
+imgThumb: edge-functions-faster-smaller/edge-fns-faster-thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-09-23-local-first-expo-legend-state.mdx b/apps/www/_blog/2024-09-23-local-first-expo-legend-state.mdx
index 79475e94027..3376a247a49 100644
--- a/apps/www/_blog/2024-09-23-local-first-expo-legend-state.mdx
+++ b/apps/www/_blog/2024-09-23-local-first-expo-legend-state.mdx
@@ -2,8 +2,8 @@
title: 'Local-first Realtime Apps with Expo and Legend-State'
description: 'Build local-first realtime web and mobile apps with Expo, Legend-State, and Supabase.'
author: jay_meistrich,thor_schaeff
-image: local-first-expo-legend_state/local-first-expo-legend_state-thumb.png
-thumb: local-first-expo-legend_state/local-first-expo-legend_state-thumb.png
+imgSocial: local-first-expo-legend_state/local-first-expo-legend_state-thumb.png
+imgThumb: local-first-expo-legend_state/local-first-expo-legend_state-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-09-30-lw12-hackathon-winners.mdx b/apps/www/_blog/2024-09-30-lw12-hackathon-winners.mdx
index bf340ae0041..eb8a180de0a 100644
--- a/apps/www/_blog/2024-09-30-lw12-hackathon-winners.mdx
+++ b/apps/www/_blog/2024-09-30-lw12-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Launch Week 12 Hackathon Winners'
description: Announcing the winners of the Supabase Launch Week 12 Hackathon.
author: tyler_shukert
-image: lw12/hackathon-winners/thumbnail.png
-thumb: lw12/hackathon-winners/thumbnail.png
+imgSocial: lw12/hackathon-winners/thumbnail.png
+imgThumb: lw12/hackathon-winners/thumbnail.png
launchweek: '12'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-10-08-offline-first-flutter-apps.mdx b/apps/www/_blog/2024-10-08-offline-first-flutter-apps.mdx
index ff948733bc8..d2cc6ac758d 100644
--- a/apps/www/_blog/2024-10-08-offline-first-flutter-apps.mdx
+++ b/apps/www/_blog/2024-10-08-offline-first-flutter-apps.mdx
@@ -2,8 +2,8 @@
title: 'Building offline-first mobile apps with Supabase, Flutter and Brick'
description: Brick is an all-in-one data manager for Flutter that handles querying and uploading between Supabase and local caches like SQLite. Using Brick, developers can focus on implementing the application without worrying about translating or storing their data.
author: tim_shedor,tyler_shukert
-image: flutter-offline-first/flutter-offline-first-og.jpg
-thumb: flutter-offline-first/flutter-offline-first.jpg
+imgSocial: flutter-offline-first/flutter-offline-first-og.jpg
+imgThumb: flutter-offline-first/flutter-offline-first.jpg
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-10-09-mongodb-realm-and-device-sync-alternatives.mdx b/apps/www/_blog/2024-10-09-mongodb-realm-and-device-sync-alternatives.mdx
index d1610fb0795..046070e8bb4 100644
--- a/apps/www/_blog/2024-10-09-mongodb-realm-and-device-sync-alternatives.mdx
+++ b/apps/www/_blog/2024-10-09-mongodb-realm-and-device-sync-alternatives.mdx
@@ -2,8 +2,8 @@
title: 'MongoDB Realm & Device Sync Alternatives - Supabase'
description: Learn how Supabase can help you transition from MongoDB Realm and Device Sync.
author: craig_cannon
-image: 2024-10-09-mongodb-realm-alternatives/mongodb-og-realtime.png
-thumb: 2024-10-09-mongodb-realm-alternatives/mongodb-og-realtime.png
+imgSocial: 2024-10-09-mongodb-realm-alternatives/mongodb-og-realtime.png
+imgThumb: 2024-10-09-mongodb-realm-alternatives/mongodb-og-realtime.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2024-10-10-database-build-live-share.mdx b/apps/www/_blog/2024-10-10-database-build-live-share.mdx
index b01a2747329..6787ecf5d1b 100644
--- a/apps/www/_blog/2024-10-10-database-build-live-share.mdx
+++ b/apps/www/_blog/2024-10-10-database-build-live-share.mdx
@@ -2,8 +2,8 @@
title: 'Live Share: Connect to in-browser PGlite with any Postgres client'
description: Connect any Postgres client to your postgres.new databases.
author: jgoux,gregnr
-image: database-build-live-share/database-build-live-share-og.png
-thumb: database-build-live-share/database-build-live-share-thumb.png
+imgSocial: database-build-live-share/database-build-live-share-og.png
+imgThumb: database-build-live-share/database-build-live-share-thumb.png
categories:
- developers
- postgres
diff --git a/apps/www/_blog/2024-10-30-supabase-clickhouse-partnership.mdx b/apps/www/_blog/2024-10-30-supabase-clickhouse-partnership.mdx
index 08d4d48768b..2f17d176c36 100644
--- a/apps/www/_blog/2024-10-30-supabase-clickhouse-partnership.mdx
+++ b/apps/www/_blog/2024-10-30-supabase-clickhouse-partnership.mdx
@@ -2,8 +2,8 @@
title: 'ClickHouse Partnership, improved Postgres Replication, and Disk Management'
description: Improving the developer experience between Postgres and ClickHouse.
author: paul_copplestone
-image: clickhouse-supabase/supabase-clickhouse-og.png
-thumb: clickhouse-supabase/supabase-clickhouse-og.png
+imgSocial: clickhouse-supabase/supabase-clickhouse-og.png
+imgThumb: clickhouse-supabase/supabase-clickhouse-og.png
categories:
- developers
- postgres
diff --git a/apps/www/_blog/2024-11-13-supabase-dynamic-functions.mdx b/apps/www/_blog/2024-11-13-supabase-dynamic-functions.mdx
index bfec3bc320e..0bf986fa2be 100644
--- a/apps/www/_blog/2024-11-13-supabase-dynamic-functions.mdx
+++ b/apps/www/_blog/2024-11-13-supabase-dynamic-functions.mdx
@@ -2,8 +2,8 @@
title: 'Executing Dynamic JavaScript Code on Supabase with Edge Functions'
description: 'Learn how to execute dynamic JavaScript code on Supabase using Edge Functions.'
author: rodrigo_mansueli
-image: 2024-11-13-supabase-dynamic-functions/dynamic-og.png
-thumb: 2024-11-13-supabase-dynamic-functions/dynamic-og.png
+imgSocial: 2024-11-13-supabase-dynamic-functions/dynamic-og.png
+imgThumb: 2024-11-13-supabase-dynamic-functions/dynamic-og.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-11-30-hack-the-base.mdx b/apps/www/_blog/2024-11-30-hack-the-base.mdx
index ff92fc4206c..74031e6a7de 100644
--- a/apps/www/_blog/2024-11-30-hack-the-base.mdx
+++ b/apps/www/_blog/2024-11-30-hack-the-base.mdx
@@ -2,8 +2,8 @@
title: 'Hack the Base! with Supabase'
description: 'Play cool games, win cool prizes.'
author: stephen_morgan
-image: launch-week-13/hack-the-base-dec-2024/og.png
-thumb: launch-week-13/hack-the-base-dec-2024/thumb.png
+imgSocial: launch-week-13/hack-the-base-dec-2024/og.png
+imgThumb: launch-week-13/hack-the-base-dec-2024/thumb.png
launchweek: '13'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-12-01-orioledb-launch.mdx b/apps/www/_blog/2024-12-01-orioledb-launch.mdx
index fde932ad13f..172423b40fd 100644
--- a/apps/www/_blog/2024-12-01-orioledb-launch.mdx
+++ b/apps/www/_blog/2024-12-01-orioledb-launch.mdx
@@ -2,8 +2,8 @@
title: 'OrioleDB Public Alpha'
description: 'Launching OrioleDB Public Alpha'
author: pavel
-image: 2024-12-01-orioledb-release/og.png
-thumb: 2024-12-01-orioledb-release/thumb.png
+imgSocial: 2024-12-01-orioledb-release/og.png
+imgThumb: 2024-12-01-orioledb-release/thumb.png
categories:
- engineering
tags:
diff --git a/apps/www/_blog/2024-12-02-supabase-ai-assistant-v2.mdx b/apps/www/_blog/2024-12-02-supabase-ai-assistant-v2.mdx
index ad3c5c6a597..5a2c2b8fb10 100644
--- a/apps/www/_blog/2024-12-02-supabase-ai-assistant-v2.mdx
+++ b/apps/www/_blog/2024-12-02-supabase-ai-assistant-v2.mdx
@@ -2,8 +2,8 @@
title: 'Supabase AI Assistant v2'
description: An evolution of how we approach AI within the Supabase dashboard
author: saxon_fletcher,joshenlim
-image: launch-week-13/day-1-ai-assistant-v2/og.jpg
-thumb: launch-week-13/day-1-ai-assistant-v2/thumb.jpg
+imgSocial: launch-week-13/day-1-ai-assistant-v2/og.jpg
+imgThumb: launch-week-13/day-1-ai-assistant-v2/thumb.jpg
categories:
- developers
- postgres
diff --git a/apps/www/_blog/2024-12-03-edge-functions-background-tasks-websockets.mdx b/apps/www/_blog/2024-12-03-edge-functions-background-tasks-websockets.mdx
index 744914b033e..dc9061559f4 100644
--- a/apps/www/_blog/2024-12-03-edge-functions-background-tasks-websockets.mdx
+++ b/apps/www/_blog/2024-12-03-edge-functions-background-tasks-websockets.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Edge Functions: Introducing Background Tasks, Ephemeral Storage, and WebSockets'
description: Edge functions can be used for workloads outside the request-response lifecycle
author: laktek,nyannyacha
-image: launch-week-13/day-2-functions-background-tasks/og.jpg
-thumb: launch-week-13/day-2-functions-background-tasks/thumb.jpg
+imgSocial: launch-week-13/day-2-functions-background-tasks/og.jpg
+imgThumb: launch-week-13/day-2-functions-background-tasks/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-12-04-cli-v2-config-as-code.mdx b/apps/www/_blog/2024-12-04-cli-v2-config-as-code.mdx
index 7f0c1bf59cf..e74b3a8daf7 100644
--- a/apps/www/_blog/2024-12-04-cli-v2-config-as-code.mdx
+++ b/apps/www/_blog/2024-12-04-cli-v2-config-as-code.mdx
@@ -2,8 +2,8 @@
title: 'Supabase CLI v2: Config as Code'
description: Commit the configuration for all of your Projects and Branches into version control.
author: qiao
-image: launch-week-13/supabase-cli-v2-config-as-code/og.jpg
-thumb: launch-week-13/supabase-cli-v2-config-as-code/thumb.jpg
+imgSocial: launch-week-13/supabase-cli-v2-config-as-code/og.jpg
+imgThumb: launch-week-13/supabase-cli-v2-config-as-code/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-12-04-supabase-cron.mdx b/apps/www/_blog/2024-12-04-supabase-cron.mdx
index 972e7412967..d577acf6234 100644
--- a/apps/www/_blog/2024-12-04-supabase-cron.mdx
+++ b/apps/www/_blog/2024-12-04-supabase-cron.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Cron'
description: Schedule Recurring Jobs in Postgres
author: ivasilov,oli_rice,saltcod
-image: launch-week-13/day-3-supabase-cron/og.jpg
-thumb: launch-week-13/day-3-supabase-cron/thumb.jpg
+imgSocial: launch-week-13/day-3-supabase-cron/og.jpg
+imgThumb: launch-week-13/day-3-supabase-cron/thumb.jpg
categories:
- developers
- postgres
diff --git a/apps/www/_blog/2024-12-05-high-performance-disks.mdx b/apps/www/_blog/2024-12-05-high-performance-disks.mdx
index 252eb184474..90993dc316a 100644
--- a/apps/www/_blog/2024-12-05-high-performance-disks.mdx
+++ b/apps/www/_blog/2024-12-05-high-performance-disks.mdx
@@ -2,8 +2,8 @@
title: 'High Performance Disk'
description: Store up to 60 TB of data with 100x improved durability and 5x more IOPS
author: pcnc,jonny,gregpapas
-image: launch-week-13/high-performance-disks/og.jpg
-thumb: launch-week-13/high-performance-disks/thumb.jpg
+imgSocial: launch-week-13/high-performance-disks/og.jpg
+imgThumb: launch-week-13/high-performance-disks/thumb.jpg
categories:
- product
tags:
diff --git a/apps/www/_blog/2024-12-05-supabase-queues.mdx b/apps/www/_blog/2024-12-05-supabase-queues.mdx
index 8009b06edf4..2ef300c0c68 100644
--- a/apps/www/_blog/2024-12-05-supabase-queues.mdx
+++ b/apps/www/_blog/2024-12-05-supabase-queues.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Queues'
description: Durable Message Queues with Guaranteed Delivery in Postgres
author: ivasilov,oli_rice
-image: launch-week-13/day-4-supabase-queues/og.png
-thumb: launch-week-13/day-4-supabase-queues/thumb.png
+imgSocial: launch-week-13/day-4-supabase-queues/og.png
+imgThumb: launch-week-13/day-4-supabase-queues/thumb.png
categories:
- developers
- postgres
diff --git a/apps/www/_blog/2024-12-06-database-build-v2.mdx b/apps/www/_blog/2024-12-06-database-build-v2.mdx
index f0fa53de492..23a23575865 100644
--- a/apps/www/_blog/2024-12-06-database-build-v2.mdx
+++ b/apps/www/_blog/2024-12-06-database-build-v2.mdx
@@ -2,8 +2,8 @@
title: 'database.build v2: Bring-your-own-LLM'
description: Use any OpenAI API compatible LLMs in database.build
author: gregnr,jgoux
-image: launch-week-13/day-5-database-build-v2/og.png
-thumb: launch-week-13/day-5-database-build-v2/thumb.png
+imgSocial: launch-week-13/day-5-database-build-v2/og.png
+imgThumb: launch-week-13/day-5-database-build-v2/thumb.png
categories:
- launch-week
- developers
diff --git a/apps/www/_blog/2024-12-06-launch-week-13-top-10.mdx b/apps/www/_blog/2024-12-06-launch-week-13-top-10.mdx
index 51281ddcf66..cfc007745c7 100644
--- a/apps/www/_blog/2024-12-06-launch-week-13-top-10.mdx
+++ b/apps/www/_blog/2024-12-06-launch-week-13-top-10.mdx
@@ -2,8 +2,8 @@
title: 'Top 10 Launches of Launch Week 13'
description: Highlights from Launch Week 13
author: paul_copplestone
-image: launch-week-13/wrap-up/og-top-10.png
-thumb: launch-week-13/wrap-up/thumb-top-10.png
+imgSocial: launch-week-13/wrap-up/og-top-10.png
+imgThumb: launch-week-13/wrap-up/thumb-top-10.png
launchweek: '13'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-12-06-restore-to-a-new-project.mdx b/apps/www/_blog/2024-12-06-restore-to-a-new-project.mdx
index ce4df274fd4..f55035ed604 100644
--- a/apps/www/_blog/2024-12-06-restore-to-a-new-project.mdx
+++ b/apps/www/_blog/2024-12-06-restore-to-a-new-project.mdx
@@ -2,8 +2,8 @@
title: 'Restore to a New Project'
description: Effortlessly Clone Data into a New Supabase Project
author: crispy1975
-image: launch-week-13/restore-to-a-new-project/og.jpg
-thumb: launch-week-13/restore-to-a-new-project/thumb.jpg
+imgSocial: launch-week-13/restore-to-a-new-project/og.jpg
+imgThumb: launch-week-13/restore-to-a-new-project/thumb.jpg
categories:
- developers
- postgres
diff --git a/apps/www/_blog/2024-12-10-durable-workflows-in-postgres-dbos.mdx b/apps/www/_blog/2024-12-10-durable-workflows-in-postgres-dbos.mdx
index 62b64319562..55dc9fed92e 100644
--- a/apps/www/_blog/2024-12-10-durable-workflows-in-postgres-dbos.mdx
+++ b/apps/www/_blog/2024-12-10-durable-workflows-in-postgres-dbos.mdx
@@ -2,8 +2,8 @@
title: 'Running Durable Workflows in Postgres using DBOS'
description: Technical deep dive into the new DBOS integration for Supabase
author: paul_copplestone
-image: dbos/og.png
-thumb: dbos/og.png
+imgSocial: dbos/og.png
+imgThumb: dbos/og.png
categories:
- developers
- postgres
diff --git a/apps/www/_blog/2024-12-19-how-to-hack-the-base.mdx b/apps/www/_blog/2024-12-19-how-to-hack-the-base.mdx
index 324cff5b9c5..d1d7aea0eb0 100644
--- a/apps/www/_blog/2024-12-19-how-to-hack-the-base.mdx
+++ b/apps/www/_blog/2024-12-19-how-to-hack-the-base.mdx
@@ -2,8 +2,8 @@
title: 'How to Hack the Base!'
description: 'Played cool games, won cool prizes.'
author: stephen_morgan
-image: launch-week-13/hack-the-base-dec-2024/og.png
-thumb: launch-week-13/hack-the-base-dec-2024/thumb.png
+imgSocial: launch-week-13/hack-the-base-dec-2024/og.png
+imgThumb: launch-week-13/hack-the-base-dec-2024/thumb.png
launchweek: '13'
categories:
- launch-week
diff --git a/apps/www/_blog/2024-12-20-ai-hackathon-at-y-combinator.mdx b/apps/www/_blog/2024-12-20-ai-hackathon-at-y-combinator.mdx
index 6f1f5721b5b..3a86ed93ebe 100644
--- a/apps/www/_blog/2024-12-20-ai-hackathon-at-y-combinator.mdx
+++ b/apps/www/_blog/2024-12-20-ai-hackathon-at-y-combinator.mdx
@@ -2,8 +2,8 @@
title: 'AI Hackathon at Y Combinator'
description: Announcing the winners of the Supabase AI Hackathon.
author: craig_cannon
-image: 2024-12-20-ai-hackathon-at-y-combinator/yc-hackathon-og.png
-thumb: 2024-12-20-ai-hackathon-at-y-combinator/yc-hackathon-og.png
+imgSocial: 2024-12-20-ai-hackathon-at-y-combinator/yc-hackathon-og.png
+imgThumb: 2024-12-20-ai-hackathon-at-y-combinator/yc-hackathon-og.png
categories:
- hackathon
- AI
diff --git a/apps/www/_blog/2024-12-20-calendars-in-postgres-using-foreign-data-wrappers.mdx b/apps/www/_blog/2024-12-20-calendars-in-postgres-using-foreign-data-wrappers.mdx
index 28e270cd720..c0bf34402ad 100644
--- a/apps/www/_blog/2024-12-20-calendars-in-postgres-using-foreign-data-wrappers.mdx
+++ b/apps/www/_blog/2024-12-20-calendars-in-postgres-using-foreign-data-wrappers.mdx
@@ -2,8 +2,8 @@
title: 'Calendars in Postgres using Foreign Data Wrappers'
description: 'Calendar data integration with Cal.com using Wasm foreign data wrapper on Supabase'
author: bo_lu
-image: 2024-12-20-cal-wrapper/og-calcom.png
-thumb: 2024-12-20-cal-wrapper/og-calcom.png
+imgSocial: 2024-12-20-cal-wrapper/og-calcom.png
+imgThumb: 2024-12-20-cal-wrapper/og-calcom.png
categories:
- developers
- product
diff --git a/apps/www/_blog/2024-12-20-lw13-hackathon-winners.mdx b/apps/www/_blog/2024-12-20-lw13-hackathon-winners.mdx
index a6376f25d29..5993126f157 100644
--- a/apps/www/_blog/2024-12-20-lw13-hackathon-winners.mdx
+++ b/apps/www/_blog/2024-12-20-lw13-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Launch Week 13 Hackathon Winners'
description: Announcing the winners of the Supabase Launch Week 13 Hackathon.
author: tyler_shukert
-image: launch-week-13/hackathon-winners/lw13-hackathon.png
-thumb: launch-week-13/hackathon-winners/lw13-hackathon.png
+imgSocial: launch-week-13/hackathon-winners/lw13-hackathon.png
+imgThumb: launch-week-13/hackathon-winners/lw13-hackathon.png
launchweek: '13'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-02-26-pgrouting-postgres-graph-database.mdx b/apps/www/_blog/2025-02-26-pgrouting-postgres-graph-database.mdx
index f4f46d125d6..842aa5a2436 100644
--- a/apps/www/_blog/2025-02-26-pgrouting-postgres-graph-database.mdx
+++ b/apps/www/_blog/2025-02-26-pgrouting-postgres-graph-database.mdx
@@ -2,8 +2,8 @@
title: 'Postgres as a Graph Database: (Ab)using pgRouting'
description: 'Learn how to use pgRouting as a lightweight graph database solution in Postgres.'
author: paul_copplestone
-image: pgrouting-graph/pgrouting-og.png
-thumb: pgrouting-graph/pgrouting-thumb.png
+imgSocial: pgrouting-graph/pgrouting-og.png
+imgThumb: pgrouting-graph/pgrouting-thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2025-03-07-dedicated-poolers.mdx b/apps/www/_blog/2025-03-07-dedicated-poolers.mdx
index 3a8b1e0cd1a..b2024ec7c5a 100644
--- a/apps/www/_blog/2025-03-07-dedicated-poolers.mdx
+++ b/apps/www/_blog/2025-03-07-dedicated-poolers.mdx
@@ -2,8 +2,8 @@
title: 'Dedicated Poolers'
description: "A dedicated pgbouncer instance that's co-located with your database for maximum performance and reliability."
author: paul_copplestone
-image: dedicated-poolers/dedicated-poolers-og.png
-thumb: dedicated-poolers/dedicated-poolers-og.png
+imgSocial: dedicated-poolers/dedicated-poolers-og.png
+imgThumb: dedicated-poolers/dedicated-poolers-og.png
categories:
- product
- postgres
diff --git a/apps/www/_blog/2025-03-20-migrating-mongodb-data-api-with-supabase.mdx b/apps/www/_blog/2025-03-20-migrating-mongodb-data-api-with-supabase.mdx
index bf230ade525..3cc13115923 100644
--- a/apps/www/_blog/2025-03-20-migrating-mongodb-data-api-with-supabase.mdx
+++ b/apps/www/_blog/2025-03-20-migrating-mongodb-data-api-with-supabase.mdx
@@ -2,8 +2,8 @@
title: 'Migrating from the MongoDB Data API to Supabase'
description: 'A guide to migrating from the MongoDB Data API to Supabase.'
author: prashant
-image: mongodb-data-api/mongodb-data-api.png
-thumb: mongodb-data-api/mongodb-data-api-thumb.png
+imgSocial: mongodb-data-api/mongodb-data-api.png
+imgThumb: mongodb-data-api/mongodb-data-api-thumb.png
categories:
- migration
- postgres
diff --git a/apps/www/_blog/2025-03-21-migrating-from-fauna-to-supabase.mdx b/apps/www/_blog/2025-03-21-migrating-from-fauna-to-supabase.mdx
index 9424a74a36f..e343d563cbe 100644
--- a/apps/www/_blog/2025-03-21-migrating-from-fauna-to-supabase.mdx
+++ b/apps/www/_blog/2025-03-21-migrating-from-fauna-to-supabase.mdx
@@ -2,8 +2,8 @@
title: 'Migrating from Fauna to Supabase'
description: 'A guide to migrating from Fauna to Supabase.'
author: prashant
-image: fauna-transition/fauna-transition.png
-thumb: fauna-transition/fauna-transition-thumb.png
+imgSocial: fauna-transition/fauna-transition.png
+imgThumb: fauna-transition/fauna-transition-thumb.png
categories:
- migration
- postgres
diff --git a/apps/www/_blog/2025-03-29-postgres-language-server.mdx b/apps/www/_blog/2025-03-29-postgres-language-server.mdx
index a4156182dd6..23db13f7303 100644
--- a/apps/www/_blog/2025-03-29-postgres-language-server.mdx
+++ b/apps/www/_blog/2025-03-29-postgres-language-server.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-03-29T00:00:00'
toc_depth: 3
author: philipp,julian
-image: lw14-postgres-language-server/postgres-language-server-og.png
-thumb: lw14-postgres-language-server/postgres-language-server-thumb.png
+imgSocial: lw14-postgres-language-server/postgres-language-server-og.png
+imgThumb: lw14-postgres-language-server/postgres-language-server-thumb.png
launchweek: '14'
---
diff --git a/apps/www/_blog/2025-03-31-clerk-tpa-pricing.mdx b/apps/www/_blog/2025-03-31-clerk-tpa-pricing.mdx
index 0c8158855ef..cca12f7d9f6 100644
--- a/apps/www/_blog/2025-03-31-clerk-tpa-pricing.mdx
+++ b/apps/www/_blog/2025-03-31-clerk-tpa-pricing.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-03-31T00:00:00'
toc_depth: 3
author: stojan
-image: lw14-clerk-tpa-pricing/clerk-tpa-pricing-og.png
-thumb: lw14-clerk-tpa-pricing/clerk-tpa-pricing-thumb.png
+imgSocial: lw14-clerk-tpa-pricing/clerk-tpa-pricing-og.png
+imgThumb: lw14-clerk-tpa-pricing/clerk-tpa-pricing-thumb.png
launchweek: '14'
---
diff --git a/apps/www/_blog/2025-03-31-supabase-ui-library.mdx b/apps/www/_blog/2025-03-31-supabase-ui-library.mdx
index 13f356ed052..a95743bb1b3 100644
--- a/apps/www/_blog/2025-03-31-supabase-ui-library.mdx
+++ b/apps/www/_blog/2025-03-31-supabase-ui-library.mdx
@@ -2,8 +2,8 @@
title: 'Introducing the Supabase UI Library'
description: 'Drop complex components into your projects in seconds.'
author: ivasilov,jonny,saxon_fletcher,saltcod
-image: launch-week-14/day-1-supabase-ui-library/og.jpg
-thumb: launch-week-14/day-1-supabase-ui-library/thumb.jpg
+imgSocial: launch-week-14/day-1-supabase-ui-library/og.jpg
+imgThumb: launch-week-14/day-1-supabase-ui-library/thumb.jpg
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2025-04-01-automatic-embeddings.mdx b/apps/www/_blog/2025-04-01-automatic-embeddings.mdx
index d67ea05fa68..af3306bfd84 100644
--- a/apps/www/_blog/2025-04-01-automatic-embeddings.mdx
+++ b/apps/www/_blog/2025-04-01-automatic-embeddings.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-04-01T00:00:00'
toc_depth: 3
author: gregnr
-image: lw14-automatic-embeddings/automatic-embeddings-og.png
-thumb: lw14-automatic-embeddings/automatic-embeddings-thumb.png
+imgSocial: lw14-automatic-embeddings/automatic-embeddings-og.png
+imgThumb: lw14-automatic-embeddings/automatic-embeddings-thumb.png
launchweek: '14'
---
diff --git a/apps/www/_blog/2025-04-01-supabase-edge-functions-deploy-dashboard-deno-2-1.mdx b/apps/www/_blog/2025-04-01-supabase-edge-functions-deploy-dashboard-deno-2-1.mdx
index 5438cb6b064..988e69d6e44 100644
--- a/apps/www/_blog/2025-04-01-supabase-edge-functions-deploy-dashboard-deno-2-1.mdx
+++ b/apps/www/_blog/2025-04-01-supabase-edge-functions-deploy-dashboard-deno-2-1.mdx
@@ -2,8 +2,8 @@
title: 'Edge Functions: Deploy from the Dashboard + Deno 2.1'
description: 'You can create, test, and deploy Edge Functions directly from the Supabase Dashboard.'
author: saxon_fletcher,nyannyacha,laktek
-image: launch-week-14/day-2-edge-functions-dashboard/og.png
-thumb: launch-week-14/day-2-edge-functions-dashboard/thumb.png
+imgSocial: launch-week-14/day-2-edge-functions-dashboard/og.png
+imgThumb: launch-week-14/day-2-edge-functions-dashboard/thumb.png
categories:
- launch-week
- product
diff --git a/apps/www/_blog/2025-04-02-realtime-broadcast-from-database.mdx b/apps/www/_blog/2025-04-02-realtime-broadcast-from-database.mdx
index c312bc3f06a..5183e893f5d 100644
--- a/apps/www/_blog/2025-04-02-realtime-broadcast-from-database.mdx
+++ b/apps/www/_blog/2025-04-02-realtime-broadcast-from-database.mdx
@@ -2,8 +2,8 @@
title: 'Realtime: Broadcast from Database'
description: 'Use Realtime Broadcast to scale sending database changes to clients'
author: filipe
-image: launch-week-14/day-3-realtime-broadcast-from-database/og.png
-thumb: launch-week-14/day-3-realtime-broadcast-from-database/thumb.png
+imgSocial: launch-week-14/day-3-realtime-broadcast-from-database/og.png
+imgThumb: launch-week-14/day-3-realtime-broadcast-from-database/thumb.png
categories:
- launch-week
- product
diff --git a/apps/www/_blog/2025-04-02-tabs-dashboard-updates.mdx b/apps/www/_blog/2025-04-02-tabs-dashboard-updates.mdx
index d1f252d00e2..aa49a20442a 100644
--- a/apps/www/_blog/2025-04-02-tabs-dashboard-updates.mdx
+++ b/apps/www/_blog/2025-04-02-tabs-dashboard-updates.mdx
@@ -2,8 +2,8 @@
title: "Keeping Tabs on What's New in Supabase Studio"
description: Tabs in the Editors! And upgrades to AI Assistant, SQL, and Logs
author: jordi,jonny,joshenlim,saxon_fletcher
-image: lw14-tabs-dashboard-updates/tabs-dashboard-updates-og.png
-thumb: lw14-tabs-dashboard-updates/tabs-dashboard-updates-thumb.png
+imgSocial: lw14-tabs-dashboard-updates/tabs-dashboard-updates-og.png
+imgThumb: lw14-tabs-dashboard-updates/tabs-dashboard-updates-thumb.png
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2025-04-03-declarative-schemas.mdx b/apps/www/_blog/2025-04-03-declarative-schemas.mdx
index 1294aebe096..8451a1561b1 100644
--- a/apps/www/_blog/2025-04-03-declarative-schemas.mdx
+++ b/apps/www/_blog/2025-04-03-declarative-schemas.mdx
@@ -2,8 +2,8 @@
title: 'Declarative Schemas for Simpler Database Management'
description: Simplify managing and maintaining complex database schemas
author: qiao
-image: launch-week-14/day-4-declarative-schemas/og.png
-thumb: launch-week-14/day-4-declarative-schemas/thumb.png
+imgSocial: launch-week-14/day-4-declarative-schemas/og.png
+imgThumb: launch-week-14/day-4-declarative-schemas/thumb.png
categories:
- launch-week
- product
diff --git a/apps/www/_blog/2025-04-04-data-api-nearest-read-replica.mdx b/apps/www/_blog/2025-04-04-data-api-nearest-read-replica.mdx
index c657550e138..fc9ca602c8b 100644
--- a/apps/www/_blog/2025-04-04-data-api-nearest-read-replica.mdx
+++ b/apps/www/_blog/2025-04-04-data-api-nearest-read-replica.mdx
@@ -2,8 +2,8 @@
title: 'Data API Routes to Nearest Read Replica'
description: Route your Data API (PostgREST) requests to the nearest Read Replica
author: jose
-image: lw14-data-api-nearest-rr/og.png
-thumb: lw14-data-api-nearest-rr/thumb.png
+imgSocial: lw14-data-api-nearest-rr/og.png
+imgThumb: lw14-data-api-nearest-rr/thumb.png
categories:
- launch-week
- product
diff --git a/apps/www/_blog/2025-04-04-launch-week-14-top-10.mdx b/apps/www/_blog/2025-04-04-launch-week-14-top-10.mdx
index 1977bb287bf..6c4747f6aa1 100644
--- a/apps/www/_blog/2025-04-04-launch-week-14-top-10.mdx
+++ b/apps/www/_blog/2025-04-04-launch-week-14-top-10.mdx
@@ -2,8 +2,8 @@
title: 'Top 10 Launches of Launch Week 14'
description: Highlights from Launch Week 14
author: wenbo
-image: launch-week-14/wrap-up/og.png
-thumb: launch-week-14/wrap-up/thumb.png
+imgSocial: launch-week-14/wrap-up/og.png
+imgThumb: launch-week-14/wrap-up/thumb.png
launchweek: '14'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-04-04-mcp-server.mdx b/apps/www/_blog/2025-04-04-mcp-server.mdx
index 0635343898c..756844e6ec0 100644
--- a/apps/www/_blog/2025-04-04-mcp-server.mdx
+++ b/apps/www/_blog/2025-04-04-mcp-server.mdx
@@ -2,8 +2,8 @@
title: 'Supabase MCP Server'
description: Connect your AI tools to Supabase using MCP
author: gregnr
-image: launch-week-14/day-5-mcp-server/og.png
-thumb: launch-week-14/day-5-mcp-server/thumb.png
+imgSocial: launch-week-14/day-5-mcp-server/og.png
+imgThumb: launch-week-14/day-5-mcp-server/thumb.png
categories:
- launch-week
tags:
diff --git a/apps/www/_blog/2025-05-08-event-triggers-wo-superuser.mdx b/apps/www/_blog/2025-05-08-event-triggers-wo-superuser.mdx
index 54c976df382..b7c8d089f08 100644
--- a/apps/www/_blog/2025-05-08-event-triggers-wo-superuser.mdx
+++ b/apps/www/_blog/2025-05-08-event-triggers-wo-superuser.mdx
@@ -4,8 +4,8 @@ description: Using Postgres Hooks to allow regular users to create event trigger
author: steve_chavez
author_url: https://github.com/steve-chavez
author_image_url: https://github.com/steve-chavez.png
-image: 2025-05-08-event-triggers-wo-superuser/cover-event-triggers-dark.png
-thumb: 2025-05-08-event-triggers-wo-superuser/cover-event-triggers-dark.png
+imgSocial: 2025-05-08-event-triggers-wo-superuser/cover-event-triggers-dark.png
+imgThumb: 2025-05-08-event-triggers-wo-superuser/cover-event-triggers-dark.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2025-05-17-simplify-backend-with-data-api.mdx b/apps/www/_blog/2025-05-17-simplify-backend-with-data-api.mdx
index 55c563d6014..4ed33c66c8c 100644
--- a/apps/www/_blog/2025-05-17-simplify-backend-with-data-api.mdx
+++ b/apps/www/_blog/2025-05-17-simplify-backend-with-data-api.mdx
@@ -2,8 +2,8 @@
title: 'Simplifying back-end complexity with Supabase Data APIs'
description: Replace custom CRUD endpoints, reduce infrastructure complexity, and accelerate product delivery.
author: prashant,steve_chavez,laurenceisla
-image: 2025-05-17-simplify-backend-with-data-api/simplify-backend-with-data-api-image.png
-thumb: 2025-05-17-simplify-backend-with-data-api/simplify-backend-with-data-api-thumb.png
+imgSocial: 2025-05-17-simplify-backend-with-data-api/simplify-backend-with-data-api-image.png
+imgThumb: 2025-05-17-simplify-backend-with-data-api/simplify-backend-with-data-api-thumb.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2025-05-26-open-data-standards-postgres-otel-iceberg.mdx b/apps/www/_blog/2025-05-26-open-data-standards-postgres-otel-iceberg.mdx
index 167cad1bd2e..9f58868e8d4 100644
--- a/apps/www/_blog/2025-05-26-open-data-standards-postgres-otel-iceberg.mdx
+++ b/apps/www/_blog/2025-05-26-open-data-standards-postgres-otel-iceberg.mdx
@@ -2,8 +2,8 @@
title: 'Open Data Standards: Postgres, OTel, and Iceberg'
description: Replace custom CRUD endpoints, reduce infrastructure complexity, and accelerate product delivery.
author: paul_copplestone
-image: open-data-standards/three-open-data-standards-og.png
-thumb: open-data-standards/three-open-data-standards-thumb.png
+imgSocial: open-data-standards/three-open-data-standards-og.png
+imgThumb: open-data-standards/three-open-data-standards-thumb.png
toc_depth: 3
categories:
- product
diff --git a/apps/www/_blog/2025-05-29-building-on-open-table-formats.mdx b/apps/www/_blog/2025-05-29-building-on-open-table-formats.mdx
index a19d596948a..f175b01bd3e 100644
--- a/apps/www/_blog/2025-05-29-building-on-open-table-formats.mdx
+++ b/apps/www/_blog/2025-05-29-building-on-open-table-formats.mdx
@@ -2,8 +2,8 @@
title: 'Building on open table formats'
description: Open table formats like Apache Iceberg, Delta Lake, and Apache Hudi are transforming how developers manage large-scale data on object storage systems.
author: prashant
-image: 2025-05-29-building-on-open-table-formats/building-on-open-table-formats.png
-thumb: 2025-05-29-building-on-open-table-formats/building-on-open-table-formats.png
+imgSocial: 2025-05-29-building-on-open-table-formats/building-on-open-table-formats.png
+imgThumb: 2025-05-29-building-on-open-table-formats/building-on-open-table-formats.png
toc_depth: 3
categories:
- product
diff --git a/apps/www/_blog/2025-06-10-multigres-vitess-for-postgres.mdx b/apps/www/_blog/2025-06-10-multigres-vitess-for-postgres.mdx
index cfe7e0eb913..7b493d78896 100644
--- a/apps/www/_blog/2025-06-10-multigres-vitess-for-postgres.mdx
+++ b/apps/www/_blog/2025-06-10-multigres-vitess-for-postgres.mdx
@@ -2,8 +2,8 @@
title: 'Announcing Multigres: Vitess for Postgres'
description: 'Today we are welcoming Sugu, the co-creator of Vitess, to the Supabase team. He is joining Supabase to build Multigres: Vitess for Postgres.'
author: paul_copplestone
-image: multigres/multigres.png
-thumb: multigres/multigres.png
+imgSocial: multigres/multigres.png
+imgThumb: multigres/multigres.png
categories:
- company
- postgres
diff --git a/apps/www/_blog/2025-06-25-natural-db.mdx b/apps/www/_blog/2025-06-25-natural-db.mdx
index fc517c9df80..d05ff58b9a0 100644
--- a/apps/www/_blog/2025-06-25-natural-db.mdx
+++ b/apps/www/_blog/2025-06-25-natural-db.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-06-25:00:00'
toc_depth: 3
author: saxon_fletcher
-image: 2025-06-10-natural-db/og.png
-thumb: 2025-06-10-natural-db/thumb.png
+imgSocial: 2025-06-10-natural-db/og.png
+imgThumb: 2025-06-10-natural-db/thumb.png
---
Large Language Models are excellent at transforming unstructured text into structured data, but they face challenges when it comes to accurately retrieving that data over extended conversations. In this post, we'll leverage this core strength and combine it with Postgres, along with several complementary tools, to build a personalized AI assistant capable of long-term memory retention.
diff --git a/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx b/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx
index 7fd4efac42e..9fe686af926 100644
--- a/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx
+++ b/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx
@@ -9,8 +9,8 @@ tags:
date: '2025-07-14:00:00'
toc_depth: 3
author: stojan
-image: launch-week-15/day-1-jwt-signing-keys/og.jpg
-thumb: launch-week-15/day-1-jwt-signing-keys/thumb.jpg
+imgSocial: launch-week-15/day-1-jwt-signing-keys/og.jpg
+imgThumb: launch-week-15/day-1-jwt-signing-keys/thumb.jpg
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-14-supabase-ui-platform-kit.mdx b/apps/www/_blog/2025-07-14-supabase-ui-platform-kit.mdx
index 65de7374d85..431d812806e 100644
--- a/apps/www/_blog/2025-07-14-supabase-ui-platform-kit.mdx
+++ b/apps/www/_blog/2025-07-14-supabase-ui-platform-kit.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-07-14:00:00'
toc_depth: 3
author: saxon_fletcher
-image: launch-week-15/day-1-ui-platform-kit/og.jpg
-thumb: launch-week-15/day-1-ui-platform-kit/thumb.png
+imgSocial: launch-week-15/day-1-ui-platform-kit/og.jpg
+imgThumb: launch-week-15/day-1-ui-platform-kit/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-15-analytics-buckets.mdx b/apps/www/_blog/2025-07-15-analytics-buckets.mdx
index 3b70a2ab85b..07c64abdd4c 100644
--- a/apps/www/_blog/2025-07-15-analytics-buckets.mdx
+++ b/apps/www/_blog/2025-07-15-analytics-buckets.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-07-15:10:00'
toc_depth: 3
author: oli_rice,fabrizio
-image: launch-week-15/day-2-analytics-buckets/og.jpg
-thumb: launch-week-15/day-2-analytics-buckets/thumb.png
+imgSocial: launch-week-15/day-2-analytics-buckets/og.png
+imgThumb: launch-week-15/day-2-analytics-buckets/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-15-figma-make-support-for-supabase.mdx b/apps/www/_blog/2025-07-15-figma-make-support-for-supabase.mdx
index 83f928c08e3..12256b623cf 100644
--- a/apps/www/_blog/2025-07-15-figma-make-support-for-supabase.mdx
+++ b/apps/www/_blog/2025-07-15-figma-make-support-for-supabase.mdx
@@ -9,8 +9,8 @@ tags:
date: '2025-07-15:00:00'
toc_depth: 2
author: prashant
-image: launch-week-15/day-2-figma-make/og.jpg
-thumb: launch-week-15/day-2-figma-make/thumb.png
+imgSocial: launch-week-15/day-2-figma-make/og.png
+imgThumb: launch-week-15/day-2-figma-make/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-15-stripe-engine-as-sync-library.mdx b/apps/www/_blog/2025-07-15-stripe-engine-as-sync-library.mdx
index 9fabde9dc13..a6183f885a3 100644
--- a/apps/www/_blog/2025-07-15-stripe-engine-as-sync-library.mdx
+++ b/apps/www/_blog/2025-07-15-stripe-engine-as-sync-library.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-07-15:15:00'
toc_depth: 3
author: kevcodez
-image: launch-week-15/day-2-stripe-engine/og.jpg
-thumb: launch-week-15/day-2-stripe-engine/thumb.png
+imgSocial: launch-week-15/day-2-stripe-engine/og.png
+imgThumb: launch-week-15/day-2-stripe-engine/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-16-branching-2-0.mdx b/apps/www/_blog/2025-07-16-branching-2-0.mdx
index 4d620610d3e..ac0499192e7 100644
--- a/apps/www/_blog/2025-07-16-branching-2-0.mdx
+++ b/apps/www/_blog/2025-07-16-branching-2-0.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-07-16:00:00'
toc_depth: 3
author: saxon_fletcher
-image: launch-week-15/day-3-branching-2-0/og.jpg
-thumb: launch-week-15/day-3-branching-2-0/thumb.png
+imgSocial: launch-week-15/day-3-branching-2-0/og.png
+imgThumb: launch-week-15/day-3-branching-2-0/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-16-improved-security-controls.mdx b/apps/www/_blog/2025-07-16-improved-security-controls.mdx
index 0f23203c659..c8b7c401fde 100644
--- a/apps/www/_blog/2025-07-16-improved-security-controls.mdx
+++ b/apps/www/_blog/2025-07-16-improved-security-controls.mdx
@@ -11,8 +11,8 @@ tags:
date: '2025-07-16:15:00'
toc_depth: 3
author: staaldraad,hieu,filipe
-image: launch-week-15/day-3-security-controls/og.jpg
-thumb: launch-week-15/day-3-security-controls/thumb.png
+imgSocial: launch-week-15/day-3-security-controls/og.png
+imgThumb: launch-week-15/day-3-security-controls/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-17-algolia-connector-for-supabase.mdx b/apps/www/_blog/2025-07-17-algolia-connector-for-supabase.mdx
index 203fbd8ed4c..7e549b03c67 100644
--- a/apps/www/_blog/2025-07-17-algolia-connector-for-supabase.mdx
+++ b/apps/www/_blog/2025-07-17-algolia-connector-for-supabase.mdx
@@ -9,8 +9,8 @@ tags:
date: '2025-07-17:00:00'
toc_depth: 2
author: prashant
-image: launch-week-15/day-4-algolia-connector/og.png
-thumb: launch-week-15/day-4-algolia-connector/thumb.png
+imgSocial: launch-week-15/day-4-algolia-connector/og.png
+imgThumb: launch-week-15/day-4-algolia-connector/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-17-new-observability-features-in-supabase.mdx b/apps/www/_blog/2025-07-17-new-observability-features-in-supabase.mdx
index 45a6f06b9d0..ade00a89039 100644
--- a/apps/www/_blog/2025-07-17-new-observability-features-in-supabase.mdx
+++ b/apps/www/_blog/2025-07-17-new-observability-features-in-supabase.mdx
@@ -10,8 +10,8 @@ tags:
date: '2025-07-17:00:00'
toc_depth: 3
author: jonny,saxon_fletcher,jordi,fsansalvadore
-image: launch-week-15/day-4-o11y-day/og.jpg
-thumb: launch-week-15/day-4-o11y-day/thumb.png
+imgSocial: launch-week-15/day-4-o11y-day/og.png
+imgThumb: launch-week-15/day-4-o11y-day/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-18-launch-week-15-top-10.mdx b/apps/www/_blog/2025-07-18-launch-week-15-top-10.mdx
index fdfdf0c6b28..635b36b74a4 100644
--- a/apps/www/_blog/2025-07-18-launch-week-15-top-10.mdx
+++ b/apps/www/_blog/2025-07-18-launch-week-15-top-10.mdx
@@ -2,8 +2,8 @@
title: 'Top 10 Launches of Launch Week 15'
description: Highlights from Launch Week 15
author: wenbo
-image: launch-week-15/wrap-up/og.png
-thumb: launch-week-15/wrap-up/thumb.png
+imgSocial: launch-week-15/wrap-up/og.png
+imgThumb: launch-week-15/wrap-up/thumb.png
launchweek: '15'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-07-18-lw15-hackathon.mdx b/apps/www/_blog/2025-07-18-lw15-hackathon.mdx
index 7409ce57e7a..79d6046b7af 100644
--- a/apps/www/_blog/2025-07-18-lw15-hackathon.mdx
+++ b/apps/www/_blog/2025-07-18-lw15-hackathon.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Launch Week 15 Hackathon'
description: Build an Open Source Project over 10 days. 5 prize categories.
author: tyler_shukert
-image: launch-week-15/hackathon/lw15-hackathon.png
-thumb: launch-week-15/hackathon/lw15-hackathon.png
+imgSocial: launch-week-15/hackathon/lw15-hackathon.png
+imgThumb: launch-week-15/hackathon/lw15-hackathon.png
launchweek: '15'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-07-18-persistent-storage-for-faster-edge-functions.mdx b/apps/www/_blog/2025-07-18-persistent-storage-for-faster-edge-functions.mdx
index 239626d91bb..4f476b845ae 100644
--- a/apps/www/_blog/2025-07-18-persistent-storage-for-faster-edge-functions.mdx
+++ b/apps/www/_blog/2025-07-18-persistent-storage-for-faster-edge-functions.mdx
@@ -12,8 +12,8 @@ tags:
date: '2025-07-18:00:00'
toc_depth: 3
author: laktek,nyannyacha
-image: launch-week-15/day-5-persistent-storage-for-functions/og.jpg
-thumb: launch-week-15/day-5-persistent-storage-for-functions/thumb.png
+imgSocial: launch-week-15/day-5-persistent-storage-for-functions/og.png
+imgThumb: launch-week-15/day-5-persistent-storage-for-functions/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-07-18-storage-500gb-uploads-cheaper-egress-pricing.mdx b/apps/www/_blog/2025-07-18-storage-500gb-uploads-cheaper-egress-pricing.mdx
index 32819e870e6..90de8e06281 100644
--- a/apps/www/_blog/2025-07-18-storage-500gb-uploads-cheaper-egress-pricing.mdx
+++ b/apps/www/_blog/2025-07-18-storage-500gb-uploads-cheaper-egress-pricing.mdx
@@ -9,8 +9,8 @@ tags:
date: '2025-07-18:10:00'
toc_depth: 2
author: inian
-image: launch-week-15/day-5-storage-cheaper-egress/og.png
-thumb: launch-week-15/day-5-storage-cheaper-egress/thumb.png
+imgSocial: launch-week-15/day-5-storage-cheaper-egress/og.png
+imgThumb: launch-week-15/day-5-storage-cheaper-egress/thumb.png
launchweek: '15'
---
diff --git a/apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx b/apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx
index bcc842f0e83..70e03ea6184 100644
--- a/apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx
+++ b/apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx
@@ -8,8 +8,8 @@ tags:
date: '2025-08-12:10:00'
toc_depth: 2
author: prashant
-image: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png
-thumb: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png
+imgSocial: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png
+imgThumb: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png
---
Authentication appears in nearly every application but is rarely the core value proposition. Yet development teams often spend weeks or months building, testing, and maintaining auth systems. Let's explore the real costs of building authentication from scratch versus using a solution like Supabase Auth.
diff --git a/apps/www/_blog/2025-08-20-lw15-hackathon-winners.mdx b/apps/www/_blog/2025-08-20-lw15-hackathon-winners.mdx
index f8915bda385..c692f5614a2 100644
--- a/apps/www/_blog/2025-08-20-lw15-hackathon-winners.mdx
+++ b/apps/www/_blog/2025-08-20-lw15-hackathon-winners.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Launch Week 15 Hackathon Winner Announcement'
description: Announcing the winners of the Supabase Launch Week 15 Hackathon.
author: tyler_shukert
-image: launch-week-15/hackathon-winners/lw15-hackathon.png
-thumb: launch-week-15/hackathon-winners/lw15-hackathon.png
+imgSocial: launch-week-15/hackathon-winners/lw15-hackathon.png
+imgThumb: launch-week-15/hackathon-winners/lw15-hackathon.png
launchweek: '15'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-09-09-orioledb-patent-free.mdx b/apps/www/_blog/2025-09-09-orioledb-patent-free.mdx
index f2e699e4120..410ef40281c 100644
--- a/apps/www/_blog/2025-09-09-orioledb-patent-free.mdx
+++ b/apps/www/_blog/2025-09-09-orioledb-patent-free.mdx
@@ -2,8 +2,8 @@
title: 'OrioleDB Patent: now freely available to the Postgres community'
description: 'Supabase is explicitly making available a non-exclusive license of the OrioleDB patent to all OrioleDB users in accordance with the OrioleDB license.'
author: paul_copplestone
-image: 2025-09-orioledb-patent/og.png
-thumb: 2025-09-orioledb-patent/thumb.png
+imgSocial: 2025-09-orioledb-patent/og.png
+imgThumb: 2025-09-orioledb-patent/thumb.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2025-09-12-processing-large-jobs-with-edge-functions.mdx b/apps/www/_blog/2025-09-12-processing-large-jobs-with-edge-functions.mdx
index 35dc7d0132a..0fbc064dcf8 100644
--- a/apps/www/_blog/2025-09-12-processing-large-jobs-with-edge-functions.mdx
+++ b/apps/www/_blog/2025-09-12-processing-large-jobs-with-edge-functions.mdx
@@ -2,8 +2,8 @@
title: Processing large jobs with Edge Functions, Cron, and Queues
description: Learn how to build scalable data processing pipelines using Supabase Edge Functions, cron jobs, and database queues and handle large workloads without timeouts or crashes.
author: prashant
-image: 2025-09-processing-large-jobs-with-edge-functions/og.png
-thumb: 2025-09-processing-large-jobs-with-edge-functions/og.png
+imgSocial: 2025-09-processing-large-jobs-with-edge-functions/og.png
+imgThumb: 2025-09-processing-large-jobs-with-edge-functions/og.png
categories:
- postgres
- edge functions
diff --git a/apps/www/_blog/2025-09-16-defense-in-depth-mcp.mdx b/apps/www/_blog/2025-09-16-defense-in-depth-mcp.mdx
index 49ecb3b8ab2..a524c6f5bf2 100644
--- a/apps/www/_blog/2025-09-16-defense-in-depth-mcp.mdx
+++ b/apps/www/_blog/2025-09-16-defense-in-depth-mcp.mdx
@@ -2,8 +2,8 @@
title: Defense in Depth for MCP Servers
description: Learn about the security risks of connecting AI agents to databases and how to implement defense in depth strategies to protect your data from prompt injection attacks.
author: bilharmer
-image: 2025-09-defense-in-depth-mcp/og.png
-thumb: 2025-09-defense-in-depth-mcp/og.png
+imgSocial: 2025-09-defense-in-depth-mcp/og.png
+imgThumb: 2025-09-defense-in-depth-mcp/og.png
categories:
- postgres
- mcp
diff --git a/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx b/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx
index 139b5e315ff..2fd0217dffa 100644
--- a/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx
+++ b/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx
@@ -2,8 +2,8 @@
title: 'Lovable Cloud + Supabase: The Default Platform for AI Builders'
description: Lovable Cloud makes building with AI agents easier than ever, with every project powered by Supabase behind the scenes.
author: prashant
-image: 2025-09-lovable-cloud-launch/og.png
-thumb: 2025-09-lovable-cloud-launch/og.png
+imgSocial: 2025-09-lovable-cloud-launch/og.png
+imgThumb: 2025-09-lovable-cloud-launch/og.png
categories:
- product
- lovable
diff --git a/apps/www/_blog/2025-09-30-bolt-cloud-launch.mdx b/apps/www/_blog/2025-09-30-bolt-cloud-launch.mdx
index 141962b69b2..084d845ab7e 100644
--- a/apps/www/_blog/2025-09-30-bolt-cloud-launch.mdx
+++ b/apps/www/_blog/2025-09-30-bolt-cloud-launch.mdx
@@ -2,8 +2,8 @@
title: Enterprise speed, enterprise standards with Bolt Cloud + Supabase
description: With today's launch of Bolt Cloud, every project that needs a backend is powered by Supabase, giving developers enterprise standards with the speed of vibe coding.
author: prashant
-image: 2025-09-bolt-cloud-launch/og.png
-thumb: 2025-09-bolt-cloud-launch/og.png
+imgSocial: 2025-09-bolt-cloud-launch/og.png
+imgThumb: 2025-09-bolt-cloud-launch/og.png
categories:
- product
- bolt
diff --git a/apps/www/_blog/2025-09-30-postgrest-13-release.mdx b/apps/www/_blog/2025-09-30-postgrest-13-release.mdx
index d729893ebfc..265812e28f5 100644
--- a/apps/www/_blog/2025-09-30-postgrest-13-release.mdx
+++ b/apps/www/_blog/2025-09-30-postgrest-13-release.mdx
@@ -2,8 +2,8 @@
title: PostgREST 13
description: New features and changes in PostgREST version 13.
author: steve_chavez,laurenceisla,avallete
-image: 2025-09-30-postgrest-13-release/postgrest-13-release.png
-thumb: 2025-09-30-postgrest-13-release/postgrest-13-release.png
+imgSocial: 2025-09-30-postgrest-13-release/postgrest-13-release.png
+imgThumb: 2025-09-30-postgrest-13-release/postgrest-13-release.png
categories:
- postgres
tags:
diff --git a/apps/www/_blog/2025-10-03-1000-yc-companies.mdx b/apps/www/_blog/2025-10-03-1000-yc-companies.mdx
index 293406893e9..00fa337305c 100644
--- a/apps/www/_blog/2025-10-03-1000-yc-companies.mdx
+++ b/apps/www/_blog/2025-10-03-1000-yc-companies.mdx
@@ -2,8 +2,8 @@
title: '1000 Y Combinator Founders Choose Supabase'
description: 'Leading startups accelerate product development with Supabase backend platform.'
author: gregorykress
-image: select/2025/1000-yc-companies/og.png
-thumb: select/2025/1000-yc-companies/thumb.png
+imgSocial: select/2025/1000-yc-companies/og.png
+imgThumb: select/2025/1000-yc-companies/thumb.png
launchweek: 'select-2025'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-10-03-login-with-solana-ethereum.mdx b/apps/www/_blog/2025-10-03-login-with-solana-ethereum.mdx
index a0617744510..3304f2cf25b 100644
--- a/apps/www/_blog/2025-10-03-login-with-solana-ethereum.mdx
+++ b/apps/www/_blog/2025-10-03-login-with-solana-ethereum.mdx
@@ -2,8 +2,8 @@
title: 'gm 👋 web3, welcome aboard to Sign in with Web3 (Solana, Ethereum)'
description: 'Ethereum and Solana wallet authentication now supported in Supabase Auth.'
author: stojan
-image: select/2025/login-w-solana-ethereum/og.png
-thumb: select/2025/login-w-solana-ethereum/thumb.png
+imgSocial: select/2025/login-w-solana-ethereum/og.png
+imgThumb: select/2025/login-w-solana-ethereum/thumb.png
launchweek: 'select-2025'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-10-03-remote-mcp-server.mdx b/apps/www/_blog/2025-10-03-remote-mcp-server.mdx
index 737c7b0c175..c0ed7eedae9 100644
--- a/apps/www/_blog/2025-10-03-remote-mcp-server.mdx
+++ b/apps/www/_blog/2025-10-03-remote-mcp-server.mdx
@@ -2,8 +2,8 @@
title: 'Announcing the Supabase Remote MCP Server'
description: 'Remote MCP server enables AI agents to connect with Supabase projects.'
author: gregnr
-image: select/2025/remote-mcp-server/og.png
-thumb: select/2025/remote-mcp-server/thumb.png
+imgSocial: select/2025/remote-mcp-server/og.png
+imgThumb: select/2025/remote-mcp-server/thumb.png
launchweek: 'select-2025'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-10-03-supabase-series-e.mdx b/apps/www/_blog/2025-10-03-supabase-series-e.mdx
index 902bfbc82f2..763e00fbe6b 100644
--- a/apps/www/_blog/2025-10-03-supabase-series-e.mdx
+++ b/apps/www/_blog/2025-10-03-supabase-series-e.mdx
@@ -2,8 +2,8 @@
title: 'Supabase Series E'
description: 'Raised funding from Accel, Peak XV, Figma, and existing investors.'
author: paul_copplestone
-image: select/2025/announcing-series-e/og.png
-thumb: select/2025/announcing-series-e/thumb.png
+imgSocial: select/2025/announcing-series-e/og.png
+imgThumb: select/2025/announcing-series-e/thumb.png
launchweek: 'select-2025'
categories:
- launch-week
diff --git a/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx b/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx
index db59a0a0208..b62dca6068c 100644
--- a/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx
+++ b/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx
@@ -2,8 +2,8 @@
title: 'Triplit joins Supabase'
description: 'Matt Linkous is joining Supabase to expand third-party integrations and offline-first capabilities.'
author: paul_copplestone
-image: triplit-joins-supabase/thumb.png
-thumb: triplit-joins-supabase/thumb.png
+imgSocial: triplit-joins-supabase/thumb.png
+imgThumb: triplit-joins-supabase/thumb.png
categories:
- company
date: '2025-10-08:10:00:00'
diff --git a/apps/www/_blog/2025-10-16-snap-launches-snap-cloud.mdx b/apps/www/_blog/2025-10-16-snap-launches-snap-cloud.mdx
index 23f072ada80..28da6290d5a 100644
--- a/apps/www/_blog/2025-10-16-snap-launches-snap-cloud.mdx
+++ b/apps/www/_blog/2025-10-16-snap-launches-snap-cloud.mdx
@@ -2,8 +2,8 @@
title: 'Snap, Inc. Launches Snap Cloud, Powered by Supabase'
description: 'Snap Cloud is a new managed backend platform for developers building on Spectacles, powered by Supabase.'
author: inian
-image: 2025-10-16-snap-launches-snap-cloud/og.png
-thumb: 2025-10-16-snap-launches-snap-cloud/og.png
+imgSocial: 2025-10-16-snap-launches-snap-cloud/og.png
+imgThumb: 2025-10-16-snap-launches-snap-cloud/og.png
categories:
- product
date: '2025-10-16:10:00:00'
diff --git a/apps/www/_blog/2025-12-01-vector-buckets.mdx b/apps/www/_blog/2025-12-01-vector-buckets.mdx
index 8140126b186..f9b1c5d570f 100644
--- a/apps/www/_blog/2025-12-01-vector-buckets.mdx
+++ b/apps/www/_blog/2025-12-01-vector-buckets.mdx
@@ -2,8 +2,8 @@
title: 'Introducing Vector Buckets'
description: 'Introducing vector storage in Supabase: a durable storage layer with similarity search built-in.'
author: fabrizio
-image: 2025-12-01-vector-buckets/og.png?v=3
-thumb: 2025-12-01-vector-buckets/thumb.png?v=3
+imgSocial: 2025-12-01-vector-buckets/og.png?v=3
+imgThumb: 2025-12-01-vector-buckets/thumb.png?v=3
categories:
- product
- launch-week
diff --git a/apps/www/_blog/2025-12-02-introducing-analytics-buckets.mdx b/apps/www/_blog/2025-12-02-introducing-analytics-buckets.mdx
index 04eef79ac36..c69ec063282 100644
--- a/apps/www/_blog/2025-12-02-introducing-analytics-buckets.mdx
+++ b/apps/www/_blog/2025-12-02-introducing-analytics-buckets.mdx
@@ -2,8 +2,8 @@
title: 'Introducing Analytics Buckets'
description: 'Use Analytics Buckets to store huge datasets in Supabase Storage with Apache Iceberg and columnar Parquet format, optimized for analytical workloads.'
author: fabrizio
-image: 2025-12-02-introducing-analytics-buckets/og.png
-thumb: 2025-12-02-introducing-analytics-buckets/thumb.png
+imgSocial: 2025-12-02-introducing-analytics-buckets/og.png
+imgThumb: 2025-12-02-introducing-analytics-buckets/thumb.png
categories:
- product
- launch-week
diff --git a/apps/www/_blog/2025-12-02-introducing-supabase-etl.mdx b/apps/www/_blog/2025-12-02-introducing-supabase-etl.mdx
index dec76d78f64..4a04256c80a 100644
--- a/apps/www/_blog/2025-12-02-introducing-supabase-etl.mdx
+++ b/apps/www/_blog/2025-12-02-introducing-supabase-etl.mdx
@@ -2,8 +2,8 @@
title: 'Introducing Supabase ETL'
description: 'A change-data-capture pipeline that replicates your Postgres tables to analytical destinations like Analytics Buckets and BigQuery in near real time.'
author: riccardo_busetti
-image: 2025-12-02-introducing-supabase-etl/og.png
-thumb: 2025-12-02-introducing-supabase-etl/thumb.png
+imgSocial: 2025-12-02-introducing-supabase-etl/og.png
+imgThumb: 2025-12-02-introducing-supabase-etl/thumb.png
categories:
- product
- launch-week
diff --git a/apps/www/_blog/2025-12-03-introducing-seven-new-email-templates-for-auth.mdx b/apps/www/_blog/2025-12-03-introducing-seven-new-email-templates-for-auth.mdx
index 6d091604e79..22b2bc7bd43 100644
--- a/apps/www/_blog/2025-12-03-introducing-seven-new-email-templates-for-auth.mdx
+++ b/apps/www/_blog/2025-12-03-introducing-seven-new-email-templates-for-auth.mdx
@@ -2,8 +2,8 @@
title: 'Introducing Seven New Email Templates for Supabase Auth'
description: 'Notify users when security-sensitive actions are taken on their account.'
author: fady,danny
-image: 2025-12-03-introducing-seven-new-email-templates-for-auth/og.png
-thumb: 2025-12-03-introducing-seven-new-email-templates-for-auth/og.png
+imgSocial: 2025-12-03-introducing-seven-new-email-templates-for-auth/og.png
+imgThumb: 2025-12-03-introducing-seven-new-email-templates-for-auth/og.png
categories:
- product
date: '2025-12-03:10:00:00'
diff --git a/apps/www/_blog/2025-12-03-supabase-power-for-kiro.mdx b/apps/www/_blog/2025-12-03-supabase-power-for-kiro.mdx
index 7e896eaf9e2..f4fcdde1ec7 100644
--- a/apps/www/_blog/2025-12-03-supabase-power-for-kiro.mdx
+++ b/apps/www/_blog/2025-12-03-supabase-power-for-kiro.mdx
@@ -2,8 +2,8 @@
title: 'The new Supabase power for Kiro'
description: 'Build full-stack applications faster with the Kiro IDE using deep knowledge of your Supabase project, best practices for database migrations, edge functions, and security policies.'
author: matt_rossman
-image: 2025-12-03-supabase-power-for-kiro/og.png
-thumb: 2025-12-03-supabase-power-for-kiro/thumb.png
+imgSocial: 2025-12-03-supabase-power-for-kiro/og.png
+imgThumb: 2025-12-03-supabase-power-for-kiro/thumb.png
categories:
- product
- launch-week
diff --git a/apps/www/_blog/2025-12-04-adding-async-streaming-to-pg-fdw.mdx b/apps/www/_blog/2025-12-04-adding-async-streaming-to-pg-fdw.mdx
index 7db243ab496..8ec8513b8e9 100644
--- a/apps/www/_blog/2025-12-04-adding-async-streaming-to-pg-fdw.mdx
+++ b/apps/www/_blog/2025-12-04-adding-async-streaming-to-pg-fdw.mdx
@@ -2,8 +2,8 @@
title: 'Adding Async Streaming to Postgres Foreign Data Wrappers'
description: 'Supabase Wrappers introduces asynchronous streaming to Postgres Foreign Data Wrappers, enabling efficient, memory-safe queries for massive analytical workloads.'
author: bo_lu
-image: 2025-12-04-adding-async-streaming-to-pg-fdw/og.png
-thumb: 2025-12-04-adding-async-streaming-to-pg-fdw/thumb.png
+imgSocial: 2025-12-04-adding-async-streaming-to-pg-fdw/og.png
+imgThumb: 2025-12-04-adding-async-streaming-to-pg-fdw/thumb.png
categories:
- developers
- product
diff --git a/apps/www/_blog/2025-12-04-oauth2-provider.mdx b/apps/www/_blog/2025-12-04-oauth2-provider.mdx
index 419274a57fa..6abb42e14b6 100644
--- a/apps/www/_blog/2025-12-04-oauth2-provider.mdx
+++ b/apps/www/_blog/2025-12-04-oauth2-provider.mdx
@@ -2,8 +2,8 @@
title: 'Build "Sign in with Your App" using Supabase Auth'
description: 'Supabase Auth now supports OAuth 2.1 and OpenID Connect server capabilities, turning your project into a full-fledged identity provider for AI agents, third-party developers, and enterprise SSO.'
author: cemal_kilic
-image: 2025-12-04-oauth2-provider/og.png
-thumb: 2025-12-04-oauth2-provider/thumb.png
+imgSocial: 2025-12-04-oauth2-provider/og.png
+imgThumb: 2025-12-04-oauth2-provider/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2025-12-05-introducing-supabase-for-platforms.mdx b/apps/www/_blog/2025-12-05-introducing-supabase-for-platforms.mdx
index fcbb4744d10..22d99032e01 100644
--- a/apps/www/_blog/2025-12-05-introducing-supabase-for-platforms.mdx
+++ b/apps/www/_blog/2025-12-05-introducing-supabase-for-platforms.mdx
@@ -2,8 +2,8 @@
title: 'Introducing Supabase for Platforms'
description: Use Supabase as a platform for your own business and tools
author: wenbo
-image: 2025-12-05-introducing-supabase-for-platforms/og.png
-thumb: 2025-12-05-introducing-supabase-for-platforms/thumb.png
+imgSocial: 2025-12-05-introducing-supabase-for-platforms/og.png
+imgThumb: 2025-12-05-introducing-supabase-for-platforms/thumb.png
categories:
- product
- launch-week
diff --git a/apps/www/_blog/2025-12-05-realtime-broadcast-replay.mdx b/apps/www/_blog/2025-12-05-realtime-broadcast-replay.mdx
index d6b0e22aa72..5dd6231e4c5 100644
--- a/apps/www/_blog/2025-12-05-realtime-broadcast-replay.mdx
+++ b/apps/www/_blog/2025-12-05-realtime-broadcast-replay.mdx
@@ -2,8 +2,8 @@
title: 'Realtime: Broadcast Replay'
description: ''
author: eduardo_gurgel
-image: 2025-12-05-realtime-broadcast-replay/og.png
-thumb: 2025-12-05-realtime-broadcast-replay/thumb.png
+imgSocial: 2025-12-05-realtime-broadcast-replay/og.png
+imgThumb: 2025-12-05-realtime-broadcast-replay/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2025-12-08-introducing-iceberg-js.mdx b/apps/www/_blog/2025-12-08-introducing-iceberg-js.mdx
index ea1efd63860..d675d22afa5 100644
--- a/apps/www/_blog/2025-12-08-introducing-iceberg-js.mdx
+++ b/apps/www/_blog/2025-12-08-introducing-iceberg-js.mdx
@@ -2,8 +2,8 @@
title: 'Introducing iceberg-js: A JavaScript Client for Apache Iceberg'
description: 'A minimal, vendor-agnostic JavaScript client for the Apache Iceberg REST Catalog API, providing type-safe catalog management for JavaScript and TypeScript developers.'
author: katerina_skroumpelou
-image: 2025-12-08-introducing-iceberg-js/og.png
-thumb: 2025-12-08-introducing-iceberg-js/thumb.png
+imgSocial: 2025-12-08-introducing-iceberg-js/og.png
+imgThumb: 2025-12-08-introducing-iceberg-js/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2025-12-16-metrics-api-observability.mdx b/apps/www/_blog/2025-12-16-metrics-api-observability.mdx
index b53baa5db82..1775b8b5bc7 100644
--- a/apps/www/_blog/2025-12-16-metrics-api-observability.mdx
+++ b/apps/www/_blog/2025-12-16-metrics-api-observability.mdx
@@ -2,8 +2,8 @@
title: 'Own Your Observability: Supabase Metrics API'
description: 'Stream your Supabase database telemetry into any Prometheus-compatible observability stack with the Metrics API. Full control over monitoring, visualization, and alerting.'
author: steven_eubank
-image: 2025-12-16-metrics-api-observability/og.png
-thumb: 2025-12-16-metrics-api-observability/thumb.png
+imgSocial: 2025-12-16-metrics-api-observability/og.png
+imgThumb: 2025-12-16-metrics-api-observability/thumb.png
categories:
- product
tags:
diff --git a/apps/www/_blog/2025-12-17-building-chatgpt-apps-with-supabase.mdx b/apps/www/_blog/2025-12-17-building-chatgpt-apps-with-supabase.mdx
index d0cca011468..ea52e1789c3 100644
--- a/apps/www/_blog/2025-12-17-building-chatgpt-apps-with-supabase.mdx
+++ b/apps/www/_blog/2025-12-17-building-chatgpt-apps-with-supabase.mdx
@@ -2,8 +2,8 @@
title: 'Building ChatGPT Apps with Supabase Edge Functions and mcp-use'
description: 'Learn how to build a ChatGPT app that connects to your Supabase database using mcp-use and Edge Functions. Create interactive widgets for schema exploration, data viewing, and SQL queries.'
author: pedro_rodrigues
-image: 2025-12-17-building-chatgpt-apps-with-supabase/og.png
-thumb: 2025-12-17-building-chatgpt-apps-with-supabase/thumb.png
+imgSocial: 2025-12-17-building-chatgpt-apps-with-supabase/og.png
+imgThumb: 2025-12-17-building-chatgpt-apps-with-supabase/og.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2025-12-19-stripe-sync-engine-integration.mdx b/apps/www/_blog/2025-12-19-stripe-sync-engine-integration.mdx
index 34a38df5288..4ae23ac4d6c 100644
--- a/apps/www/_blog/2025-12-19-stripe-sync-engine-integration.mdx
+++ b/apps/www/_blog/2025-12-19-stripe-sync-engine-integration.mdx
@@ -9,8 +9,8 @@ tags:
date: '2025-12-19'
toc_depth: 3
author: matt_linkous,prashant
-image: 2025-12-19-stripe-sync-engine-integration/og.png
-thumb: 2025-12-19-stripe-sync-engine-integration/thumb.png
+imgSocial: 2025-12-19-stripe-sync-engine-integration/thumb.png
+imgThumb: 2025-12-19-stripe-sync-engine-integration/thumb.png
---
Today we are announcing a partnership with Stripe and official support for the [Stripe Sync Engine](/blog/stripe-engine-as-sync-library) in the Supabase Dashboard. Now, you get a one-click integration that syncs your Stripe data directly into your Supabase database. Query your customers, subscriptions, invoices, and payments using standard SQL.
diff --git a/apps/www/_blog/2026-01-07-supabase-security-2025-retro.mdx b/apps/www/_blog/2026-01-07-supabase-security-2025-retro.mdx
index 19b3e6cff1b..290085f37ba 100644
--- a/apps/www/_blog/2026-01-07-supabase-security-2025-retro.mdx
+++ b/apps/www/_blog/2026-01-07-supabase-security-2025-retro.mdx
@@ -8,8 +8,8 @@ tags:
date: '2026-01-07'
toc_depth: 3
author: bilharmer,paul_copplestone
-image: 2026/security-retro/og.png
-thumb: 2026/security-retro/thumb.png
+imgSocial: 2026/security-retro/social.png
+imgThumb: 2026/security-retro/thumb.png
---
This post covers security changes made to the Supabase platform in 2025 and what to expect in 2026. Some changes may be breaking.
diff --git a/apps/www/_blog/2026-01-08-introducing-trae-solo-integration.mdx b/apps/www/_blog/2026-01-08-introducing-trae-solo-integration.mdx
index f6820e2d31a..d673e91af26 100644
--- a/apps/www/_blog/2026-01-08-introducing-trae-solo-integration.mdx
+++ b/apps/www/_blog/2026-01-08-introducing-trae-solo-integration.mdx
@@ -2,8 +2,8 @@
title: 'Introducing TRAE SOLO integration with Supabase'
description: 'TRAE IDE now integrates with Supabase, enabling developers to manage their entire backend infrastructure without leaving the IDE. Browse databases, manage storage, configure auth, and more.'
author: prashant
-image: 2026-01-08-introducing-trae-solo-integration/og.png
-thumb: 2026-01-08-introducing-trae-solo-integration/og.png
+imgSocial: 2026-01-08-introducing-trae-solo-integration/og.png
+imgThumb: 2026-01-08-introducing-trae-solo-integration/og.png
categories:
- product
- company
@@ -39,19 +39,19 @@ TRAE SOLO integrates deeply with Supabase, enabling developers to combine AI-dri
View your database tables, explore schemas, and run queries without switching to the Supabase dashboard. The AI agent understands your database structure and can help you write queries, create migrations, and optimize your schema.
-
+
### Manage storage buckets
Browse your Supabase Storage buckets directly from TRAE. Upload, organize, and manage files as part of your development workflow.
-
+
### Configure authentication
View your auth settings and see your current users. The integration gives you visibility into your authentication configuration so you can develop auth flows with confidence.
-
+
### Manage your entire Supabase backend
@@ -65,7 +65,7 @@ TRAE also includes separate areas to manage other functions within Supabase, inc
Developers who want to perform tasks on their local or remote Supabase project can configure TRAE to use the Supabase MCP Server. This will give them access to all tools, including the ability to create databases, change RLS policies, add storage buckets, and much more.
-
+
## How it works
diff --git a/apps/www/_blog/2026-01-15-read-replicas-vs-bigger-compute.mdx b/apps/www/_blog/2026-01-15-read-replicas-vs-bigger-compute.mdx
new file mode 100644
index 00000000000..47e22c22323
--- /dev/null
+++ b/apps/www/_blog/2026-01-15-read-replicas-vs-bigger-compute.mdx
@@ -0,0 +1,343 @@
+---
+title: 'When to use Read Replicas vs. bigger compute'
+description: 'A practical guide to diagnosing database slowdowns and choosing between vertical scaling and Read Replicas based on your workload, budget, and performance bottlenecks.'
+author: prashant
+date: '2026-01-15'
+categories:
+ - product
+tags:
+ - read-replicas
+ - database
+ - scaling
+ - performance
+ - postgres
+ - compute
+ - infrastructure
+toc_depth: 3
+imgSocial: 'https://zhfonblqamxferhoguzj.supabase.co/functions/v1/generate-og?template=announcement&layout=text-only©=When+to+use%0A%5BRead+Replicas%5D%0Avs.+bigger+compute'
+imgThumb: 'https://zhfonblqamxferhoguzj.supabase.co/functions/v1/generate-og?template=announcement&layout=text-only©=When+to+use%0A%5BRead+Replicas%5D%0Avs.+bigger+compute'
+---
+
+# When to use Read Replicas vs. bigger compute
+
+When your database starts slowing down, you face a choice: make your existing database bigger, or spread the load across multiple databases. Both approaches work. Neither is universally correct. The right answer depends on your workload, your budget, and where the bottleneck actually is.
+
+This post walks through how to diagnose what is causing your database to slow down, when vertical scaling (bigger compute) makes sense, when horizontal read scaling (Read Replicas) is the better path, and how to make the decision with real numbers.
+
+## The scaling decision every growing database faces
+
+Your Supabase project starts on a Small compute instance. It handles your MVP, your beta users, and your first paying customers. Then, traffic grows and response times creep up. You need to scale.
+
+Here is the quick version:
+
+| If this is you... | Do this |
+| ------------------------------------------------------------------- | ------------------------------------------ |
+| Database is slow and CPU (user processes) is consistently above 70% | Upgrade compute |
+| Analytics queries are hurting production | Add a Read Replica |
+| Users in Europe or Asia have high latency | Add a Read Replica in their region |
+| I am maxed out at 16XL and need more read capacity | Add Read Replicas |
+| My workload is mostly writes | Upgrade compute (replicas only help reads) |
+| I want the simplest solution with no code changes | Upgrade compute |
+
+The rest of this post explains how to diagnose your specific situation and make the right call with real numbers.
+
+## First, diagnose the actual problem
+
+Before choosing a scaling strategy, figure out what is actually causing the slowdown. Throwing hardware at the wrong problem wastes money. The [database performance guide](https://supabase.com/docs/guides/database/debugging-performance) covers diagnostics in depth. Here are the essentials.
+
+### Check your query patterns
+
+Run this query to see what is consuming the most time in your database:
+
+```sql
+select
+ calls,
+ mean_exec_time::numeric(10,2) as avg_ms,
+ total_exec_time::numeric(10,2) as total_ms,
+ query
+from pg_stat_statements
+order by total_exec_time desc
+limit 20;
+```
+
+This tells you where time is actually going. You might discover:
+
+- A few slow queries dominating execution time (optimize those queries first)
+- Many fast queries adding up (you need more capacity)
+- Analytics queries competing with production traffic (you need workload isolation)
+
+### Check your read/write ratio
+
+Read Replicas only help with read traffic. If your workload is write-heavy, replicas will not help. Check your ratio:
+
+```sql
+select
+ sum(seq_tup_read + idx_tup_fetch) as reads,
+ sum(n_tup_ins + n_tup_upd + n_tup_del) as writes,
+ round(
+ 100.0 * sum(seq_tup_read + idx_tup_fetch) / nullif(
+ sum(seq_tup_read + idx_tup_fetch + n_tup_ins + n_tup_upd + n_tup_del),
+ 0
+ ),
+ 1
+ ) as read_percentage
+from pg_stat_user_tables;
+```
+
+If reads are 80% or more of your traffic, Read Replicas can distribute that load. If writes dominate, you need bigger compute (or query optimization, or Supabase Queues for background processing).
+
+### Check CPU and memory utilization
+
+In the Supabase Dashboard, go to **Reports > Database**. Look at:
+
+- **CPU utilization:** Sustained above 70% means you are running hot
+- **Connection count:** Approaching limits causes connection errors
+
+These metrics tell you whether you are hitting hardware limits or software limits.
+
+## When bigger compute is the right choice
+
+Vertical scaling is the simpler path. One click in the dashboard, a brief restart, and your database has more resources. Choose bigger compute when:
+
+### Your workload is write-heavy
+
+Read Replicas cannot help with writes. All INSERT, UPDATE, and DELETE operations go to the primary database. If writes are your bottleneck, you need a bigger primary.
+
+### You have headroom in the compute tiers
+
+Supabase offers [compute tiers](https://supabase.com/docs/guides/platform/compute-and-disk) from Micro ($10/month) to 16XL ($3,730/month). If you are on Medium and experiencing slowdowns, upgrading to Large or XL is straightforward and immediate.
+
+| Current tier | Next tier | Monthly cost increase | What you get |
+| ------------ | ------------ | --------------------- | --------------------- |
+| Small ($15) | Medium ($60) | +$45 | 2x RAM (2GB to 4GB) |
+| Medium ($60) | Large ($110) | +$50 | 2x RAM, dedicated CPU |
+| Large ($110) | XL ($210) | +$100 | 2x CPU cores, 2x RAM |
+| XL ($210) | 2XL ($410) | +$200 | 2x CPU cores, 2x RAM |
+
+### Your queries are already optimized
+
+Before scaling hardware, check that your queries use indexes effectively. An index is like the index at the back of a book. Instead of reading every page to find a topic, you look it up in the index and jump straight to the right page. Postgres works the same way. Without an index, Postgres reads every row in a table to find matching data. This is called a sequential scan. With an index, Postgres looks up which rows match and jumps directly to them. The difference can be dramatic: a query that takes 30 seconds without an index might take 30 milliseconds with one.
+
+Run `EXPLAIN ANALYZE` on slow queries to see if Postgres is using indexes or doing sequential scans. If you see "Seq Scan" on a large table, you probably need an index. The [Database Advisor](https://supabase.com/docs/guides/database/database-advisors) in your Supabase Dashboard can also identify missing indexes and other performance issues automatically.
+
+**Quick index guidelines:**
+
+- Add indexes on columns used in WHERE clauses
+- Add indexes on columns used in JOIN conditions
+- Add indexes on columns used in ORDER BY
+- Compound indexes work for queries that filter on multiple columns
+- Do not add indexes on every column. Each index slows down writes and uses disk space.
+
+Sometimes a $0 index beats a $200/month compute upgrade.
+
+**Analyze your queries with Claude Code:**
+
+If you use [Claude Code](https://claude.ai/claude-code) with the [Supabase MCP Server](https://github.com/supabase-community/supabase-mcp), you can ask Claude to analyze your database and suggest indexes:
+
+```
+Analyze my Supabase database for missing indexes:
+
+1. Query pg_stat_statements to find the 20 slowest queries by total execution time
+2. For each slow query, run EXPLAIN ANALYZE and check for sequential scans on tables with more than 10,000 rows
+3. Suggest CREATE INDEX statements for any missing indexes
+4. Estimate the performance improvement for each suggested index
+
+Show me the slow queries, what is causing them to be slow, and the exact CREATE INDEX statements I should run.
+```
+
+Claude will connect to your database, run the diagnostics, and give you specific index recommendations.
+
+### You need the simplest solution
+
+Vertical scaling requires no code changes. No connection string updates. No routing logic. If you need immediate relief and simplicity matters, upgrade compute first.
+
+## When Read Replicas are the right choice
+
+[Read Replicas](https://supabase.com/blog/introducing-read-replicas) add complexity but unlock capabilities that vertical scaling cannot provide. Choose Read Replicas when:
+
+### Analytics queries are hurting production
+
+This is the most common reason teams adopt Read Replicas. The pattern is familiar: your data team connects Metabase or Looker to your production database. They write a query that joins three tables and scans six months of orders. The query runs for 45 seconds. During those 45 seconds, your production database is working hard on that analytical query instead of serving your application. API response times spike and your users notice.
+
+**Moving analytical queries to Read Replicas**
+
+The problem is that Postgres is optimized for transactional workloads: small, fast queries that touch a few rows at a time. Analytical queries do the opposite. They scan millions of rows, aggregate data, and compute statistics. These two workload types compete for the same CPU, memory, and I/O.
+
+Read Replicas solve this by isolation. Point your analytics tools at a replica. The replica handles the heavy queries. Production stays fast.
+
+```
+Production traffic -> Primary database
+Analytics traffic -> Read Replica
+```
+
+Your data team gets the access they need without risking production stability. The replica might slow down during a heavy report, but your customers never notice because production is untouched.
+
+**Configuring replicas for long-running queries**
+
+By default, Postgres may cancel long-running queries on a replica if they conflict with incoming replication data. A 10-minute analytics report can get terminated when the primary updates rows the query is reading.
+
+Two settings control this behavior:
+
+- `max_standby_streaming_delay`: How long the replica waits before canceling conflicting queries (default: 30 seconds). Increase this for longer analytics queries. The trade-off is more replication lag during heavy queries.
+- `max_standby_archive_delay`: Same concept for WAL archive replay.
+
+If queries still get canceled, enable `hot_standby_feedback`. This tells the primary not to vacuum rows the replica is reading. Use this as a last resort because it causes table bloat on the primary. Dead rows accumulate, increasing disk usage and potentially slowing primary queries.
+
+Start with the delay settings. Only enable `hot_standby_feedback` if you are still seeing query cancellations.
+
+### You have hit the 16XL ceiling
+
+Once you reach 16XL (64 CPU cores, 256GB RAM), vertical scaling stops. The only way to add read capacity is horizontal: spread reads across replicas.
+
+### You have users in multiple regions
+
+A database in `us-east-1` serves US users with low latency. European users experience 100-150ms of network latency on every query. That adds up.
+
+Deploy a Read Replica in `eu-west-1`. Supabase's API load balancer automatically routes GET requests to the nearest replica. European users hit the European replica. Latency drops.
+
+### You need cost-effective read scaling
+
+Compare the cost of adding read capacity:
+
+| Approach | Starting point | Monthly cost | Read capacity added |
+| --------------- | -------------- | -------------- | ----------------------- |
+| Upgrade compute | XL ($210) | $410 (+$200) | ~2x on same instance |
+| Add replica | XL ($210) | $420 (+$210) | 2x across two instances |
+| Upgrade compute | 4XL ($960) | $1,870 (+$910) | ~2x on same instance |
+| Add replica | 4XL ($960) | $1,920 (+$960) | 2x across two instances |
+
+At lower tiers, the costs are similar. At higher tiers, replicas become more cost-effective for read scaling because you can add a smaller replica instead of doubling your primary.
+
+A 4XL primary with a 2XL replica ($960 + $410 = $1,370) costs less than an 8XL primary ($1,870) and may handle more read traffic.
+
+### You want redundancy
+
+Read Replicas provide a warm standby. If your primary has issues, your replica has a recent copy of your data. This is not automatic failover (that is coming with [Multigres](https://supabase.com/blog/multigres-vitess-for-postgres)), but it reduces your blast radius.
+
+## The decision framework
+
+Use this flowchart to decide:
+
+```mermaid
+flowchart TD
+ A[Database slowing down] --> B{CPU above 70% sustained?}
+ B -->|No| C[Monitor, do not scale yet]
+ B -->|Yes| D{Queries optimized? Indexes in place?}
+ D -->|No| E[Run EXPLAIN ANALYZE Add missing indexes Optimize first]
+ E --> D
+ D -->|Yes| F{Workload 80%+ reads?}
+ F -->|No| G[Upgrade compute Replicas will not help writes]
+ F -->|Yes| H{Already at 16XL?}
+ H -->|Yes| I[Read Replicas Only horizontal option left]
+ H -->|No| J{Need workload isolation or geo-distribution?}
+ J -->|Yes| K[Read Replicas]
+ J -->|No| L[Either works Compute is simpler Replicas scale further]
+```
+
+## Real-world scenarios
+
+### Scenario 1: SaaS application with growing traffic
+
+**Situation:** B2B SaaS on Large compute ($110/month). CPU at 75%. Workload is 85% reads. Users in US only. No analytics workload.
+
+**Recommendation:** Upgrade to XL ($210/month). Simpler path, no code changes, and you have headroom to grow. Consider replicas later when you add analytics or international users.
+
+### Scenario 2: E-commerce with analytics team
+
+**Situation:** E-commerce platform on 2XL ($410/month). Production is fine until the analytics team runs reports. Then checkout slows down. Workload is 90% reads.
+
+**Recommendation:** Add a Read Replica ($410/month for matching 2XL). Point analytics tools at the replica. Total cost $820/month, but production and analytics are isolated. The analytics team can run any query they want without paging the on-call engineer.
+
+### Scenario 3: Global consumer app
+
+**Situation:** Consumer app on XL ($210/month). Primary in `us-east-1`. Growing user base in Europe complaining about latency. Workload is 95% reads.
+
+**Recommendation:** Add a Read Replica in `eu-west-1` ($210/month). API requests from Europe automatically route to the European replica. Total cost $420/month. European latency drops from 150ms to 20ms.
+
+### Scenario 4: High-write IoT platform
+
+**Situation:** IoT platform on 4XL ($960/month). Devices send telemetry every second. CPU at 80%. Workload is 60% writes.
+
+**Recommendation:** Upgrade to 8XL ($1,870/month). Write-heavy workloads need a bigger primary. Read Replicas would only help with the 40% that is reads. Consider [Supabase Queues](https://supabase.com/docs/guides/queues) to batch and process writes asynchronously.
+
+## What about other scaling options?
+
+Read Replicas and compute upgrades are not the only tools:
+
+### Connection pooling (Supavisor)
+
+If you are hitting connection limits but CPU is fine, enable connection pooling. Supavisor multiplexes many client connections across fewer database connections. This is free and built into every Supabase project.
+
+### Supabase ETL and Analytics Buckets
+
+Read Replicas isolate analytics from production, but the replica is still Postgres. It still uses row-based storage optimized for transactions. If your analytics queries scan tens of millions of rows, even a dedicated replica will feel slow.
+
+This is where [Supabase ETL](https://supabase.com/blog/introducing-supabase-etl) and [Analytics Buckets](https://supabase.com/blog/introducing-analytics-buckets) come in. They solve a different problem: not just isolating analytics, but running analytics on infrastructure designed for analytical workloads.
+
+**How it works:**
+
+1. Supabase ETL captures changes from your Postgres tables using change-data-capture (CDC)
+2. Changes stream in near real-time to Analytics Buckets (or BigQuery)
+3. Analytics Buckets store your data in columnar Parquet format on S3, built on Apache Iceberg
+4. You query the data with tools like DuckDB, PyIceberg, or Apache Spark
+
+Columnar storage is dramatically faster for analytical queries. A query that scans a single column across 100 million rows only reads that column, not the entire row. Compression ratios are higher. Query times drop from minutes to seconds.
+
+**When to use ETL and Analytics Buckets instead of Read Replicas:**
+
+- Your analytical queries scan millions of rows regularly
+- You need to retain historical data for years without bloating your database
+- You want 30-90% storage cost savings on large datasets
+- You need a complete audit trail with time-travel capabilities
+- Your data team wants to use specialized analytics tools (Spark, DuckDB, Python notebooks)
+
+**When Read Replicas are still the right choice:**
+
+- Your analytics queries are moderately heavy but not massive
+- You want your data team to use the same SQL they already know
+- You need the simplest possible setup with no new tools
+- You also need geo-distribution, which ETL does not provide
+
+**A common pattern: use both.** Keep 90 days of data in Postgres for fast operational queries. Stream everything to Analytics Buckets for long-term retention and heavy analytics. Your application queries Postgres. Your data team queries Analytics Buckets for historical trends. You get speed where you need it and cost efficiency where you need that.
+
+### Multigres: the future of horizontal write scaling
+
+Read Replicas scale reads. Bigger compute scales everything, but only so far. What happens when you max out the largest compute tier and your workload is write-heavy?
+
+This is the problem [Multigres](https://supabase.com/blog/multigres-vitess-for-postgres) is designed to solve. Multigres is a database proxy layer that brings Vitess-style horizontal scaling to Postgres. Vitess powers some of the largest MySQL deployments in the world (YouTube, Slack, GitHub). Multigres adapts that architecture for Postgres.
+
+**What Multigres enables:**
+
+- Sharding: distribute data across multiple Postgres instances
+- Query routing: direct queries to the right shard automatically
+- Failover: automatic high availability without manual intervention
+- Gradual scaling: start with connection pooling, grow into sharding as needed
+
+Multigres is still early (open source under Apache 2.0, currently seeking design partners). But it represents Supabase's long-term answer to the question: what do I do when vertical scaling runs out and Read Replicas are not enough?
+
+For most workloads today, the answer is still bigger compute or Read Replicas. But if you are building something that will eventually need true horizontal write scaling, Multigres is worth watching.
+
+## Getting started
+
+If you have decided Read Replicas are right for your workload:
+
+1. Go to **Project Settings > Infrastructure** in your Supabase Dashboard
+2. Click **Add Read Replica**
+3. Select a region (same region for analytics isolation, different region for geo-distribution)
+4. Choose a compute size (can match primary or be smaller for analytics-only workloads)
+
+The replica provisions in a few minutes. You will get a dedicated connection string. For analytics tools, use that connection string directly. For application traffic, the API load balancer handles routing automatically.
+
+Read the full setup guide in [the documentation](https://supabase.com/docs/guides/platform/read-replicas).
+
+## Summary
+
+| Factor | Choose bigger compute | Choose Read Replicas |
+| -------------------- | ----------------------- | ------------------------------------------ |
+| Workload | Write-heavy or balanced | Read-heavy (80%+) |
+| Current tier | Below 16XL | At or approaching 16XL |
+| Complexity tolerance | Want simplicity | Can handle routing |
+| Use case | General scaling | Analytics isolation, geo-distribution |
+| Code changes | None required | Minimal (connection strings for analytics) |
+
+Both paths work. The right choice depends on where your bottleneck actually is. Diagnose first, then scale appropriately.
diff --git a/apps/www/_blog/2026-01-21-postgres-best-practices-for-ai-agents.mdx b/apps/www/_blog/2026-01-21-postgres-best-practices-for-ai-agents.mdx
index 30ee812e4f0..bceb83637a3 100644
--- a/apps/www/_blog/2026-01-21-postgres-best-practices-for-ai-agents.mdx
+++ b/apps/www/_blog/2026-01-21-postgres-best-practices-for-ai-agents.mdx
@@ -2,8 +2,8 @@
title: 'Introducing: Postgres Best Practices'
description: 'We are releasing Agent Skills for Postgres Best Practices to help AI coding agents write high quality, correct Postgres code.'
author: pedro_rodrigues
-image: 2026-01-21-postgres-best-practices-for-ai-agents/og.png
-thumb: 2026-01-21-postgres-best-practices-for-ai-agents/thumb.png
+imgSocial: 2026-01-21-postgres-best-practices-for-ai-agents/og.png
+imgThumb: 2026-01-21-postgres-best-practices-for-ai-agents/thumb.png
categories:
- developers
tags:
diff --git a/apps/www/_blog/2026-01-27-supabase-privatelink-available.mdx b/apps/www/_blog/2026-01-27-supabase-privatelink-available.mdx
index f4c05c65a18..00c27885be8 100644
--- a/apps/www/_blog/2026-01-27-supabase-privatelink-available.mdx
+++ b/apps/www/_blog/2026-01-27-supabase-privatelink-available.mdx
@@ -13,8 +13,8 @@ tags:
- database
- postgres
- compliance
-image: '2026-01-27-supabase-privatelink-available/og.png'
-thumb: '2026-01-27-supabase-privatelink-available/thumb.png'
+imgSocial: '2026-01-27-supabase-privatelink-available/og.png'
+imgThumb: '2026-01-27-supabase-privatelink-available/thumb.png'
toc_depth: 3
---
diff --git a/apps/www/_customers/asap-work.mdx b/apps/www/_customers/asap-work.mdx
index 839081e76c2..d0312917584 100644
--- a/apps/www/_customers/asap-work.mdx
+++ b/apps/www/_customers/asap-work.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/asap-work.png
logo_inverse: /images/customers/logos/light/asap-work.png
-og_image: /images/customers/og/asap-work.jpg
tags:
- supabase
date: '2025-02-28'
diff --git a/apps/www/_customers/berriai.mdx b/apps/www/_customers/berriai.mdx
index 9a787285c0e..ce60e7bd028 100644
--- a/apps/www/_customers/berriai.mdx
+++ b/apps/www/_customers/berriai.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/berriai.png
logo_inverse: /images/customers/logos/light/berriai.png
-og_image: /images/customers/og/berriai.jpg
tags:
- supabase
date: '2023-06-06'
diff --git a/apps/www/_customers/bree.mdx b/apps/www/_customers/bree.mdx
index 8e70581f263..8f8779db5b0 100644
--- a/apps/www/_customers/bree.mdx
+++ b/apps/www/_customers/bree.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/bree.png
logo_inverse: /images/customers/logos/light/bree.png
-og_image: /images/customers/og/bree.jpg
tags:
- supabase
date: '2025-04-08'
diff --git a/apps/www/_customers/chatbase.mdx b/apps/www/_customers/chatbase.mdx
index 82cb206b451..6edfb406ba7 100644
--- a/apps/www/_customers/chatbase.mdx
+++ b/apps/www/_customers/chatbase.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/chatbase.png
logo_inverse: /images/customers/logos/light/chatbase.png
-og_image: /images/customers/og/chatbase.jpg
tags:
- supabase
date: '2023-09-06'
diff --git a/apps/www/_customers/deriv.mdx b/apps/www/_customers/deriv.mdx
index d651871c540..8cdd878f3e6 100644
--- a/apps/www/_customers/deriv.mdx
+++ b/apps/www/_customers/deriv.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/deriv.png
logo_inverse: /images/customers/logos/light/deriv.png
-og_image: /images/customers/og/deriv.jpg
tags:
- supabase
date: '2025-03-06'
diff --git a/apps/www/_customers/e2b.mdx b/apps/www/_customers/e2b.mdx
index fb631cf159a..b79b1dcfdcb 100644
--- a/apps/www/_customers/e2b.mdx
+++ b/apps/www/_customers/e2b.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/e2b.png
logo_inverse: /images/customers/logos/light/e2b.png
-og_image: /images/customers/og/e2b.jpg
tags:
- supabase
date: '2024-12-09'
diff --git a/apps/www/_customers/epsilon3.mdx b/apps/www/_customers/epsilon3.mdx
index 72d75b7c6b6..ce3e58d732d 100644
--- a/apps/www/_customers/epsilon3.mdx
+++ b/apps/www/_customers/epsilon3.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/epsilon3.png
logo_inverse: /images/customers/logos/light/epsilon3.png
-og_image: /images/customers/og/epsilon3.jpg
tags:
- supabase
date: '2023-02-14'
diff --git a/apps/www/_customers/euka.mdx b/apps/www/_customers/euka.mdx
index 7a8f2b4728a..104bdf9b8eb 100644
--- a/apps/www/_customers/euka.mdx
+++ b/apps/www/_customers/euka.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/euka.png
logo_inverse: /images/customers/logos/light/euka.png
-og_image: /images/customers/og/euka.jpg
tags:
- supabase
date: '2025-04-29'
diff --git a/apps/www/_customers/exprealty.mdx b/apps/www/_customers/exprealty.mdx
index 40c003a6b34..395dd8744aa 100644
--- a/apps/www/_customers/exprealty.mdx
+++ b/apps/www/_customers/exprealty.mdx
@@ -9,7 +9,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/exprealty.svg
logo_inverse: /images/customers/logos/light/exprealty.svg
-og_image: /images/customers/og/exprealty.png
tags:
- supabase
date: '2025-12-17'
diff --git a/apps/www/_customers/firecrawl.mdx b/apps/www/_customers/firecrawl.mdx
index cbbc8607bc4..f6854bf8654 100644
--- a/apps/www/_customers/firecrawl.mdx
+++ b/apps/www/_customers/firecrawl.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/firecrawl.png
logo_inverse: /images/customers/logos/light/firecrawl.png
-og_image: /images/customers/og/firecrawl.jpg
tags:
- supabase
date: '2023-05-05'
diff --git a/apps/www/_customers/good-tape.mdx b/apps/www/_customers/good-tape.mdx
index 7e36a98343e..ee23366a841 100644
--- a/apps/www/_customers/good-tape.mdx
+++ b/apps/www/_customers/good-tape.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/good-tape.png
logo_inverse: /images/customers/logos/light/good-tape.png
-og_image: /images/customers/og/goodtape.jpg
tags:
- supabase
date: '2023-10-31'
diff --git a/apps/www/_customers/govsignals.mdx b/apps/www/_customers/govsignals.mdx
index b2d77a2a193..f485e7a7033 100644
--- a/apps/www/_customers/govsignals.mdx
+++ b/apps/www/_customers/govsignals.mdx
@@ -9,7 +9,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/govsignals.svg
logo_inverse: /images/customers/logos/light/govsignals.svg
-og_image: /images/customers/og/govsignals.png
tags:
- supabase
date: '2025-12-16'
diff --git a/apps/www/_customers/happyteams.mdx b/apps/www/_customers/happyteams.mdx
index f7452d92fa3..0a2706cdc63 100644
--- a/apps/www/_customers/happyteams.mdx
+++ b/apps/www/_customers/happyteams.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/happyteams.png
logo_inverse: /images/customers/logos/light/happyteams.png
-og_image: /images/customers/og/happyteams.jpg
tags:
- supabase
date: '2023-02-16'
diff --git a/apps/www/_customers/humata.mdx b/apps/www/_customers/humata.mdx
index 39ec69200a1..d36dab84d06 100644
--- a/apps/www/_customers/humata.mdx
+++ b/apps/www/_customers/humata.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/humata.png
logo_inverse: /images/customers/logos/light/humata.png
-og_image: /images/customers/og/humata.jpg
tags:
- supabase
date: '2024-10-01'
diff --git a/apps/www/_customers/juniver.mdx b/apps/www/_customers/juniver.mdx
index aa19fbf1f98..f12c2bda3d3 100644
--- a/apps/www/_customers/juniver.mdx
+++ b/apps/www/_customers/juniver.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/juniver.png
logo_inverse: /images/customers/logos/light/juniver.png
-og_image: /images/customers/og/juniver.jpg
tags:
- supabase
date: '2025-01-15'
diff --git a/apps/www/_customers/kayhanspace.mdx b/apps/www/_customers/kayhanspace.mdx
index 08e9cad7288..e2a469e6120 100644
--- a/apps/www/_customers/kayhanspace.mdx
+++ b/apps/www/_customers/kayhanspace.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/kayhanspace.png
logo_inverse: /images/customers/logos/light/kayhanspace.png
-og_image: /images/customers/og/kayhanspace.jpg
tags:
- supabase
date: '2025-05-21'
diff --git a/apps/www/_customers/koodos.mdx b/apps/www/_customers/koodos.mdx
index 37fc4e3aed9..92e725d4d1a 100644
--- a/apps/www/_customers/koodos.mdx
+++ b/apps/www/_customers/koodos.mdx
@@ -9,7 +9,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/koodos.svg
logo_inverse: /images/customers/logos/light/koodos.svg
-og_image: /images/customers/og/koodos.png
tags:
- supabase
date: '2025-12-16'
diff --git a/apps/www/_customers/maergo.mdx b/apps/www/_customers/maergo.mdx
index 2be77b447c4..753137c138d 100644
--- a/apps/www/_customers/maergo.mdx
+++ b/apps/www/_customers/maergo.mdx
@@ -10,7 +10,6 @@ author: michael_ridley
author_title: Product Marketing
logo: /images/customers/logos/maergo.png
logo_inverse: /images/customers/logos/light/maergo.png
-og_image: /images/customers/og/maergo.jpg
tags:
- supabase
date: '2024-06-12'
diff --git a/apps/www/_customers/markprompt.mdx b/apps/www/_customers/markprompt.mdx
index e5054cdd0c3..549dee846db 100644
--- a/apps/www/_customers/markprompt.mdx
+++ b/apps/www/_customers/markprompt.mdx
@@ -9,7 +9,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/markprompt.png
logo_inverse: /images/customers/logos/light/markprompt.png
-og_image: /images/customers/og/markprompt.png
tags:
- supabase
date: '2023-05-17'
diff --git a/apps/www/_customers/meshy.mdx b/apps/www/_customers/meshy.mdx
index 8a17e524459..63f2da67442 100644
--- a/apps/www/_customers/meshy.mdx
+++ b/apps/www/_customers/meshy.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/meshy.png
logo_inverse: /images/customers/logos/light/meshy.png
-og_image: /images/customers/og/meshy.jpg
company_url: 'https://www.meshy.ai/'
tags:
- supabase
diff --git a/apps/www/_customers/mobbin.mdx b/apps/www/_customers/mobbin.mdx
index 935fa1c71d3..b01c863dbb8 100644
--- a/apps/www/_customers/mobbin.mdx
+++ b/apps/www/_customers/mobbin.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/mobbin.png
logo_inverse: /images/customers/logos/light/mobbin.png
-og_image: /images/customers/og/mobbin.jpg
tags:
- supabase
date: '2023-02-14'
diff --git a/apps/www/_customers/next-door-lending.mdx b/apps/www/_customers/next-door-lending.mdx
index 9165348418e..7f181acb658 100644
--- a/apps/www/_customers/next-door-lending.mdx
+++ b/apps/www/_customers/next-door-lending.mdx
@@ -12,7 +12,6 @@ author_url: https://www.linkedin.com/in/david-wilson-285564140/
author_image_url: https://media.licdn.com/dms/image/D4E03AQFurngYIRSHWQ/profile-displayphoto-shrink_200_200/0/1698406772235?e=1704931200&v=beta&t=Va55bBVbke2LzcEs5ReBOslLN_l3E8aqEeaQZv36sCA
logo: /images/customers/logos/next-door-lending.png
logo_inverse: /images/customers/logos/light/next-door-lending.png
-og_image: /images/customers/og/next-door-lending.jpg
tags:
- supabase
date: '2023-11-08'
diff --git a/apps/www/_customers/pebblely.mdx b/apps/www/_customers/pebblely.mdx
index a534df50c95..f55fc5ac8a3 100644
--- a/apps/www/_customers/pebblely.mdx
+++ b/apps/www/_customers/pebblely.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/pebblely.png
logo_inverse: /images/customers/logos/light/pebblely.png
-og_image: /images/customers/og/pebblely.jpg
tags:
- supabase
date: '2023-09-29'
diff --git a/apps/www/_customers/phoenix-energy.mdx b/apps/www/_customers/phoenix-energy.mdx
index 242df46e47a..7211d9f4a77 100644
--- a/apps/www/_customers/phoenix-energy.mdx
+++ b/apps/www/_customers/phoenix-energy.mdx
@@ -9,7 +9,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/light/phoenix-energy.png
logo_inverse: /images/customers/logos/phoenix-energy.png
-og_image: /images/customers/logos/phoenix-energy.png
tags:
- supabase
date: '2025-11-13'
diff --git a/apps/www/_customers/quilia.mdx b/apps/www/_customers/quilia.mdx
index 6628d878b31..12f5c0660dd 100644
--- a/apps/www/_customers/quilia.mdx
+++ b/apps/www/_customers/quilia.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/quilia.png
logo_inverse: /images/customers/logos/light/quilia.png
-og_image: /images/customers/og/quilia.jpg
tags:
- supabase
date: '2025-03-08'
diff --git a/apps/www/_customers/quivr.mdx b/apps/www/_customers/quivr.mdx
index 74465705f3c..94025f24a2c 100644
--- a/apps/www/_customers/quivr.mdx
+++ b/apps/www/_customers/quivr.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/quivr.png
logo_inverse: /images/customers/logos/light/quivr.png
-og_image: /images/customers/og/quivr.jpg
tags:
- supabase
date: '2023-09-05'
diff --git a/apps/www/_customers/rally.mdx b/apps/www/_customers/rally.mdx
index 5851e5fa1d6..ae22a10bb95 100644
--- a/apps/www/_customers/rally.mdx
+++ b/apps/www/_customers/rally.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/rally.png
logo_inverse: /images/customers/logos/light/rally.png
-og_image: /images/customers/og/rally.jpg
tags:
- supabase
date: '2025-10-21'
diff --git a/apps/www/_customers/replenysh.mdx b/apps/www/_customers/replenysh.mdx
index e23a846fb68..5c837901424 100644
--- a/apps/www/_customers/replenysh.mdx
+++ b/apps/www/_customers/replenysh.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/replenysh.png
logo_inverse: /images/customers/logos/light/replenysh.png
-og_image: /images/customers/og/replenysh.jpg
tags:
- supabase
date: '2023-02-14'
diff --git a/apps/www/_customers/resend.mdx b/apps/www/_customers/resend.mdx
index 65ff85d274a..6aa30a646d3 100644
--- a/apps/www/_customers/resend.mdx
+++ b/apps/www/_customers/resend.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/resend.png
logo_inverse: /images/customers/logos/light/resend.png
-og_image: /images/customers/og/resend.jpg
tags:
- supabase
date: '2025-02-21'
diff --git a/apps/www/_customers/shotgun.mdx b/apps/www/_customers/shotgun.mdx
index 46eca13058c..3acb31efd85 100644
--- a/apps/www/_customers/shotgun.mdx
+++ b/apps/www/_customers/shotgun.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/shotgun.png
logo_inverse: /images/customers/logos/light/shotgun.png
-og_image: /images/customers/og/shotgun.jpg
tags:
- supabase
date: '2023-11-30'
diff --git a/apps/www/_customers/soshi.mdx b/apps/www/_customers/soshi.mdx
index 6b3efabffdc..dd8a7b4c113 100644
--- a/apps/www/_customers/soshi.mdx
+++ b/apps/www/_customers/soshi.mdx
@@ -10,7 +10,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/logos/publicity/soshi.svg
logo_inverse: /images/logos/publicity/soshi.svg
-og_image: /images/customers/og/soshi.jpg
tags:
- supabase
date: '2025-08-17'
diff --git a/apps/www/_customers/tinloof.mdx b/apps/www/_customers/tinloof.mdx
index ed8280b5ee1..3efb06ee14d 100644
--- a/apps/www/_customers/tinloof.mdx
+++ b/apps/www/_customers/tinloof.mdx
@@ -10,7 +10,6 @@ author: michael_ridley
author_title: Product Marketing
logo: /images/customers/logos/tinloof.png
logo_inverse: /images/customers/logos/light/tinloof.png
-og_image: /images/customers/og/tinloof.jpg
tags:
- supabase
date: '2024-06-04'
diff --git a/apps/www/_customers/udio.mdx b/apps/www/_customers/udio.mdx
index 82638eee27d..595b57f49a0 100644
--- a/apps/www/_customers/udio.mdx
+++ b/apps/www/_customers/udio.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/udio.png
logo_inverse: /images/customers/logos/light/udio.png
-og_image: /images/customers/og/udio.jpg
tags:
- supabase
date: '2025-05-21'
diff --git a/apps/www/_customers/voypost.mdx b/apps/www/_customers/voypost.mdx
index 1f01b8dc67e..31bf5ac50ed 100644
--- a/apps/www/_customers/voypost.mdx
+++ b/apps/www/_customers/voypost.mdx
@@ -10,7 +10,6 @@ author: michael_ridley
author_title: Proudct Marketing
logo: /images/customers/logos/voypost.png
logo_inverse: /images/customers/logos/light/voypost.png
-og_image: /images/customers/og/voypost_logo_dark.png
tags:
- supabase
date: '2024-06-04'
diff --git a/apps/www/_customers/xendit.mdx b/apps/www/_customers/xendit.mdx
index 8926e16e12a..bc3e6aaa2be 100644
--- a/apps/www/_customers/xendit.mdx
+++ b/apps/www/_customers/xendit.mdx
@@ -12,7 +12,6 @@ author_url: https://github.com/kiwicopple
author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
logo: /images/customers/logos/xendit.png
logo_inverse: /images/customers/logos/light/xendit.png
-og_image: /images/customers/og/xendit.jpg
tags:
- supabase
date: '2023-02-14'
diff --git a/apps/www/_events/2025-12-01__aws-reinvent-2025.mdx b/apps/www/_events/2025-12-01__aws-reinvent-2025.mdx
index 0ffb77df428..1b93a929d1d 100644
--- a/apps/www/_events/2025-12-01__aws-reinvent-2025.mdx
+++ b/apps/www/_events/2025-12-01__aws-reinvent-2025.mdx
@@ -28,7 +28,6 @@ hosts:
- name: Supabase
avatar_url: 'https://github.com/supabase.png'
speakers: 'paul_copplestone'
-og_image: '/images/events/aws-reinvent-2025-og.png'
tags:
- aws
- enterprise
diff --git a/apps/www/_events/2026-02-25-enterprise-innovation-with-bolt.mdx b/apps/www/_events/2026-02-25-enterprise-innovation-with-bolt.mdx
new file mode 100644
index 00000000000..efa491eb7e8
--- /dev/null
+++ b/apps/www/_events/2026-02-25-enterprise-innovation-with-bolt.mdx
@@ -0,0 +1,42 @@
+---
+title: 'Vibe Coding, Done Right: AI Development in Production'
+meta_title: 'Vibe Coding, Done Right: AI Development in Production'
+subtitle: >-
+ Learn how enterprise innovation teams are using AI coding tools like Bolt to build real applications on Supabase
+meta_description: >-
+ Learn how enterprise teams use AI coding tools like Bolt to build production apps. Real customer story, governance models, and security practices.
+type: webinar
+onDemand: false
+date: '2026-02-25T07:00:00.000-08:00'
+timezone: America/Los_Angeles
+duration: 45 mins
+categories:
+ - webinar
+main_cta:
+ {
+ url: 'https://attendee.gotowebinar.com/register/678318862881390429',
+ target: '_blank',
+ label: 'Register now',
+ }
+speakers: 'chris_caruso'
+---
+
+Something strange is happening in large enterprises. Non-technical employees are building production software. CEOs are shipping features. And companies are canceling SaaS contracts worth millions.
+
+In this webinar, you will learn how enterprise innovation teams are using AI coding tools like Bolt to build real applications on Supabase. We will show you how to rapidly prototype internal tools, how to work within the constraints of an existing design system, and how to empower non/semi-technical teams to build safely.
+
+## Key Takeaways
+
+- How to give non-technical teams the ability to build production software without compromising security or stability
+
+- The governance model that makes AI-assisted development safe for enterprises
+
+- Why prototypes built on the right foundation can go to production without being rebuilt
+
+- How to evaluate SaaS contracts differently when building becomes cheaper than buying
+
+- Real-world use cases for rapidly prototyping and building internal tools
+
+- The MCP integration that connects AI coding tools directly to your database
+
+Join us live to participate in the Q&A. Can't make it? We'll send you a link to the recording.
diff --git a/apps/www/app/api-v2/cms-posts/route.ts b/apps/www/app/api-v2/cms-posts/route.ts
index 1750cd44c62..d8cdc7382f8 100644
--- a/apps/www/app/api-v2/cms-posts/route.ts
+++ b/apps/www/app/api-v2/cms-posts/route.ts
@@ -1,5 +1,5 @@
-import { NextRequest, NextResponse } from 'next/server'
import { draftMode } from 'next/headers'
+import { NextRequest, NextResponse } from 'next/server'
import { CMS_SITE_ORIGIN } from '~/lib/constants'
import { generateReadingTime } from '~/lib/helpers'
@@ -211,11 +211,11 @@ export async function GET(request: NextRequest) {
username: a?.username || '',
}))
: [],
- thumb: latestVersion.thumb?.url
- ? `${baseUrl}${latestVersion.thumb.url}`
+ imgThumb: latestVersion.imgThumb?.url
+ ? `${baseUrl}${latestVersion.imgThumb.url}`
: undefined,
- image: latestVersion.image?.url
- ? `${baseUrl}${latestVersion.image.url}`
+ imgSocial: latestVersion.imgSocial?.url
+ ? `${baseUrl}${latestVersion.imgSocial.url}`
: undefined,
meta: latestVersion.meta || null,
url: `/blog/${latestVersion.slug}`,
@@ -296,8 +296,8 @@ export async function GET(request: NextRequest) {
username: a?.username || '',
}))
: [],
- thumb: post.thumb?.url ? `${baseUrl}${post.thumb.url}` : undefined,
- image: post.image?.url ? `${baseUrl}${post.image.url}` : undefined,
+ imgThumb: post.imgThumb?.url ? `${baseUrl}${post.imgThumb.url}` : undefined,
+ imgSocial: post.imgSocial?.url ? `${baseUrl}${post.imgSocial.url}` : undefined,
meta: post.meta || null,
url: `/blog/${post.slug}`,
path: `/blog/${post.slug}`,
@@ -375,8 +375,8 @@ export async function GET(request: NextRequest) {
username: a?.username || '',
}))
: [],
- thumb: post.thumb?.url ? `${baseUrl}${post.thumb.url}` : undefined,
- image: post.image?.url ? `${baseUrl}${post.image.url}` : undefined,
+ imgThumb: post.imgThumb?.url ? `${baseUrl}${post.imgThumb.url}` : undefined,
+ imgSocial: post.imgSocial?.url ? `${baseUrl}${post.imgSocial.url}` : undefined,
meta: post.meta || null,
url: `/blog/${post.slug}`,
path: `/blog/${post.slug}`,
@@ -461,15 +461,15 @@ export async function GET(request: NextRequest) {
username: a?.username || '',
}))
: [],
- thumb: post.thumb?.url
- ? typeof post.thumb.url === 'string' && post.thumb.url.includes('http')
- ? post.thumb.url
- : `${baseUrl}${post.thumb.url}`
+ imgThumb: post.imgThumb?.url
+ ? typeof post.imgThumb.url === 'string' && post.imgThumb.url.includes('http')
+ ? post.imgThumb.url
+ : `${baseUrl}${post.imgThumb.url}`
: '',
- image: post.image?.url
- ? typeof post.image.url === 'string' && post.image.url.includes('http')
- ? post.image.url
- : `${baseUrl}${post.image.url}`
+ imgSocial: post.imgSocial?.url
+ ? typeof post.imgSocial.url === 'string' && post.imgSocial.url.includes('http')
+ ? post.imgSocial.url
+ : `${baseUrl}${post.imgSocial.url}`
: undefined,
meta: post.meta || null,
url: `/blog/${post.slug}`,
@@ -575,15 +575,15 @@ export async function GET(request: NextRequest) {
username: a?.username || '',
}))
: [],
- thumb: post.thumb?.url
- ? typeof post.thumb.url === 'string' && post.thumb.url.includes('http')
- ? post.thumb.url
- : `${baseUrl}${post.thumb.url}`
+ imgThumb: post.imgThumb?.url
+ ? typeof post.imgThumb.url === 'string' && post.imgThumb.url.includes('http')
+ ? post.imgThumb.url
+ : `${baseUrl}${post.imgThumb.url}`
: '',
- image: post.image?.url
- ? typeof post.image.url === 'string' && post.image.url.includes('http')
- ? post.image.url
- : `${baseUrl}${post.image.url}`
+ imgSocial: post.imgSocial?.url
+ ? typeof post.imgSocial.url === 'string' && post.imgSocial.url.includes('http')
+ ? post.imgSocial.url
+ : `${baseUrl}${post.imgSocial.url}`
: undefined,
url: `/blog/${post.slug}`,
path: `/blog/${post.slug}`,
@@ -672,15 +672,15 @@ export async function GET(request: NextRequest) {
const posts = docs
.filter((p: any) => !!p?.slug)
.map((p: any) => {
- const thumbUrl = p?.thumb?.url
- ? typeof p.thumb.url === 'string' && p.thumb.url.includes('http')
- ? p.thumb.url
- : `${baseUrl}${p.thumb.url}`
+ const imgThumbUrl = p?.imgThumb?.url
+ ? typeof p.imgThumb.url === 'string' && p.imgThumb.url.includes('http')
+ ? p.imgThumb.url
+ : `${baseUrl}${p.imgThumb.url}`
: ''
- const imageUrl = p?.image?.url
- ? typeof p.image.url === 'string' && p.image.url.includes('http')
- ? p.image.url
- : `${baseUrl}${p.image.url}`
+ const imgSocialUrl = p?.imgSocial?.url
+ ? typeof p.imgSocial.url === 'string' && p.imgSocial.url.includes('http')
+ ? p.imgSocial.url
+ : `${baseUrl}${p.imgSocial.url}`
: ''
const date = p.date || p.createdAt || new Date().toISOString()
const formattedDate = new Date(date).toLocaleDateString('en-IN', dateFmt)
@@ -713,8 +713,8 @@ export async function GET(request: NextRequest) {
formattedDate,
readingTime,
authors,
- thumb: thumbUrl || imageUrl || '',
- image: imageUrl || undefined,
+ imgThumb: imgThumbUrl || imgSocialUrl || '',
+ imgSocial: imgSocialUrl || undefined,
meta: p.meta || null,
url: `/blog/${p.slug}`,
path: `/blog/${p.slug}`,
diff --git a/apps/www/app/blog/[slug]/page.tsx b/apps/www/app/blog/[slug]/page.tsx
index 9241eed139e..c00340d66eb 100644
--- a/apps/www/app/blog/[slug]/page.tsx
+++ b/apps/www/app/blog/[slug]/page.tsx
@@ -1,12 +1,12 @@
-import BlogPostClient from './BlogPostClient'
-import { draftMode } from 'next/headers'
import { getAllCMSPostSlugs, getCMSPostBySlug } from 'lib/get-cms-posts'
import { getAllPostSlugs, getPostdata, getSortedPosts } from 'lib/posts'
-import { CMS_SITE_ORIGIN, SITE_ORIGIN } from '~/lib/constants'
-import { processCMSContent } from '~/lib/cms/processCMSContent'
-
-import type { Blog, BlogData, PostReturnType } from 'types/post'
import type { Metadata } from 'next'
+import { draftMode } from 'next/headers'
+import type { Blog, BlogData, PostReturnType } from 'types/post'
+
+import BlogPostClient from './BlogPostClient'
+import { processCMSContent } from '~/lib/cms/processCMSContent'
+import { CMS_SITE_ORIGIN, SITE_ORIGIN } from '~/lib/constants'
export const revalidate = 30
@@ -93,7 +93,12 @@ export async function generateMetadata({ params }: { params: Promise }):
const postContent = await getPostdata(slug, '_blog')
const parsedContent = matter(postContent) as unknown as MatterReturn
const blogPost = parsedContent.data
- const metaImageUrl = `/images/blog/${blogPost.image ? blogPost.image : blogPost.thumb}`
+ const blogImage = blogPost.imgThumb || blogPost.imgSocial
+ const metaImageUrl = blogImage
+ ? blogImage.startsWith('http')
+ ? blogImage
+ : `${CMS_SITE_ORIGIN.replace('/api-v2', '')}${blogImage}`
+ : undefined
return {
title: blogPost.title,
@@ -147,9 +152,9 @@ export async function generateMetadata({ params }: { params: Promise }):
}
}
- // Fallback to thumb or image if no meta image
+ // Fallback to imgThumb or imgSocial if no meta image
if (!metaImageUrl) {
- metaImageUrl = cmsPost.thumb || cmsPost.image
+ metaImageUrl = cmsPost.imgThumb || cmsPost.imgSocial
}
// Ensure image URLs are absolute
@@ -276,12 +281,12 @@ export default async function BlogPostPage({ params }: { params: Promise
isCMS: true,
content: mdxSource,
toc: tocResult,
- image: publishedPost.image ?? undefined,
- thumb: publishedPost.thumb ?? undefined,
+ imgSocial: publishedPost.imgSocial ?? undefined,
+ imgThumb: publishedPost.imgThumb ?? undefined,
// Extract meta fields from CMS
meta_title: publishedPost.meta?.title ?? undefined,
meta_description: publishedPost.meta?.description ?? undefined,
- meta_image: publishedPost.meta?.image ?? publishedPost.thumb ?? undefined,
+ meta_image: publishedPost.meta?.image ?? publishedPost.imgThumb ?? undefined,
} as any,
isDraftMode: isDraft,
}
@@ -322,12 +327,12 @@ export default async function BlogPostPage({ params }: { params: Promise
content: processedContent.content,
toc: processedContent.toc,
toc_depth: cmsPost.toc_depth || 3,
- image: cmsPost.image ?? undefined,
- thumb: cmsPost.thumb ?? undefined,
+ imgSocial: cmsPost.imgSocial ?? undefined,
+ imgThumb: cmsPost.imgThumb ?? undefined,
// Extract meta fields from CMS
meta_title: cmsPost.meta?.title ?? undefined,
meta_description: cmsPost.meta?.description ?? undefined,
- meta_image: cmsPost.meta?.image ?? cmsPost.thumb ?? undefined,
+ meta_image: cmsPost.meta?.image ?? cmsPost.imgThumb ?? undefined,
} as any,
isDraftMode: isDraft,
}
diff --git a/apps/www/components/Blog/BlogGridItem.tsx b/apps/www/components/Blog/BlogGridItem.tsx
index de4cac5dc91..ddaa0bddc4e 100644
--- a/apps/www/components/Blog/BlogGridItem.tsx
+++ b/apps/www/components/Blog/BlogGridItem.tsx
@@ -1,10 +1,10 @@
+import dayjs from 'dayjs'
import authors from 'lib/authors.json'
import Image from 'next/image'
import Link from 'next/link'
-import React from 'react'
+
import type Author from '~/types/author'
import type PostTypes from '~/types/post'
-import dayjs from 'dayjs'
interface Props {
post: PostTypes
@@ -24,17 +24,16 @@ const BlogGridItem = ({ post }: Props) => {
}
}
+ const resolveImagePath = (img: string | undefined): string | null => {
+ if (!img) return null
+ return img.startsWith('/') || img.startsWith('http') ? img : `/images/blog/${img}`
+ }
+
const imageUrl = post.isCMS
- ? post.thumb
- ? post.thumb
- : post.image
- ? post.image
- : '/images/blog/blog-placeholder.png'
- : post.thumb
- ? `/images/blog/${post.thumb}`
- : post.image
- ? `/images/blog/${post.image}`
- : '/images/blog/blog-placeholder.png'
+ ? post.imgThumb || post.imgSocial || '/images/blog/blog-placeholder.png'
+ : resolveImagePath(post.imgThumb) ||
+ resolveImagePath(post.imgSocial) ||
+ '/images/blog/blog-placeholder.png'
return (
{
>
-
+
import('components/Blog/ShareArticleActions'))
const CTABanner = dynamic(() => import('components/CTABanner'))
@@ -160,9 +158,11 @@ const BlogPostRenderer = ({
)
const imageUrl = isCMS
- ? blogMetaData.thumb ?? ''
- : blogMetaData.thumb
- ? `/images/blog/${blogMetaData.thumb}`
+ ? blogMetaData.imgThumb ?? ''
+ : blogMetaData.imgThumb
+ ? blogMetaData.imgThumb.startsWith('/') || blogMetaData.imgThumb.startsWith('http')
+ ? blogMetaData.imgThumb
+ : `/images/blog/${blogMetaData.imgThumb}`
: ''
return (
@@ -263,8 +263,8 @@ const BlogPostRenderer = ({
allowFullScreen={true}
/>
) : (
- blogMetaData.thumb && (
-
+ blogMetaData.imgThumb && (
+
{
+ if (!img) return null
+ return img.startsWith('/') || img.startsWith('http') ? img : `/images/blog/${img}`
+ }
+
const imageUrl = blog.isCMS
- ? blog.thumb
- ? blog.thumb
- : blog.image
- ? blog.image
- : '/images/blog/blog-placeholder.png'
- : blog.thumb
- ? `/images/blog/${blog.thumb}`
- : blog.image
- ? `/images/blog/${blog.image}`
- : '/images/blog/blog-placeholder.png'
+ ? blog.imgThumb || blog.imgSocial || '/images/blog/blog-placeholder.png'
+ : resolveImagePath(blog.imgThumb) ||
+ resolveImagePath(blog.imgSocial) ||
+ '/images/blog/blog-placeholder.png'
return (
diff --git a/apps/www/components/CaseStudies/index.tsx b/apps/www/components/CaseStudies/index.tsx
index 3096e41c762..59f0b6bab04 100644
--- a/apps/www/components/CaseStudies/index.tsx
+++ b/apps/www/components/CaseStudies/index.tsx
@@ -28,7 +28,7 @@ const CaseStudies = () => {
type: 'casestudy',
title: caseStudy.title,
description: caseStudy.description,
- thumb: `${basePath}/${caseStudy.imgUrl}`,
+ imgThumb: `${basePath}/${caseStudy.imgUrl}`,
hideAuthor: true,
url: caseStudy.url.replace('/blog/', ''),
path: caseStudy.path,
diff --git a/apps/www/components/CustomerStories/index.tsx b/apps/www/components/CustomerStories/index.tsx
index f79b6c58b64..3b957af2421 100644
--- a/apps/www/components/CustomerStories/index.tsx
+++ b/apps/www/components/CustomerStories/index.tsx
@@ -1,19 +1,19 @@
'use client'
-import { PropsWithChildren } from 'react'
-import dynamic from 'next/dynamic'
-import Link from 'next/link'
-import Image from 'next/image'
-import { useTheme } from 'next-themes'
import { ArrowRight } from 'lucide-react'
+import { useTheme } from 'next-themes'
+import dynamic from 'next/dynamic'
+import Image from 'next/image'
+import Link from 'next/link'
+import { PropsWithChildren } from 'react'
+import SectionHeader from 'components/UI/SectionHeader'
import { Button, cn } from 'ui'
import SectionContainer from '~/components/Layouts/SectionContainer'
-import SectionHeader from 'components/UI/SectionHeader'
import Panel from '~/components/Panel'
-import customerStories from '~/data/CustomerStories'
import type { CustomerStoryType } from '~/data/CustomerStories'
+import customerStories from '~/data/CustomerStories'
import { useSendTelemetryEvent } from '~/lib/telemetry'
const CustomersSliderMobile = dynamic(() => import('./CustomersSliderMobile'))
@@ -34,7 +34,7 @@ const CustomerStories = () => (
View all stories
- View Events
+ View events
diff --git a/apps/www/components/Events/EventGridItem.tsx b/apps/www/components/Events/EventGridItem.tsx
index 319d916602d..a16bee905ea 100644
--- a/apps/www/components/Events/EventGridItem.tsx
+++ b/apps/www/components/Events/EventGridItem.tsx
@@ -40,7 +40,13 @@ const EventGridItem = ({ event }: Props) => {
fill
sizes="100%"
quality={100}
- src={event.type === 'casestudy' ? event.thumb : `/images/blog/${event.thumb}`}
+ src={
+ event.type === 'casestudy' ||
+ event.thumb.startsWith('/') ||
+ event.thumb.startsWith('http')
+ ? event.thumb
+ : `/images/blog/${event.thumb}`
+ }
className="scale-100 object-cover overflow-hidden"
alt={`${event.title} thumbnail`}
/>
diff --git a/apps/www/components/Solutions/PostGrid.tsx b/apps/www/components/Solutions/PostGrid.tsx
index 8c6198a58fd..480576e00f1 100644
--- a/apps/www/components/Solutions/PostGrid.tsx
+++ b/apps/www/components/Solutions/PostGrid.tsx
@@ -1,8 +1,8 @@
-import { cn } from 'ui'
-import SectionContainer from '../Layouts/SectionContainer'
-import { getSortedPosts } from '~/lib/posts'
import Image from 'next/image'
import Link from 'next/link'
+import { cn } from 'ui'
+import { getSortedPosts } from '~/lib/posts'
+import SectionContainer from '../Layouts/SectionContainer'
interface PostGridProps {
id?: string
@@ -31,10 +31,14 @@ function PostGrid({ id, className, header, subheader, posts }: PostGridProps) {
className="border rounded-md flex flex-col relative overflow-hidden"
key={post.slug}
>
- {post.thumb && (
+ {post.imgThumb && (
),
},
- {
- id: Solutions.convex,
- text: 'Switch from Convex',
- description: '',
- url: '/solutions/switch-from-convex',
- icon: (props: any) => (
-
-
-
-
-
- ),
- },
],
}
diff --git a/apps/www/data/solutions/convex.tsx b/apps/www/data/solutions/convex.tsx
deleted file mode 100644
index 6ead8869eb8..00000000000
--- a/apps/www/data/solutions/convex.tsx
+++ /dev/null
@@ -1,702 +0,0 @@
-import { cn, Image } from 'ui'
-import dynamic from 'next/dynamic'
-import { CubeIcon } from '@heroicons/react/outline'
-import {
- ArrowRight,
- ArrowUpRight,
- Timer,
- Lock,
- ShieldCheck,
- Database,
- Code2,
- Check,
- InfoIcon,
- TrendingUp,
- Puzzle,
- DollarSign,
-} from 'lucide-react'
-import RealtimeLogs from 'components/Products/Functions/RealtimeLogs'
-
-import MainProducts from 'data/MainProducts'
-import { PRODUCT_SHORTNAMES } from 'shared-data/products'
-import { companyStats } from 'data/company-stats'
-
-const AuthVisual = dynamic(() => import('components/Products/AuthVisual'))
-const FunctionsVisual = dynamic(() => import('components/Products/FunctionsVisual'))
-const RealtimeVisual = dynamic(() => import('components/Products/RealtimeVisual'))
-
-const data = {
- metadata: {
- metaTitle: 'Switch from Convex to Supabase',
- metaDescription:
- 'Migrate from Convex to Supabase for more control, flexibility, and the power of Postgres.',
- },
- heroSection: {
- id: 'hero',
- title: 'Moving from Convex to Supabase',
- sectionContainerClassName: cn(
- '[&_h1]:text-xl [&_h1]:md:!text-2xl [&_h1]:lg:!text-4xl [&_h1]:2xl:!text-5xl',
- '[&_.image-container]:flex [&_.image-container]:items-center'
- ),
- h1: 'Ship fast. Scale forever.',
- subheader: [
- <>
- Supabase gives you the speed you love with the foundation you need. Spin up a backend in
- minutes. Get Auth, Storage, Edge Functions, Realtime, and Vector search out of the box.
- Build with AI tools like Cursor or Claude Code that already speak fluent SQL.
- >,
- <>
- Build your project in a weekend. Scale it to millions of users without switching platforms,
- rewriting queries, or learning the limits of a proprietary database.
- >,
- ],
- ctas: [
- {
- label: 'View documentation',
- href: 'https://supabase.com/docs',
- type: 'default' as any,
- icon: ,
- },
- {
- label: 'Start your project',
- href: 'https://supabase.com/dashboard',
- type: 'primary' as any,
- icon: ,
- },
- ],
- image: (
-
- ),
- },
-
- why: {
- id: 'why-supabase',
- label: '',
- heading: (
- <>
- Why developers choose Supabase over Convex
- >
- ),
- subheading:
- 'Supabase is built on standard Postgres with everything you need out of the box: auth, storage, edge functions, realtime, and vector search—all with zero lock-in. Use any ORM, connect with any tool, and build fast with AI coding assistants like Claude Code or Cursor. Your database, your data, your choice.',
- features: [
- {
- id: 'postgres-first',
- icon: Database,
- heading: "It's just Postgres",
- subheading:
- "Familiar SQL, familiar model, proven platform. No proprietary query language. No artificial limits. Just standard SQL that works everywhere. Postgres powers the world's most demanding applications, and you get the same battle-tested database.",
- },
- {
- id: 'scale-to-millions',
- icon: TrendingUp,
- heading: 'Scale to millions',
- subheading:
- 'Real Postgres means real scale. Start small and grow to millions of users on the same database. Postgres handles everything from startups to enterprise workloads with proven scalability. Your database grows with you, no migrations needed.',
- },
- {
- id: 'powerful-ecosystem',
- icon: Puzzle,
- heading: 'A powerful ecosystem',
- subheading:
- 'Connect with pgAdmin, Postico, DBeaver, or your favorite tool. Use any SQL client, ORM, or database tool. Tap into the most popular Postgres extensions, including: PostGIS for geospatial, pgvector for AI, and more. The entire Postgres ecosystem is at your fingertips.',
- },
- {
- id: 'complete-stack',
- icon: CubeIcon,
- heading: 'A complete backend in the box',
- subheading:
- "Supabase includes Auth, Storage, Edge Functions, Realtime, and Vector search. Everything is fully integrated and ready to use. Stop stitching together services from different providers. Stop paying for tools that don't talk to each other. One platform, one bill, one dashboard.",
- },
- {
- id: 'ultra-flexible',
- icon: Code2,
- heading: 'Ultra flexible by design',
- subheading:
- "Don't want to use our SDKs? Use any Postgres client. Don't need RLS? Don't use it. Want to use your own auth? Go ahead. Connect to external data sources with Foreign Data Wrappers. Supabase adapts to your workflow, not the other way around.",
- },
- {
- id: 'ai-optimized',
- icon: Timer,
- heading: 'Ready to move fast with AI',
- subheading:
- 'Perfect for teams using Claude Code, Cursor, or other AI tools. Declare your schemas in code and deploy them to your project. Generate types on the fly.',
- },
- {
- id: 'analytics-etl',
- icon: ArrowRight,
- heading: 'Built-in ETL for analytics',
- subheading:
- 'Stream changes from Postgres to BigQuery, Iceberg, or other analytical destinations in real time. No third-party tools needed—just configure a publication and start replicating. Keep your app fast while unlocking powerful analytics.',
- },
- {
- id: 'predictable-pricing',
- icon: DollarSign,
- heading: 'Fair, predictable pricing',
- subheading:
- "Supabase charges for what you use, not how your data syncs. No surprise bandwidth bills from real-time subscriptions. No per-function-call pricing that explodes with traffic. Postgres connection pooling means efficient resource usage at any scale. Know what you'll pay before you ship.",
- },
- ],
- },
- platform: {
- id: 'postgres-platform',
- title: (
- <>
- A complete backend platform with zero lock-in
- >
- ),
- subheading:
- "Standard Postgres plus auth, storage, functions, and real-time. Use what you need, skip what you don't.",
- features: [
- {
- id: 'database',
- title: 'Database',
- isDatabase: true,
- icon: MainProducts[PRODUCT_SHORTNAMES.DATABASE].icon,
- subheading: (
- <>
- A fully managed Postgres database.
- No forks: 100% pure Postgres.
- >
- ),
- className: 'lg:col-span-2 flex-col lg:flex-row',
- image: (
-
-
-
-
-
-
- NAME
-
-
- PUBLICATION
-
-
-
-
- {[
- { name: 'Jon Meyers', pub: 'All', active: false },
- { name: 'Chris Martin', pub: 'All', active: true },
- { name: 'Amy Quek', pub: 'No', active: false },
- { name: 'Riccardo Bussetti', pub: 'No', active: false },
- { name: 'Beng Eu', pub: 'All', active: false },
- { name: 'Tyler Hillery', pub: 'All', active: false },
- ].map((row) => (
-
- {row.name}
- {row.pub}
-
- ))}
-
-
-
-
-
- ),
- highlights: (
-
-
- 100% portable
-
-
- Built-in Auth with RLS
-
-
- Easy to extend
-
-
- ),
- },
- {
- id: 'authentication',
- title: 'Authentication',
- icon: MainProducts[PRODUCT_SHORTNAMES.AUTHENTICATION].icon,
- subheading: (
- <>
- Secure authentication with email/password, magic links, OAuth (Google, GitHub, Twitter,
- etc.), SAML, SSO, and phone/SMS OTP.
- >
- ),
- className: '!border-l-0 sm:!border-l sm:!border-t-0',
- image: ,
- },
- {
- id: 'rbac',
- title: 'Role-Based Access Control',
- icon: 'M17.6874 22.888V20.3886C17.6874 17.5888 15.4178 15.3192 12.618 15.3192C9.8182 15.3192 7.54852 17.5888 7.54852 20.3886V22.888M21.5531 11.5235C21.8189 14.1669 20.9393 16.9038 18.9141 18.9289C18.5359 19.3072 18.1328 19.6455 17.7101 19.9438M20.8038 8.70448C20.3598 7.71036 19.7299 6.77911 18.9141 5.96334C15.3338 2.38299 9.52889 2.38299 5.94855 5.96334C4.17501 7.73687 3.28 10.0562 3.26352 12.3807M24.0875 13.1161L23.2046 12.2332C22.3264 11.355 20.9026 11.355 20.0244 12.2332L19.1415 13.1161M0.875198 10.9503L1.75809 11.8331C2.63629 12.7113 4.06012 12.7113 4.93832 11.8331L5.82121 10.9503M7.49904 20.4919C5.77226 19.4557 4.37848 17.8555 3.62143 15.8584M15.6799 12.1942C15.6799 13.9201 14.2808 15.3192 12.5549 15.3192C10.829 15.3192 9.42993 13.9201 9.42993 12.1942C9.42993 10.4683 10.829 9.06917 12.5549 9.06917C14.2808 9.06917 15.6799 10.4683 15.6799 12.1942Z',
- subheading: <>Secure your data properly.>,
- className: '!border-l-0',
- image: (
-
- ),
- },
- {
- id: 'realtime',
- title: 'Realtime',
- icon: MainProducts[PRODUCT_SHORTNAMES.REALTIME].icon,
- subheading: (
- <>
- Postgres replication enables{' '}
- live sync functionality for collaborative
- applications.
- >
- ),
- className: '!border-l-0 sm:!border-l',
- image: (
-
- ),
- },
- {
- id: 'storage',
- title: 'Storage',
- icon: MainProducts[PRODUCT_SHORTNAMES.STORAGE].icon,
- subheading: (
- <>
- Scalable S3-compatible object storage for
- managing files, images, and videos.
- >
- ),
- className: '!border-l-0 lg:!border-l',
- image: (
-
- ),
- },
- {
- id: 'edge-functions',
- title: 'Edge Functions',
- icon: MainProducts[PRODUCT_SHORTNAMES.FUNCTIONS].icon,
- subheading: (
- <>Serverless functions powered by Deno, deployed globally for low-latency execution.>
- ),
- className: '!border-l-0 sm:!border-l lg:!border-l-0',
- image: ,
- },
- {
- id: 'vectors',
- title: 'Vectors',
- icon: 'M4.13477 12.8129C4.13477 14.1481 4.43245 15.4138 4.96506 16.5471M12.925 4.02271C11.5644 4.02271 10.276 4.33184 9.12614 4.88371M21.7152 12.8129C21.7152 11.4644 21.4115 10.1867 20.8688 9.0447M12.925 21.6032C14.2829 21.6032 15.5689 21.2952 16.717 20.7454M16.717 20.7454C17.2587 21.5257 18.1612 22.0366 19.1831 22.0366C20.84 22.0366 22.1831 20.6935 22.1831 19.0366C22.1831 17.3798 20.84 16.0366 19.1831 16.0366C17.5263 16.0366 16.1831 17.3798 16.1831 19.0366C16.1831 19.6716 16.3804 20.2605 16.717 20.7454ZM4.96506 16.5471C4.16552 17.086 3.63965 17.9999 3.63965 19.0366C3.63965 20.6935 4.98279 22.0366 6.63965 22.0366C8.2965 22.0366 9.63965 20.6935 9.63965 19.0366C9.63965 17.3798 8.2965 16.0366 6.63965 16.0366C6.01951 16.0366 5.44333 16.2248 4.96506 16.5471ZM9.12614 4.88371C8.58687 4.08666 7.67444 3.56274 6.63965 3.56274C4.98279 3.56274 3.63965 4.90589 3.63965 6.56274C3.63965 8.2196 4.98279 9.56274 6.63965 9.56274C8.2965 9.56274 9.63965 8.2196 9.63965 6.56274C9.63965 5.94069 9.45032 5.36285 9.12614 4.88371ZM20.8688 9.0447C21.6621 8.50486 22.1831 7.59464 22.1831 6.56274C22.1831 4.90589 20.84 3.56274 19.1831 3.56274C17.5263 3.56274 16.1831 4.90589 16.1831 6.56274C16.1831 8.2196 17.5263 9.56274 19.1831 9.56274C19.8081 9.56274 20.3884 9.37165 20.8688 9.0447Z',
- subheading: (
- <>
- pgvector extension for AI/ML applications, enabling fast semantic search and embedding
- storage.
- >
- ),
- className: '!border-l-0 lg:!border-l',
- image: (
-
- ),
- },
- {
- id: 'row-level-security',
- title: 'Row Level Security',
- icon: 'M20.3124 10.9373C21.1753 10.9373 21.8749 11.6369 21.8749 12.4998V12.4998C21.8749 13.3628 21.1753 14.0623 20.3124 14.0623L4.68738 14.0623C3.82443 14.0623 3.12488 13.3628 3.12488 12.4998V12.4998C3.12488 11.6369 3.82443 10.9373 4.68738 10.9373L20.3124 10.9373Z M20.3124 3.90454C21.1753 3.90454 21.8749 4.6041 21.8749 5.46704V5.46704C21.8749 6.32999 21.1753 7.02954 20.3124 7.02954L4.68738 7.02954C3.82443 7.02954 3.12488 6.32998 3.12488 5.46704V5.46704C3.12488 4.6041 3.82443 3.90454 4.68738 3.90454L20.3124 3.90454Z M20.3124 17.9701C21.1753 17.9701 21.8749 18.6696 21.8749 19.5326V19.5326C21.8749 20.3955 21.1753 21.0951 20.3124 21.0951L4.68738 21.0951C3.82443 21.0951 3.12488 20.3955 3.12488 19.5326V19.5326C3.12488 18.6696 3.82443 17.9701 4.68738 17.9701L20.3124 17.9701Z',
- subheading: <>Granular access control policies to secure data at the row level.>,
- image: (
-
- ),
- },
- ],
- },
- uiSection: {
- id: 'ui-components',
- title: 'Pre-built UI components',
- link: 'https://supabase.com/ui',
- subheading:
- 'A collection of components and blocks built on the shadcn/ui library that connect your front-end to your Supabase back-end via a single command.',
- content: (
-
- ),
- },
- developerExperience: {
- id: 'developer-experience',
- className: '[&_h2]:!max-w-sm',
- title: (
- <>
- Developers can build faster with Supabase
- >
- ),
- subheading: 'Features that help developers move quickly and focus.',
- features: [
- {
- id: 'ai-assistant',
- title: 'AI Assistant',
- icon: 'M11.8949 2.39344C12.5051 1.78324 13.4944 1.78324 14.1046 2.39344L22.9106 11.1994C23.5208 11.8096 23.5208 12.7989 22.9106 13.4091L14.1046 22.2151C13.4944 22.8253 12.5051 22.8253 11.8949 22.2151L3.08892 13.4091C2.47872 12.7989 2.47872 11.8096 3.08892 11.1994L11.8949 2.39344Z M16.5408 12.3043C16.5408 14.2597 14.9556 15.8449 13.0002 15.8449C11.0448 15.8449 9.45961 14.2597 9.45961 12.3043C9.45961 10.3489 11.0448 8.76371 13.0002 8.76371C14.9556 8.76371 16.5408 10.3489 16.5408 12.3043Z',
- subheading:
- 'A single panel that persists across the Supabase Dashboard and maintains context across AI prompts.',
- image: (
-
-
-
-
-
-
-
AI Assistant
-
-
-
-
-
Entity: Auth
-
Schema:
-
- Issue: We have detected that you have enabled the email provider with an expiry time
- of more than an hour. It is recommended to set this value to less th...
-
-
-
- ),
- },
- {
- id: 'mcp-server',
- title: 'MCP Server',
- icon: 'M19 5L22 2M2 22L5 19M7.5 13.5L10 11M10.5 16.5L13 14M6.3 20.3C6.52297 20.5237 6.78791 20.7013 7.07963 20.8224C7.37136 20.9435 7.68413 21.0059 8 21.0059C8.31587 21.0059 8.62864 20.9435 8.92036 20.8224C9.21209 20.7013 9.47703 20.5237 9.7 20.3L12 18L6 12L3.7 14.3C3.47626 14.523 3.29873 14.7879 3.17759 15.0796C3.05646 15.3714 2.99411 15.6841 2.99411 16C2.99411 16.3159 3.05646 16.6286 3.17759 16.9204C3.29873 17.2121 3.47626 17.477 3.7 17.7L6.3 20.3ZM12 6L18 12L20.3 9.7C20.5237 9.47703 20.7013 9.21209 20.8224 8.92036C20.9435 8.62864 21.0059 8.31587 21.0059 8C21.0059 7.68413 20.9435 7.37136 20.8224 7.07963C20.7013 6.78791 20.5237 6.52297 20.3 6.3L17.7 3.7C17.477 3.47626 17.2121 3.29873 16.9204 3.17759C16.6286 3.05646 16.3159 2.99411 16 2.99411C15.6841 2.99411 15.3714 3.05646 15.0796 3.17759C14.7879 3.29873 14.523 3.47626 14.3 3.7L12 6Z',
- subheading:
- 'Connect your favorite AI tools such as Cursor or Claude directly with Supabase.',
- image: (
-
- ),
- },
- {
- id: 'auto-generated-apis',
- title: 'Auto-generated APIs',
- icon: 'M4.13477 12.8129C4.13477 14.1481 4.43245 15.4138 4.96506 16.5471M12.925 4.02271C11.5644 4.02271 10.276 4.33184 9.12614 4.88371M21.7152 12.8129C21.7152 11.4644 21.4115 10.1867 20.8688 9.0447M12.925 21.6032C14.2829 21.6032 15.5689 21.2952 16.717 20.7454M16.717 20.7454C17.2587 21.5257 18.1612 22.0366 19.1831 22.0366C20.84 22.0366 22.1831 20.6935 22.1831 19.0366C22.1831 17.3798 20.84 16.0366 19.1831 16.0366C17.5263 16.0366 16.1831 17.3798 16.1831 19.0366C16.1831 19.6716 16.3804 20.2605 16.717 20.7454ZM4.96506 16.5471C4.16552 17.086 3.63965 17.9999 3.63965 19.0366C3.63965 20.6935 4.98279 22.0366 6.63965 22.0366C8.2965 22.0366 9.63965 20.6935 9.63965 19.0366C9.63965 17.3798 8.2965 16.0366 6.63965 16.0366C6.01951 16.0366 5.44333 16.2248 4.96506 16.5471ZM9.12614 4.88371C8.58687 4.08666 7.67444 3.56274 6.63965 3.56274C4.98279 3.56274 3.63965 4.90589 3.63965 6.56274C3.63965 8.2196 4.98279 9.56274 6.63965 9.56274C8.2965 9.56274 9.63965 8.2196 9.63965 6.56274C9.63965 5.94069 9.45032 5.36285 9.12614 4.88371ZM20.8688 9.0447C21.6621 8.50486 22.1831 7.59464 22.1831 6.56274C22.1831 4.90589 20.84 3.56274 19.1831 3.56274C17.5263 3.56274 16.1831 4.90589 16.1831 6.56274C16.1831 8.2196 17.5263 9.56274 19.1831 9.56274C19.8081 9.56274 20.3884 9.37165 20.8688 9.0447Z',
- subheading:
- "Learn SQL when you're ready. In the meantime, Supabase generates automatic APIs to make coding a lot easier.",
- image: (
-
- ),
- },
- {
- id: 'foreign-data-wrappers',
- title: 'Foreign Data Wrappers',
- icon: 'M10.2805 18.2121C11.2419 18.6711 12.3325 18.8932 13.4711 18.8084C15.2257 18.6776 16.7596 17.843 17.8169 16.6015M8.21496 8.36469C9.27117 7.14237 10.7928 6.322 12.5311 6.19248C13.7196 6.10392 14.8558 6.34979 15.8474 6.85054M17.8169 16.6015L20.5242 19.3223C22.1857 17.5141 23.1562 15.1497 23.1562 12.5005C23.1562 6.89135 18.6091 2.34424 13 2.34424C10.9595 2.34424 9.16199 2.87659 7.57035 3.91232C8.35717 3.56865 9.22613 3.37801 10.1396 3.37801C12.6236 3.37801 14.7783 4.78762 15.8474 6.85054M17.8169 16.6015V16.6015C16.277 15.059 16.3448 12.5527 16.5387 10.3817C16.5557 10.191 16.5644 9.99794 16.5644 9.80282C16.5644 8.73844 16.3056 7.73451 15.8474 6.85054M13 22.6567C7.39086 22.6567 2.84375 18.1096 2.84375 12.5005C2.84375 9.84123 3.8026 7.48969 5.4753 5.67921L8.21496 8.42354V8.42354C9.76942 9.98064 9.69844 12.5133 9.51947 14.7062C9.50526 14.8803 9.49802 15.0564 9.49802 15.2341C9.49802 18.7705 12.3648 21.6373 15.9012 21.6373C16.8116 21.6373 17.6776 21.4473 18.4618 21.1048C16.8609 22.1588 15.06 22.6567 13 22.6567Z',
- subheading:
- 'Connect Supabase to Redshift, BigQuery, MySQL, and external APIs for seamless integrations.',
- image: (
-
- ),
- },
- {
- id: 'instant-deployment',
- title: 'Instant and secure deployment',
- icon: 'M12.5 1.5625C6.45939 1.5625 1.5625 6.45939 1.5625 12.5C1.5625 18.5406 6.45939 23.4375 12.5 23.4375C18.5406 23.4375 23.4375 18.5406 23.4375 12.5C23.4375 9.90692 22.5351 7.52461 21.0273 5.64995L11.6145 15.0627L9.61957 13.0677M12.6068 5.82237C8.92939 5.82237 5.94826 8.80351 5.94826 12.4809C5.94826 16.1583 8.92939 19.1395 12.6068 19.1395C16.2842 19.1395 19.2654 16.1583 19.2654 12.4809C19.2654 11.1095 18.8507 9.83483 18.14 8.77557',
- subheading: (
- <>
- No need to set up servers , manage DevOps, or
- tweak security settings.
- >
- ),
-
- image: (
- <>
-
-
-
- >
- ),
- },
- {
- id: 'observability',
- title: 'Observability',
- icon: 'M11.1404 7.66537C11.1404 5.18146 13.1541 3.16785 15.638 3.16785H17.3775C19.8614 3.16785 21.875 5.18146 21.875 7.66537V17.3776C21.875 19.8615 19.8614 21.8751 17.3775 21.8751H15.638C13.1541 21.8751 11.1404 19.8615 11.1404 17.3776V7.66537Z M3.125 14.7821C3.125 13.4015 4.24419 12.2823 5.62477 12.2823C7.00536 12.2823 8.12454 13.4015 8.12454 14.7821V19.3754C8.12454 20.7559 7.00536 21.8751 5.62477 21.8751C4.24419 21.8751 3.125 20.7559 3.125 19.3754V14.7821Z M3.125 5.58522C3.125 4.20463 4.24419 3.08545 5.62477 3.08545C7.00536 3.08545 8.12454 4.20463 8.12454 5.58522V6.95164C8.12454 8.33223 7.00536 9.45142 5.62477 9.45142C4.24419 9.45142 3.125 8.33223 3.125 6.95164V5.58522Z',
- subheading:
- 'Built-in logs, query performance tools, and security insights for easy debugging.',
- image: (
-
- ),
- },
- ],
- },
- resultsSection: {
- id: 'results',
- heading: (
- <>
- Top performance,
-
- at any scale
- >
- ),
- subheading:
- "Supabase ensures optimal database performance at any scale, so you can focus on innovating and growing without worrying about infrastructure limitations — whether you're handling high-traffic applications, complex queries, or massive data volumes.",
- highlights: [
- {
- heading: companyStats.databasesManaged.label,
- subheading: companyStats.databasesManaged.text,
- },
- {
- heading: companyStats.databasesLaunchedDaily.label,
- subheading: companyStats.databasesLaunchedDaily.text,
- },
- ],
- },
- featureGrid: {
- id: 'database-features',
- features: [
- {
- id: 'postgres-core',
- title: 'Postgres at its core',
- description: (
- <>
- ACID-compliant, battle-tested database{' '}
- trusted by enterprises and startups .
- >
- ),
- icon: 'M13.2689 14.9229C14.04 16.494 15.6379 17.4892 17.3881 17.4893H22.0892C22.4726 17.4893 22.7843 17.8003 22.7845 18.1836C22.7845 18.5671 22.4728 18.8789 22.0892 18.8789H20.1664C20.1564 21.0605 18.171 22.4853 16.0052 22.4854C14.044 22.4854 12.4009 21.1292 11.9603 19.3037L11.9213 19.126L11.9086 18.9854C11.9116 18.6624 12.1408 18.3748 12.4701 18.3105C12.7994 18.2463 13.1203 18.4265 13.2445 18.7246L13.2845 18.8594L13.3412 19.0947C13.6746 20.251 14.742 21.0967 16.0052 21.0967C17.6551 21.0966 18.7655 20.0649 18.7758 18.8789H17.3881C15.108 18.8788 13.0263 17.5811 12.0218 15.5342L13.2689 14.9229ZM18.7767 15.6787V11.4639C18.7766 8.09738 16.0476 5.36816 12.681 5.36816H11.7269C11.7032 5.36816 11.6797 5.36364 11.6566 5.36133H7.15564C6.5783 5.36133 6.05835 5.69927 5.82068 6.21777L5.77673 6.32422L4.26404 10.4443C4.03486 11.0686 4.21563 11.7696 4.71814 12.2051L5.75622 13.1045L5.93298 13.2754C6.32193 13.694 6.54138 14.2468 6.54138 14.8242V16.4775L6.5531 16.7227C6.67574 17.9298 7.69544 18.8721 8.93493 18.8721C9.2213 18.8721 9.45986 18.6685 9.51501 18.3984L9.52771 18.2793V10.9121C9.52772 9.33737 10.1566 7.82755 11.2748 6.71875L11.3842 6.63086C11.6543 6.45411 12.0199 6.48475 12.2562 6.72266C12.5263 6.995 12.5247 7.43503 12.2523 7.70508L12.097 7.86816C11.3396 8.69814 10.9164 9.78304 10.9164 10.9121V18.2793L10.9056 18.4814C10.8044 19.4807 9.96094 20.2607 8.93493 20.2607C6.91113 20.2607 5.25814 18.6714 5.15661 16.6729L5.15173 16.4775V14.8242C5.15173 14.5993 5.06693 14.3838 4.9154 14.2207L4.84607 14.1543L3.80798 13.2549C2.86934 12.4414 2.53223 11.1318 2.96033 9.96582L4.47302 5.84473L4.55798 5.63867C5.02039 4.62971 6.03224 3.97266 7.15564 3.97266H11.8246V3.97949H12.681C16.8146 3.97949 20.1662 7.33032 20.1664 11.4639V15.6787C20.1664 16.0622 19.8546 16.373 19.4711 16.373C19.0877 16.3728 18.7767 16.0621 18.7767 15.6787ZM12.3392 14.6055C12.6835 14.4365 13.1 14.5785 13.2689 14.9229L12.0218 15.5342C11.8532 15.1901 11.9953 14.7745 12.3392 14.6055Z M14.4779 10.7135C14.4779 11.1278 14.8137 11.4635 15.2279 11.4635C15.6421 11.4635 15.9779 11.1278 15.9779 10.7135C15.9779 10.2993 15.6421 9.96354 15.2279 9.96354C14.8137 9.96354 14.4779 10.2993 14.4779 10.7135Z',
- iconNoStroke: true,
- },
- {
- id: 'scaling',
- title: 'Horizontal & Vertical Scaling',
- description: (
- <>
- Scale compute and storage independently, including support for{' '}
- read replicas .
- >
- ),
- icon: 'M14.2847 11.1404V7.8447C14.2847 5.36078 12.2711 3.34717 9.7872 3.34717H7.84476C5.36084 3.34717 3.34723 5.36078 3.34723 7.8447V9.78714C3.34723 12.2711 5.36084 14.2847 7.84476 14.2847H11.1253M8.63752 8.65306L18.4524 18.468M19.1282 14.068V16.5986C19.1282 17.8405 18.1214 18.8474 16.8794 18.8474H14.2847M15.6573 22.0972H17.5997C20.0836 22.0972 22.0972 20.0836 22.0972 17.5996V15.6572C22.0972 13.1733 20.0836 11.1597 17.5997 11.1597H15.6573C13.1733 11.1597 11.1597 13.1733 11.1597 15.6572V17.5996C11.1597 20.0836 13.1733 22.0972 15.6573 22.0972Z',
- },
- {
- id: 'multi-region',
- title: 'Multi-region Deployments',
- description: (
- <>
- Deploy databases across multiple regions for{' '}
- global availability .
- >
- ),
- icon: 'M8.48462 3.05339C6.79298 3.58819 5.33457 4.64831 4.30037 6.0436C3.4029 7.25444 2.82613 8.71636 2.69516 10.306H6.77142C6.83771 8.01994 7.22916 5.93809 7.84745 4.36313C8.03485 3.88578 8.24723 3.44433 8.48462 3.05339ZM10.9999 1.27832C7.79633 1.27832 4.95467 2.82842 3.18457 5.21656C1.98658 6.83284 1.2778 8.83471 1.2778 11.0001C1.2778 13.1781 1.99476 15.1906 3.20527 16.8117C4.97675 19.1842 7.80877 20.7225 10.9999 20.7225C14.191 20.7225 17.023 19.1841 18.7944 16.8117C20.005 15.1906 20.722 13.1781 20.722 11.0001C20.722 8.83471 20.0132 6.83284 18.8152 5.21656L18.7944 5.18864C17.0229 2.81635 14.1909 1.27832 10.9999 1.27832ZM10.9999 2.66721C10.768 2.66721 10.4732 2.78413 10.1294 3.15462C9.78466 3.52602 9.44227 4.10142 9.14028 4.87067C8.596 6.2571 8.22699 8.16013 8.16092 10.306H13.8389C13.7728 8.16013 13.4038 6.2571 12.8595 4.87067C12.5575 4.10142 12.2151 3.52602 11.8704 3.15462C11.5265 2.78413 11.2318 2.66721 10.9999 2.66721ZM15.2284 10.306C15.1621 8.01994 14.7706 5.93809 14.1523 4.36313C13.9649 3.88578 13.7525 3.44433 13.5152 3.05339C15.1971 3.58512 16.6485 4.63618 17.6816 6.01966L17.6994 6.0436C18.5969 7.25443 19.1737 8.71636 19.3046 10.306H15.2284ZM13.8389 11.6949H8.16092C8.22699 13.8407 8.596 15.7437 9.14028 17.1301C9.44227 17.8994 9.78466 18.4748 10.1294 18.8462C10.4732 19.2167 10.768 19.3336 10.9999 19.3336C11.2318 19.3336 11.5265 19.2167 11.8704 18.8462C12.2151 18.4748 12.5575 17.8994 12.8595 17.1301C13.4038 15.7437 13.7728 13.8407 13.8389 11.6949ZM13.5152 18.9473C13.7526 18.5564 13.965 18.115 14.1523 17.6377C14.7706 16.0627 15.1621 13.9809 15.2284 11.6949H19.3046C19.1727 13.2947 18.5892 14.7653 17.6816 15.9807C16.6485 17.3643 15.1971 18.4155 13.5152 18.9473ZM8.48458 18.9474C8.24721 18.5564 8.03484 18.115 7.84745 17.6377C7.22916 16.0627 6.83771 13.9809 6.77142 11.6949H2.6952C2.82712 13.2947 3.41061 14.7653 4.31815 15.9808C5.35126 17.3644 6.80264 18.4156 8.48458 18.9474Z',
- iconNoStroke: true,
- },
- {
- id: 'high-availability',
- title: 'High Availability Architecture',
- description: (
- <>
- Enterprise plans offer{' '}
- automatic failover and redundancy for
- mission-critical applications.
- >
- ),
- icon: 'M16.3046 3.24514C15.3004 2.91279 14.2268 2.73291 13.1111 2.73291C7.50197 2.73291 2.95486 7.28002 2.95486 12.8892C2.95486 18.4983 7.50197 23.0454 13.1111 23.0454C18.7203 23.0454 23.2674 18.4983 23.2674 12.8892C23.2674 10.5703 22.4902 8.4329 21.1822 6.72328L12.2253 15.5572L10.2303 13.5622M13.2175 6.31682C9.54013 6.31682 6.55899 9.29795 6.55899 12.4809C6.55899 16.1583 9.54013 19.1395 13.2175 19.1395C16.895 19.1395 19.8761 16.1583 19.8761 12.4809C19.8761 11.1095 19.4615 9.83483 18.7507 8.77557',
- },
- {
- id: 'pitr',
- title: 'Point-in-Time Recovery',
- description: (
- <>
- Restore your database to any point in time for
- disaster recovery.
- >
- ),
- icon: 'M3.3784 13.3407C3.1413 10.4689 4.12132 7.51558 6.31845 5.31845C10.2847 1.35219 16.7153 1.35219 20.6816 5.31845C24.6478 9.28471 24.6478 15.7153 20.6816 19.6816C16.7153 23.6478 10.2847 23.6478 6.31845 19.6816C5.3819 18.745 4.6665 17.671 4.17224 16.5246M0.706939 11.443L2.28117 13.0172C2.89137 13.6274 3.88069 13.6274 4.49088 13.0172L6.06512 11.443M10.761 17.5453L16.0995 17.5453C16.9625 17.5453 17.662 16.8458 17.662 15.9828V15.7328C17.662 14.8699 16.9625 14.1703 16.0995 14.1703L10.761 14.1703C9.89806 14.1703 9.1985 14.8699 9.1985 15.7328L9.1985 15.9828C9.1985 16.8458 9.89806 17.5453 10.761 17.5453ZM11.1648 14.1711L15.6537 14.1711C16.5167 14.1711 17.2162 13.4716 17.2162 12.6086L17.2162 12.3586C17.2162 11.4956 16.5167 10.7961 15.6537 10.7961L11.1648 10.7961C10.3019 10.7961 9.60234 11.4956 9.60234 12.3586L9.60234 12.6086C9.60234 13.4716 10.3019 14.1711 11.1648 14.1711ZM10.7606 10.7963L16.0991 10.7963C16.9621 10.7963 17.6616 10.0967 17.6616 9.2338V8.98375C17.6616 8.1208 16.9621 7.42125 16.0991 7.42125L10.7606 7.42125C9.89765 7.42125 9.19809 8.12081 9.19809 8.98375L9.19809 9.2338C9.19809 10.0967 9.89765 10.7963 10.7606 10.7963Z',
- },
- {
- id: 'backups',
- title: 'Automatic Backups',
- description: (
- <>
- Daily backups with retention policies for added
- security.
- >
- ),
- icon: 'M22.375 5.7085C22.375 7.43439 18.1777 8.8335 13 8.8335C7.82233 8.8335 3.625 7.43439 3.625 5.7085M22.375 5.7085C22.375 3.98261 18.1777 2.5835 13 2.5835C7.82233 2.5835 3.625 3.98261 3.625 5.7085M22.375 5.7085V10.1877M3.625 5.7085L3.625 20.2918C3.62434 20.9675 4.28075 21.6251 5.49583 22.166C6.71091 22.7069 8.41919 23.1019 10.3646 23.2918M3.625 13.0002C3.6235 13.5826 4.11036 14.1536 5.03066 14.6487C5.95095 15.1438 7.26805 15.5434 8.83334 15.8022M13 13.0002V17.1668M13 17.1668H17.1667M13 17.1668L15.1771 14.9897C16.0833 14.0835 17.3438 13.521 18.7292 13.521C19.9724 13.521 21.1647 14.0149 22.0437 14.8939C22.9228 15.773 23.4167 16.9653 23.4167 18.2085C23.4167 19.3016 23.0727 20.3671 22.4336 21.2539C21.7944 22.1407 20.8924 22.8039 19.8554 23.1496C18.8183 23.4952 17.6988 23.5059 16.6554 23.1799C15.612 22.854 14.6975 22.208 14.0417 21.3335',
- },
- ],
- },
- securitySection: {
- id: 'security',
- label: 'Security',
- heading: 'Enterprise-grade security',
- subheading: 'Supabase is built with security at its core.',
- features: [
- {
- icon: ShieldCheck,
- heading: 'SOC 2 Type II',
- subheading: 'Certified compliant with industry security standards.',
- },
- {
- icon: Lock,
- heading: 'Row Level Security',
- subheading: 'PostgreSQL native RLS policies protect your data at the database level.',
- },
- {
- icon: Database,
- heading: 'Encrypted at rest',
- subheading: 'All data is encrypted at rest and in transit.',
- },
- ],
- cta: {
- label: 'Learn about security',
- url: '/security',
- },
- },
- ctaSection: {
- id: 'get-started',
- title: (
- <>
- Start building with Supabase and{' '}
- unlock the power of Postgres
- >
- ),
- primaryCta: {
- label: 'Get started',
- url: 'https://supabase.com/dashboard',
- target: '_blank',
- icon: ,
- },
- },
-}
-
-export default data
diff --git a/apps/www/data/solutions/innovation-teams.tsx b/apps/www/data/solutions/innovation-teams.tsx
index 68eec351eee..5e59d34608b 100644
--- a/apps/www/data/solutions/innovation-teams.tsx
+++ b/apps/www/data/solutions/innovation-teams.tsx
@@ -1,4 +1,15 @@
-import dynamic from 'next/dynamic'
+import { CubeIcon } from '@heroicons/react/outline'
+import { useBreakpoint } from 'common'
+import type { SecuritySectionProps } from 'components/Enterprise/Security'
+import { frameworks } from 'components/Hero/HeroFrameworks'
+import RealtimeLogs from 'components/Products/Functions/RealtimeLogs'
+import type { DXSectionProps } from 'components/Solutions/DeveloperExperienceSection'
+import type { FeatureGridProps } from 'components/Solutions/FeatureGrid'
+import type { MPCSectionProps } from 'components/Solutions/MPCSection'
+import type { PlatformSectionProps } from 'components/Solutions/PlatformSection'
+import type { ResultsSectionProps } from 'components/Solutions/ResultsSection'
+import { companyStats } from 'data/company-stats'
+import { useSendTelemetryEvent } from 'lib/telemetry'
import {
ArrowLeftRight,
Check,
@@ -14,47 +25,85 @@ import {
ShieldCheck,
Sparkles,
Timer,
- Users,
UserX,
+ Users,
} from 'lucide-react'
-import { CubeIcon } from '@heroicons/react/outline'
+import dynamic from 'next/dynamic'
+import { PRODUCT_SHORTNAMES } from 'shared-data/products'
import { Image } from 'ui'
import MainProducts from '../MainProducts'
-import { TwoColumnsSectionProps } from '~/components/Solutions/TwoColumnsSection'
-import RealtimeLogs from 'components/Products/Functions/RealtimeLogs'
-import { frameworks } from 'components/Hero/HeroFrameworks'
-
-import type { DXSectionProps } from 'components/Solutions/DeveloperExperienceSection'
-import type { ResultsSectionProps } from 'components/Solutions/ResultsSection'
-import type { PlatformSectionProps } from 'components/Solutions/PlatformSection'
import {
+ type FeaturesSection,
FrameworkLink,
type FrameworkLinkProps,
- type FeaturesSection,
type HeroSection,
type Metadata,
getEditors,
} from './solutions.utils'
-import type { FeatureGridProps } from 'components/Solutions/FeatureGrid'
-import type { SecuritySectionProps } from 'components/Enterprise/Security'
-import type { MPCSectionProps } from 'components/Solutions/MPCSection'
-
-import { PRODUCT_SHORTNAMES } from 'shared-data/products'
-import { useBreakpoint } from 'common'
-import { useSendTelemetryEvent } from 'lib/telemetry'
-import { companyStats } from 'data/company-stats'
+import { TwoColumnsSectionProps } from '~/components/Solutions/TwoColumnsSection'
const AuthVisual = dynamic(() => import('components/Products/AuthVisual'))
const FunctionsVisual = dynamic(() => import('components/Products/FunctionsVisual'))
const RealtimeVisual = dynamic(() => import('components/Products/RealtimeVisual'))
+interface Quote {
+ text: string
+ author: string
+ role: string
+ logo?: string | JSX.Element
+ link?: string
+ avatar?: string | JSX.Element
+}
+
+interface AIBuilderEcosystemSection {
+ id: string
+ heading: React.ReactNode
+ subheading: string
+ builders: Array<{
+ name: string
+ description: string
+ }>
+}
+
+interface CustomerEvidenceSection {
+ id: string
+ heading: React.ReactNode
+ customers: Array<{
+ name: string
+ highlights: string[]
+ cta?: {
+ label: string
+ href: string
+ }
+ }>
+}
+
+interface InnovationEnablementSection {
+ id: string
+ heading: React.ReactNode
+ options: Array<{
+ title: string
+ type: string
+ description: string
+ cta: {
+ label: string
+ href: string
+ }
+ }>
+}
+
const data: () => {
metadata: Metadata
heroSection: HeroSection
+ quote: Quote
+ secondaryQuote?: Quote
+ aiBuilderEcosystem: AIBuilderEcosystemSection
why: FeaturesSection
+ customerEvidence: CustomerEvidenceSection
platform: PlatformSectionProps
developerExperience: DXSectionProps
+ innovationEnablement: InnovationEnablementSection
platformStarterSection: TwoColumnsSectionProps
mcp: MPCSectionProps
} = () => {
@@ -64,57 +113,116 @@ const data: () => {
return {
metadata: {
- metaTitle: 'Supabase for Developers',
- metaDescription: 'Build fast. Scale easily. Trust your tech stack.',
+ metaTitle: 'The Production Backend for AI-Built Applications | Supabase',
+ metaDescription:
+ "Supabase powers every major AI builder. Your prototypes deserve enterprise infrastructure that passes security reviews, scales with success, and doesn't blow up budgets.",
},
heroSection: {
id: 'hero',
- title: 'Supabase for Innovation Teams',
+ title:
+ 'Supabase powers every major AI builder. Your prototypes deserve enterprise infrastructure.',
h1: (
<>
- Prototype fast, integrate with your data, scale when ready.
+ The Production Backend for AI-Built Applications
>
),
subheader: [
- <>Prototype in an afternoon, scale to millions.>,
<>
- You need to move fast without battling red tape, complex infrastructure, or data silos.
- Supabase gives you a fully managed Postgres backend with everything you need to prove your
- ideas while maintaining enterprise-grade security and compliance.{' '}
+ Your teams are already building with Lovable, Bolt, v0, and Claude. But prototypes aren't
+ enough. You need production-ready infrastructure that passes security reviews, scales with
+ success, and doesn't blow up budgets.
>,
],
image: undefined,
ctas: [
{
- label: 'Start your project',
+ label: 'Start Building',
href: 'https://supabase.com/dashboard',
type: 'primary' as any,
onClick: () =>
sendTelemetryEvent({
action: 'start_project_button_clicked',
- properties: { buttonLocation: 'Solutions: Developers page hero' },
+ properties: { buttonLocation: 'Solutions: Innovation Teams page hero' },
}),
},
{
- label: 'Request a demo',
+ label: 'Request a Demo',
href: 'https://supabase.com/contact/sales',
type: 'default' as any,
onClick: () =>
sendTelemetryEvent({
action: 'request_demo_button_clicked',
- properties: { buttonLocation: 'Solutions: Developers page hero' },
+ properties: { buttonLocation: 'Solutions: Innovation Teams page hero' },
}),
},
],
},
+ quote: {
+ text: 'We saved over a million dollars eliminating Meta Workplace. Another million replacing our vendor websites. Now our non-technical teams build production apps themselves. Supabase and Lovable made this possible.',
+ author: 'Seth',
+ role: 'Chief Innovation Officer',
+ logo: (
+
+
+
+
+
+ ),
+ link: '/customers/exprealty',
+ avatar: (
+
+ ),
+ },
+ aiBuilderEcosystem: {
+ id: 'ai-builder-ecosystem',
+ heading: (
+ <>
+ Your AI Tools Already Choose Supabase
+ >
+ ),
+ subheading:
+ 'Every major AI builder integrates with Supabase by default. One backend, infinite possibilities:',
+ builders: [
+ {
+ name: 'Lovable & Bolt',
+ description: 'Full-stack applications in minutes',
+ },
+ {
+ name: 'Vercel v0',
+ description: 'Component to production pipeline',
+ },
+ {
+ name: 'Claude & Cursor',
+ description: 'AI-powered local development',
+ },
+ {
+ name: 'Figma',
+ description: 'Design to database in hours',
+ },
+ ],
+ },
why: {
id: 'why-supabase',
label: '',
heading: (
<>
- Why innovation teams choose Supabase
+ Why Enterprises Choose Supabase for{' '}
+ AI Development
>
),
subheading:
@@ -157,12 +265,45 @@ const data: () => {
/>
),
- heading: 'Scalable with confidence',
+ heading: 'Scale with confidence',
subheading:
'Go from prototype to production on a single platform. Applications built on Supabase are ready to handle enterprise-level workloads, with features like read replicas and high-availability architecture ensuring performance and reliability as you scale.',
},
],
},
+ customerEvidence: {
+ id: 'customer-evidence',
+ heading: (
+ <>
+ Real Results From Real Enterprises
+ >
+ ),
+ customers: [
+ {
+ name: 'eXp Realty',
+ logo: '/images/customers/logos/exprealty.svg',
+ highlights: [
+ 'Saved $3M+ annually across multiple systems',
+ '70+ vibe-coded applications in production',
+ 'Non-technical real estate agents building customer-facing apps',
+ 'Moved entire international division off legacy systems',
+ ],
+ cta: {
+ label: 'Read the case study',
+ href: '/customers/exprealty',
+ },
+ },
+ {
+ name: 'Accenture Innovation Labs',
+ logo: '/images/customers/logos/accenture.svg',
+ highlights: [
+ 'Prototype-to-production in hours, not months',
+ 'Avoiding AWS complexity and auto-shutdown policies',
+ 'Engineers and non-technical consultants collaborating seamlessly',
+ ],
+ },
+ ],
+ },
platform: {
id: 'postgres-platform',
title: (
@@ -390,68 +531,26 @@ const data: () => {
},
developerExperience: {
id: 'developer-experience',
- className: '[&_h2]:!max-w-sm',
+ className: '[&_h2]:!max-w-lg',
title: (
<>
- Build faster with Supabase
+ Built for How AI Builders Work
>
),
- subheading: 'Features that help developers move quickly and focus.',
+ subheading: '',
features: [
- {
- id: 'ai-assistant',
- title: 'AI Assistant',
- icon: 'M11.8949 2.39344C12.5051 1.78324 13.4944 1.78324 14.1046 2.39344L22.9106 11.1994C23.5208 11.8096 23.5208 12.7989 22.9106 13.4091L14.1046 22.2151C13.4944 22.8253 12.5051 22.8253 11.8949 22.2151L3.08892 13.4091C2.47872 12.7989 2.47872 11.8096 3.08892 11.1994L11.8949 2.39344Z M16.5408 12.3043C16.5408 14.2597 14.9556 15.8449 13.0002 15.8449C11.0448 15.8449 9.45961 14.2597 9.45961 12.3043C9.45961 10.3489 11.0448 8.76371 13.0002 8.76371C14.9556 8.76371 16.5408 10.3489 16.5408 12.3043Z',
- subheading: (
- <>
- A single panel that persists across the Supabase Dashboard and maintains{' '}
- context across AI prompts .
- >
- ),
- image: (
-
-
-
-
-
-
-
AI Assistant
-
-
-
-
-
Entity: Auth
-
Schema:
-
- Issue: We have detected that you have enabled the email provider with an expiry
- time of more than an hour. It is recommended to set this value to less th...
-
-
-
- ),
- },
{
id: 'mcp-server',
- title: 'MCP Server',
+ title: 'MCP Server Integration',
icon: 'M19 5L22 2M2 22L5 19M7.5 13.5L10 11M10.5 16.5L13 14M6.3 20.3C6.52297 20.5237 6.78791 20.7013 7.07963 20.8224C7.37136 20.9435 7.68413 21.0059 8 21.0059C8.31587 21.0059 8.62864 20.9435 8.92036 20.8224C9.21209 20.7013 9.47703 20.5237 9.7 20.3L12 18L6 12L3.7 14.3C3.47626 14.523 3.29873 14.7879 3.17759 15.0796C3.05646 15.3714 2.99411 15.6841 2.99411 16C2.99411 16.3159 3.05646 16.6286 3.17759 16.9204C3.29873 17.2121 3.47626 17.477 3.7 17.7L6.3 20.3ZM12 6L18 12L20.3 9.7C20.5237 9.47703 20.7013 9.21209 20.8224 8.92036C20.9435 8.62864 21.0059 8.31587 21.0059 8C21.0059 7.68413 20.9435 7.37136 20.8224 7.07963C20.7013 6.78791 20.5237 6.52297 20.3 6.3L17.7 3.7C17.477 3.47626 17.2121 3.29873 16.9204 3.17759C16.6286 3.05646 16.3159 2.99411 16 2.99411C15.6841 2.99411 15.3714 3.05646 15.0796 3.17759C14.7879 3.29873 14.523 3.47626 14.3 3.7L12 6Z',
subheading: (
<>
- Connect your favorite AI tools such as Cursor
- or Claude directly with Supabase.
+ Your AI editor understands your entire database schema.{' '}
+
+ Claude and Cursor can manage migrations, write Edge Functions, and implement RLS
+ policies
+
+ —no context switching.
>
),
image: (
@@ -461,7 +560,7 @@ const data: () => {
dark: '/images/solutions/neon/mcp-server-dark.svg',
light: '/images/solutions/neon/mcp-server-light.svg',
}}
- alt="Vector embeddings"
+ alt="MCP Server Integration"
width={100}
height={100}
quality={100}
@@ -469,13 +568,16 @@ const data: () => {
),
},
{
- id: 'auto-generated-apis',
- title: 'Auto-generated APIs',
+ id: 'instant-apis',
+ title: 'Instant APIs from Your Schema',
icon: 'M4.13477 12.8129C4.13477 14.1481 4.43245 15.4138 4.96506 16.5471M12.925 4.02271C11.5644 4.02271 10.276 4.33184 9.12614 4.88371M21.7152 12.8129C21.7152 11.4644 21.4115 10.1867 20.8688 9.0447M12.925 21.6032C14.2829 21.6032 15.5689 21.2952 16.717 20.7454M16.717 20.7454C17.2587 21.5257 18.1612 22.0366 19.1831 22.0366C20.84 22.0366 22.1831 20.6935 22.1831 19.0366C22.1831 17.3798 20.84 16.0366 19.1831 16.0366C17.5263 16.0366 16.1831 17.3798 16.1831 19.0366C16.1831 19.6716 16.3804 20.2605 16.717 20.7454ZM4.96506 16.5471C4.16552 17.086 3.63965 17.9999 3.63965 19.0366C3.63965 20.6935 4.98279 22.0366 6.63965 22.0366C8.2965 22.0366 9.63965 20.6935 9.63965 19.0366C9.63965 17.3798 8.2965 16.0366 6.63965 16.0366C6.01951 16.0366 5.44333 16.2248 4.96506 16.5471ZM9.12614 4.88371C8.58687 4.08666 7.67444 3.56274 6.63965 3.56274C4.98279 3.56274 3.63965 4.90589 3.63965 6.56274C3.63965 8.2196 4.98279 9.56274 6.63965 9.56274C8.2965 9.56274 9.63965 8.2196 9.63965 6.56274C9.63965 5.94069 9.45032 5.36285 9.12614 4.88371ZM20.8688 9.0447C21.6621 8.50486 22.1831 7.59464 22.1831 6.56274C22.1831 4.90589 20.84 3.56274 19.1831 3.56274C17.5263 3.56274 16.1831 4.90589 16.1831 6.56274C16.1831 8.2196 17.5263 9.56274 19.1831 9.56274C19.8081 9.56274 20.3884 9.37165 20.8688 9.0447Z',
subheading: (
<>
- Learn SQL when you're ready. In the meantime,
- Supabase generates automatic APIs to make coding a lot easier.
+ AI builders need endpoints immediately.{' '}
+
+ Every table gets REST and GraphQL APIs automatically
+
+ . Your prompts become production APIs.
>
),
image: (
@@ -485,7 +587,7 @@ const data: () => {
dark: '/images/solutions/neon/auto-generated-apis-dark.png',
light: '/images/solutions/neon/auto-generated-apis-light.png',
}}
- alt="Auto Generated APIs"
+ alt="Instant APIs"
width={100}
height={100}
quality={100}
@@ -493,41 +595,18 @@ const data: () => {
),
},
{
- id: 'foreign-data-wrappers',
- title: 'Foreign Data Wrappers',
- icon: 'M10.2805 18.2121C11.2419 18.6711 12.3325 18.8932 13.4711 18.8084C15.2257 18.6776 16.7596 17.843 17.8169 16.6015M8.21496 8.36469C9.27117 7.14237 10.7928 6.322 12.5311 6.19248C13.7196 6.10392 14.8558 6.34979 15.8474 6.85054M17.8169 16.6015L20.5242 19.3223C22.1857 17.5141 23.1562 15.1497 23.1562 12.5005C23.1562 6.89135 18.6091 2.34424 13 2.34424C10.9595 2.34424 9.16199 2.87659 7.57035 3.91232C8.35717 3.56865 9.22613 3.37801 10.1396 3.37801C12.6236 3.37801 14.7783 4.78762 15.8474 6.85054M17.8169 16.6015V16.6015C16.277 15.059 16.3448 12.5527 16.5387 10.3817C16.5557 10.191 16.5644 9.99794 16.5644 9.80282C16.5644 8.73844 16.3056 7.73451 15.8474 6.85054M13 22.6567C7.39086 22.6567 2.84375 18.1096 2.84375 12.5005C2.84375 9.84123 3.8026 7.48969 5.4753 5.67921L8.21496 8.42354V8.42354C9.76942 9.98064 9.69844 12.5133 9.51947 14.7062C9.50526 14.8803 9.49802 15.0564 9.49802 15.2341C9.49802 18.7705 12.3648 21.6373 15.9012 21.6373C16.8116 21.6373 17.6776 21.4473 18.4618 21.1048C16.8609 22.1588 15.06 22.6567 13 22.6567Z',
- subheading: (
- <>
- Connect Supabase to Redshift, BigQuery, MySQL
- , and external APIs for seamless integrations.
- >
- ),
- image: (
-
- ),
- },
- {
- id: 'instant-deployment',
- title: 'Instant and secure deployment',
+ id: 'dev-pipeline',
+ title: 'Development → Staging → Production Pipeline',
icon: 'M12.5 1.5625C6.45939 1.5625 1.5625 6.45939 1.5625 12.5C1.5625 18.5406 6.45939 23.4375 12.5 23.4375C18.5406 23.4375 23.4375 18.5406 23.4375 12.5C23.4375 9.90692 22.5351 7.52461 21.0273 5.64995L11.6145 15.0627L9.61957 13.0677M12.6068 5.82237C8.92939 5.82237 5.94826 8.80351 5.94826 12.4809C5.94826 16.1583 8.92939 19.1395 12.6068 19.1395C16.2842 19.1395 19.2654 16.1583 19.2654 12.4809C19.2654 11.1095 18.8507 9.83483 18.14 8.77557',
subheading: (
<>
- No need to set up servers , manage DevOps, or
- tweak security settings.
+ Start with free prototypes, graduate to production.{' '}
+
+ One git push promotes everything: schema, functions, and security rules
+
+ .
>
),
-
image: (
<>
{
>
),
},
- {
- id: 'observability',
- title: 'Observability',
- icon: 'M11.1404 7.66537C11.1404 5.18146 13.1541 3.16785 15.638 3.16785H17.3775C19.8614 3.16785 21.875 5.18146 21.875 7.66537V17.3776C21.875 19.8615 19.8614 21.8751 17.3775 21.8751H15.638C13.1541 21.8751 11.1404 19.8615 11.1404 17.3776V7.66537Z M3.125 14.7821C3.125 13.4015 4.24419 12.2823 5.62477 12.2823C7.00536 12.2823 8.12454 13.4015 8.12454 14.7821V19.3754C8.12454 20.7559 7.00536 21.8751 5.62477 21.8751C4.24419 21.8751 3.125 20.7559 3.125 19.3754V14.7821Z M3.125 5.58522C3.125 4.20463 4.24419 3.08545 5.62477 3.08545C7.00536 3.08545 8.12454 4.20463 8.12454 5.58522V6.95164C8.12454 8.33223 7.00536 9.45142 5.62477 9.45142C4.24419 9.45142 3.125 8.33223 3.125 6.95164V5.58522Z',
- subheading: (
- <>
- Built-in logs, query performance tools, and security insights for{' '}
- easy debugging .
- >
- ),
- image: (
-
- ),
- },
],
},
resultsSection: {
@@ -680,6 +741,44 @@ const data: () => {
},
],
},
+ innovationEnablement: {
+ id: 'innovation-enablement',
+ heading: (
+ <>
+ From Prototype to Production: {' '}
+ The Innovation Playbook
+ >
+ ),
+ options: [
+ {
+ title: 'Prototype Today',
+ type: 'Self-Serve',
+ description: 'Start free with any AI builder + Supabase',
+ cta: {
+ label: 'Create Your First App in 5 Minutes',
+ href: 'https://supabase.com/dashboard',
+ },
+ },
+ {
+ title: 'Innovation Sprint',
+ type: 'Guided',
+ description: '1-day hackathon for your team. Build 3 production-ready prototypes.',
+ cta: {
+ label: 'Contact our Growth Team',
+ href: '/contact/sales',
+ },
+ },
+ {
+ title: 'Enterprise Pilot',
+ type: 'Full Support',
+ description: '30-day program with dedicated success team',
+ cta: {
+ label: 'Talk to Sales',
+ href: '/contact/sales',
+ },
+ },
+ ],
+ },
securitySection: {
id: 'security',
label: 'Security',
diff --git a/apps/www/layouts/comparison.tsx b/apps/www/layouts/comparison.tsx
index d693c2e81d9..a5a9949371b 100644
--- a/apps/www/layouts/comparison.tsx
+++ b/apps/www/layouts/comparison.tsx
@@ -1,4 +1,5 @@
import authors from 'lib/authors.json'
+import { MDXRemote } from 'next-mdx-remote'
import { NextSeo } from 'next-seo'
import Image from 'next/image'
import Link from 'next/link'
@@ -7,7 +8,6 @@ import React from 'react'
import CTABanner from '~/components/CTABanner'
import DefaultLayout from '~/components/Layouts/Default'
import { generateReadingTime } from '~/lib/helpers'
-import { MDXRemote } from 'next-mdx-remote'
interface Props {
components: React.ReactNode
@@ -76,13 +76,15 @@ const LayoutComparison = ({ components, props }: Props) => {
return cat
}),
},
- images: [
- {
- url: `https://supabase.com${basePath}/images/blog/${
- props.blog.image ? props.blog.image : props.blog.thumb
- }`,
- },
- ],
+ images: (() => {
+ const img = props.blog.imgSocial || props.blog.imgThumb
+ if (!img) return []
+ const url =
+ img.startsWith('/') || img.startsWith('http')
+ ? img
+ : `https://supabase.com${basePath}/images/blog/${img}`
+ return [{ url }]
+ })(),
}}
/>
diff --git a/apps/www/lib/get-cms-posts.tsx b/apps/www/lib/get-cms-posts.tsx
index 01dd212eeb8..3cf31b7c465 100644
--- a/apps/www/lib/get-cms-posts.tsx
+++ b/apps/www/lib/get-cms-posts.tsx
@@ -1,7 +1,7 @@
+import { convertRichTextToMarkdown } from './cms/convertRichTextToMarkdown'
import { CMS_SITE_ORIGIN } from './constants'
import { generateReadingTime } from './helpers'
import { generateTocFromMarkdown } from './toc'
-import { convertRichTextToMarkdown } from './cms/convertRichTextToMarkdown'
// Payload API configuration
const PAYLOAD_URL = CMS_SITE_ORIGIN || 'http://localhost:3030'
@@ -37,7 +37,7 @@ type CMSBlogPost = {
region?: string
logo?: string
logo_inverse?: string
- thumb?: {
+ imgThumb?: {
url: string
}
createdAt: string
@@ -54,7 +54,7 @@ type CMSBlogPost = {
}[]
meta?: {
title?: string | null
- image?: (number | string | null) | Media
+ imgSocial?: (number | string | null) | Media
description?: string | null
}
}
@@ -175,7 +175,7 @@ type ProcessedPost = {
username: string
}>
toc_depth: number
- thumb: string | null
+ imgThumb: string | null
url: string
path: string
isCMS: boolean
@@ -183,7 +183,7 @@ type ProcessedPost = {
content: string
meta?: {
title?: string | null
- image?: (number | string | null) | Media
+ imgSocial?: (number | string | null) | Media
description?: string | null
}
}
@@ -413,17 +413,17 @@ async function processPostData(post: any) {
post.toc_depth ? post.toc_depth : 3
)
- // Extract thumb and image URLs from the nested structure
- const thumbUrl = post.thumb?.url
- ? typeof post.thumb.url === 'string' && post.thumb.url.includes('http')
- ? post.thumb.url
- : `${PAYLOAD_URL}${post.thumb.url}`
+ // Extract imgThumb and imgSocial URLs from the nested structure
+ const imgThumbUrl = post.imgThumb?.url
+ ? typeof post.imgThumb.url === 'string' && post.imgThumb.url.includes('http')
+ ? post.imgThumb.url
+ : `${PAYLOAD_URL}${post.imgThumb.url}`
: null
- const imageUrl = post.meta?.image
- ? typeof post.meta?.image === 'string' && post.meta?.image.includes('http')
- ? post.meta?.image
- : `${PAYLOAD_URL}${post.meta?.image}`
- : thumbUrl
+ const imgSocialUrl = post.meta?.imgSocial
+ ? typeof post.meta?.imgSocial === 'string' && post.meta?.imgSocial.includes('http')
+ ? post.meta?.imgSocial
+ : `${PAYLOAD_URL}${post.meta?.imgSocial}`
+ : imgThumbUrl
const processedData = {
slug: post.slug,
@@ -448,8 +448,8 @@ async function processPostData(post: any) {
username: author.username || '',
})) || [],
toc_depth: post.toc_depth || 3,
- thumb: thumbUrl,
- image: imageUrl,
+ imgThumb: imgThumbUrl,
+ imgSocial: imgSocialUrl,
url: `/blog/${post.slug}`,
path: `/blog/${post.slug}`,
isCMS: true,
@@ -524,17 +524,17 @@ export async function getAllCMSPosts({
const markdownContent = convertRichTextToMarkdown(post.content)
const readingTime = post.readingTime || generateReadingTime(markdownContent)
- // Extract thumb and image URLs from the nested structure (handle absolute and relative)
- const thumbUrl = post.thumb?.url
- ? typeof post.thumb.url === 'string' && post.thumb.url.includes('http')
- ? post.thumb.url
- : `${PAYLOAD_URL}${post.thumb.url}`
+ // Extract imgThumb and imgSocial URLs from the nested structure (handle absolute and relative)
+ const imgThumbUrl = post.imgThumb?.url
+ ? typeof post.imgThumb.url === 'string' && post.imgThumb.url.includes('http')
+ ? post.imgThumb.url
+ : `${PAYLOAD_URL}${post.imgThumb.url}`
: null
- const imageUrl = post.meta?.image
- ? typeof post.meta?.image === 'string' && post.meta?.image.includes('http')
- ? post.meta?.image
- : `${PAYLOAD_URL}${post.meta?.image}`
- : thumbUrl
+ const imgSocialUrl = post.meta?.imgSocial
+ ? typeof post.meta?.imgSocial === 'string' && post.meta?.imgSocial.includes('http')
+ ? post.meta?.imgSocial
+ : `${PAYLOAD_URL}${post.meta?.imgSocial}`
+ : imgThumbUrl
return {
slug: post.slug || '',
@@ -558,8 +558,8 @@ export async function getAllCMSPosts({
username: author.username || '',
})) || [],
toc_depth: post.toc_depth || 3,
- thumb: thumbUrl,
- image: imageUrl,
+ imgThumb: imgThumbUrl,
+ imgSocial: imgSocialUrl,
url: `/blog/${post.slug || ''}`,
path: `/blog/${post.slug || ''}`,
isCMS: true,
diff --git a/apps/www/lib/posts.tsx b/apps/www/lib/posts.tsx
index 6ac170883f8..494a7c138e1 100644
--- a/apps/www/lib/posts.tsx
+++ b/apps/www/lib/posts.tsx
@@ -1,6 +1,6 @@
import fs from 'fs'
-import path from 'path'
import matter from 'gray-matter'
+import path from 'path'
import { generateReadingTime } from './helpers'
type Directories = '_blog' | '_case-studies' | '_customers' | '_alternatives' | '_events'
@@ -14,8 +14,8 @@ export type Post = {
title?: string
description?: string
author?: string
- image?: string
- thumb?: string
+ imgSocial?: string
+ imgThumb?: string
categories?: string[]
tags?: string[]
date?: string
diff --git a/apps/www/lib/redirects.js b/apps/www/lib/redirects.js
index bfab86bc92b..9402eb8ec42 100644
--- a/apps/www/lib/redirects.js
+++ b/apps/www/lib/redirects.js
@@ -3038,11 +3038,6 @@ module.exports = [
source: '/mcp',
destination: '/docs/guides/getting-started/mcp',
},
- {
- permanent: true,
- source: '/design',
- destination: '/design-system',
- },
// marketing
@@ -3068,4 +3063,22 @@ module.exports = [
source: '/docs/guides/platform/fly-postgres',
destination: '/docs/guides/database/overview',
},
+
+ // design
+ {
+ permanent: true,
+ source: '/:path*',
+ has: [
+ {
+ type: 'host',
+ value: 'supabase.design',
+ },
+ ],
+ destination: 'https://supabase.com/design-system/:path*',
+ },
+ {
+ permanent: true,
+ source: '/design',
+ destination: '/design-system',
+ },
]
diff --git a/apps/www/lib/remotePatterns.js b/apps/www/lib/remotePatterns.js
index 8a60102b56a..02ff77d2b83 100644
--- a/apps/www/lib/remotePatterns.js
+++ b/apps/www/lib/remotePatterns.js
@@ -153,6 +153,13 @@ module.exports = [
port: '',
pathname: '**',
},
+ // OG Edge Function
+ {
+ protocol: 'https',
+ hostname: 'zhfonblqamxferhoguzj.supabase.co',
+ port: '',
+ pathname: '/functions/v1/generate-og',
+ },
// Dynamically generated CMS patterns based on CMS_SITE_ORIGIN
...generateCMSRemotePatterns(),
]
diff --git a/apps/www/pages/solutions/innovation-teams.tsx b/apps/www/pages/solutions/innovation-teams.tsx
index 326b7d8d87a..5e5731aa532 100644
--- a/apps/www/pages/solutions/innovation-teams.tsx
+++ b/apps/www/pages/solutions/innovation-teams.tsx
@@ -1,11 +1,15 @@
import { NextPage } from 'next'
import dynamic from 'next/dynamic'
import { NextSeo } from 'next-seo'
+import Link from 'next/link'
+import { Check, ArrowRight } from 'lucide-react'
import Layout from 'components/Layouts/Default'
import SolutionsStickyNav from 'components/SolutionsStickyNav'
+import SectionContainer from 'components/Layouts/SectionContainer'
import content from 'data/solutions/innovation-teams'
import { Solutions } from 'data/Solutions'
+import { Button, cn } from 'ui'
const ProductHeader = dynamic(() => import('components/Sections/ProductHeader2'))
const SingleQuote = dynamic(() => import('components/Sections/SingleQuote'))
@@ -16,6 +20,7 @@ const ResultsSection = dynamic(() => import('components/Solutions/ResultsSection
const FeatureGrid = dynamic(() => import('components/Solutions/FeatureGrid'))
const PlatformStarterSection = dynamic(() => import('components/Solutions/TwoColumnsSection'))
const MPCSection = dynamic(() => import('components/Solutions/MPCSection'))
+const SecuritySection = dynamic(() => import('components/Enterprise/Security'))
const InnovationTeams: NextPage = () => {
const data = (content as any)()
@@ -48,6 +53,139 @@ const InnovationTeams: NextPage = () => {
{...data.quote}
/>
)}
+ {data.secondaryQuote && (
+
+ )}
+ {/* AI Builder Ecosystem Section */}
+ {data.aiBuilderEcosystem && (
+
+
+ {/* Left column - Content */}
+
+
+ {data.aiBuilderEcosystem.heading}
+
+
+ {data.aiBuilderEcosystem.subheading}
+
+
+
+ No configuration. No complexity. It just works.
+
+
+
+ {/* Right column - Visual */}
+
+ {/* Supabase Logo */}
+
+
+
+
+ {/* SVG Lines */}
+
+
+
+
+
+
+
+
+ {/* Provider Logos Bar */}
+
+
+
+
+ )}
{
subheading={data.why.subheading}
features={data.why.features}
/>
+ {/* Customer Evidence Section */}
+ {data.customerEvidence && (
+
+
+
+ {data.customerEvidence.heading}
+
+
+
+ {data.customerEvidence.customers.map(
+ (customer: {
+ name: string
+ logo?: string
+ highlights: string[]
+ cta?: { label: string; href: string }
+ }) => (
+
+ {customer.logo && (
+
+ )}
+
{customer.name}
+
+ {customer.highlights.map((highlight: string, i: number) => (
+
+
+ {highlight}
+
+ ))}
+
+ {customer.cta && (
+
+ {customer.cta.label}
+
+
+ )}
+
+ )
+ )}
+
+
+ )}
{
{data.featureGrid && (
)}
+ {/* Security Section */}
+ {data.securitySection && (
+
+ )}
+ {/* Innovation Enablement Section */}
+ {data.innovationEnablement && (
+
+
+
+ {data.innovationEnablement.heading}
+
+
+
+ {data.innovationEnablement.options.map(
+ (
+ option: {
+ title: string
+ type: string
+ description: string
+ cta: { label: string; href: string }
+ },
+ index: number
+ ) => (
+
+
+
+ {option.type}
+
+
{option.title}
+
+ {option.description}
+
+
+ {option.cta.label}
+
+
+ {index < data.innovationEnablement.options.length - 1 && (
+
+ )}
+
+ )
+ )}
+
+
+ )}
{data.platformStarterSection && }
{data.mcp && }
diff --git a/apps/www/pages/solutions/switch-from-convex.tsx b/apps/www/pages/solutions/switch-from-convex.tsx
deleted file mode 100644
index 8dc78220c89..00000000000
--- a/apps/www/pages/solutions/switch-from-convex.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-import { NextPage } from 'next'
-import dynamic from 'next/dynamic'
-import { NextSeo } from 'next-seo'
-import Link from 'next/link'
-import { ArrowUpRight } from 'lucide-react'
-
-import Layout from 'components/Layouts/Default'
-import SectionContainer from 'components/Layouts/SectionContainer'
-import SolutionsStickyNav from 'components/SolutionsStickyNav'
-import content from 'data/solutions/convex'
-import { Solutions } from 'data/Solutions'
-
-const ProductHeader = dynamic(() => import('components/Sections/ProductHeader2'))
-const FeaturesSection = dynamic(() => import('components/Solutions/FeaturesSection'))
-const PlatformSection = dynamic(() => import('components/Solutions/PlatformSection'))
-const DXSection = dynamic(() => import('components/Solutions/DeveloperExperienceSection'))
-const ResultsSection = dynamic(() => import('components/Solutions/ResultsSection'))
-const FeatureGrid = dynamic(() => import('components/Solutions/FeatureGrid'))
-const Security = dynamic(() => import('components/Enterprise/Security'))
-const CtaSection = dynamic(() => import('components/Solutions/CtaSection'))
-
-const Convex: NextPage = () => {
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
{content.uiSection.title}
-
{content.uiSection.subheading}
-
-
-
{content.uiSection.content}
-
-
-
-
-
-
-
-
-
- >
- )
-}
-
-export default Convex
diff --git a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/add-supabase-mcp-server.png b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/add-supabase-mcp-server.png
index 3a89472eec5..2173b70472c 100644
Binary files a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/add-supabase-mcp-server.png and b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/add-supabase-mcp-server.png differ
diff --git a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-1.png b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-1.png
index 0e60db4f572..4e0c81d3f5b 100644
Binary files a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-1.png and b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-1.png differ
diff --git a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-2.png b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-2.png
index 5560a3e925f..c3f21e461c5 100644
Binary files a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-2.png and b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-2.png differ
diff --git a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-3.png b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-3.png
index a88b5e2b0ec..12dafe0773f 100644
Binary files a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-3.png and b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/chatgpt-chat-3.png differ
diff --git a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/og.png b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/og.png
index b7581b1e888..3657d877232 100644
Binary files a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/og.png and b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/og.png differ
diff --git a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/thumb.png b/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/thumb.png
deleted file mode 100644
index b7581b1e888..00000000000
Binary files a/apps/www/public/images/blog/2025-12-17-building-chatgpt-apps-with-supabase/thumb.png and /dev/null differ
diff --git a/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/dashboard.png b/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/dashboard.png
index 56eeeaa9af5..0d8175fd05f 100644
Binary files a/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/dashboard.png and b/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/dashboard.png differ
diff --git a/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/og.png b/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/og.png
deleted file mode 100644
index abbb7b8b865..00000000000
Binary files a/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/og.png and /dev/null differ
diff --git a/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/thumb.png b/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/thumb.png
index abbb7b8b865..0752fc76021 100644
Binary files a/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/thumb.png and b/apps/www/public/images/blog/2025-12-19-stripe-sync-engine-integration/thumb.png differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/1.png b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/1.png
deleted file mode 100644
index b99763cc764..00000000000
Binary files a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/1.png and /dev/null differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/1.webp b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/1.webp
new file mode 100644
index 00000000000..aabbe80b8bc
Binary files /dev/null and b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/1.webp differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/2.png b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/2.png
deleted file mode 100644
index 6a02faee218..00000000000
Binary files a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/2.png and /dev/null differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/2.webp b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/2.webp
new file mode 100644
index 00000000000..c8aa2ef65f9
Binary files /dev/null and b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/2.webp differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/3.png b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/3.png
deleted file mode 100644
index b433f9f7be4..00000000000
Binary files a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/3.png and /dev/null differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/3.webp b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/3.webp
new file mode 100644
index 00000000000..b17b0e4433f
Binary files /dev/null and b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/3.webp differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/4.png b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/4.png
deleted file mode 100644
index 4d5dd172839..00000000000
Binary files a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/4.png and /dev/null differ
diff --git a/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/4.webp b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/4.webp
new file mode 100644
index 00000000000..50400bd83e7
Binary files /dev/null and b/apps/www/public/images/blog/2026-01-08-introducing-trae-solo-integration/4.webp differ
diff --git a/apps/www/public/images/blog/2026/security-retro/og.png b/apps/www/public/images/blog/2026/security-retro/og.png
deleted file mode 100644
index c4c7d0234b6..00000000000
Binary files a/apps/www/public/images/blog/2026/security-retro/og.png and /dev/null differ
diff --git a/apps/www/public/images/blog/2026/security-retro/social.png b/apps/www/public/images/blog/2026/security-retro/social.png
new file mode 100644
index 00000000000..5905865ee52
Binary files /dev/null and b/apps/www/public/images/blog/2026/security-retro/social.png differ
diff --git a/apps/www/public/images/blog/2026/security-retro/thumb.png b/apps/www/public/images/blog/2026/security-retro/thumb.png
index 5905865ee52..c4c7d0234b6 100644
Binary files a/apps/www/public/images/blog/2026/security-retro/thumb.png and b/apps/www/public/images/blog/2026/security-retro/thumb.png differ
diff --git a/apps/www/public/images/blog/avatars/conner-aldrich.jpg b/apps/www/public/images/blog/avatars/conner-aldrich.jpg
index 0d845f36c3a..3ac89e8b1c3 100644
Binary files a/apps/www/public/images/blog/avatars/conner-aldrich.jpg and b/apps/www/public/images/blog/avatars/conner-aldrich.jpg differ
diff --git a/apps/www/public/images/customers/logos/accenture.svg b/apps/www/public/images/customers/logos/accenture.svg
new file mode 100644
index 00000000000..807a0b5e4c0
--- /dev/null
+++ b/apps/www/public/images/customers/logos/accenture.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/www/public/rss.xml b/apps/www/public/rss.xml
index 911f9ea2a2e..66e497ec4ad 100644
--- a/apps/www/public/rss.xml
+++ b/apps/www/public/rss.xml
@@ -20,6 +20,13 @@
We are releasing Agent Skills for Postgres Best Practices to help AI coding agents write high quality, correct Postgres code.
Wed, 21 Jan 2026 00:00:00 -0700
+-
+
https://supabase.com/blog/read-replicas-vs-bigger-compute
+ When to use Read Replicas vs. bigger compute
+ https://supabase.com/blog/read-replicas-vs-bigger-compute
+ A practical guide to diagnosing database slowdowns and choosing between vertical scaling and Read Replicas based on your workload, budget, and performance bottlenecks.
+ Thu, 15 Jan 2026 00:00:00 -0700
+
-
https://supabase.com/blog/introducing-trae-solo-integration
Introducing TRAE SOLO integration with Supabase
@@ -2463,6 +2470,13 @@
Five days of Supabase.
Thu, 25 Mar 2021 00:00:00 -0700
+-
+
https://supabase.com/blog/postgresql-views
+ Postgres Views
+ https://supabase.com/blog/postgresql-views
+ Creating and using a view in PostgreSQL.
+ Wed, 18 Nov 2020 00:00:00 -0700
+
-
https://supabase.com/blog/continuous-postgresql-backup-walg
Continuous PostgreSQL Backups using WAL-G
@@ -2498,13 +2512,6 @@
We're releasing a new version of our Supabase client with some awesome new improvements.
Fri, 30 Oct 2020 00:00:00 -0700
--
-
https://supabase.com/blog/postgresql-views
- Postgres Views
- https://supabase.com/blog/postgresql-views
- Creating and using a view in PostgreSQL.
- Wed, 18 Nov 2020 00:00:00 -0700
-
-
https://supabase.com/blog/case-study-monitoro
Monitoro Built a Web Crawler Handling Millions of API Requests
diff --git a/apps/www/types/post.ts b/apps/www/types/post.ts
index 8413e1aefd9..30633e4fc78 100644
--- a/apps/www/types/post.ts
+++ b/apps/www/types/post.ts
@@ -15,8 +15,10 @@ export interface PostTypes {
url: string
}
content?: string
- thumb: string
- image?: string
+ imgThumb?: string // Used by blog posts and case studies
+ imgSocial?: string // Used by blog posts
+ thumb?: string // Used by events
+ thumb_light?: string // Used by events (light mode variant)
readingTime?: string
description: string
url: string
@@ -110,8 +112,8 @@ export type Blog = {
blog_url?: string
url?: string
source: string
- image?: string
- thumb?: string
+ imgSocial?: string
+ imgThumb?: string
youtubeHero?: string
launchweek?: number | string
meta_title?: string
@@ -145,8 +147,8 @@ export type BlogData = {
blog_url?: string
url?: string
source: string
- image?: string
- thumb?: string
+ imgSocial?: string
+ imgThumb?: string
youtubeHero?: string
launchweek?: number | string
meta_title?: string
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 67f64fdc414..e791e5b4f29 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -60,8 +60,10 @@ services:
# Uncomment to use Big Query backend for analytics
# NEXT_ANALYTICS_BACKEND_PROVIDER: bigquery
SNIPPETS_MANAGEMENT_FOLDER: /app/snippets
+ EDGE_FUNCTIONS_MANAGEMENT_FOLDER: /app/edge-functions
volumes:
- ./volumes/snippets:/app/snippets:Z
+ - ./volumes/functions:/app/edge-functions:Z
kong:
container_name: supabase-kong
diff --git a/examples/auth/quickstarts/react-native/.env.example b/examples/auth/quickstarts/react-native/.env.example
new file mode 100644
index 00000000000..025c72c8abf
--- /dev/null
+++ b/examples/auth/quickstarts/react-native/.env.example
@@ -0,0 +1,2 @@
+EXPO_PUBLIC_SUPABASE_URL=YOUR_SUPABASE_URL
+EXPO_PUBLIC_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
\ No newline at end of file
diff --git a/examples/auth/quickstarts/react-native/App.tsx b/examples/auth/quickstarts/react-native/App.tsx
index a13a74f5339..5f3073ab25a 100644
--- a/examples/auth/quickstarts/react-native/App.tsx
+++ b/examples/auth/quickstarts/react-native/App.tsx
@@ -3,25 +3,27 @@ import { useState, useEffect } from 'react'
import { supabase } from './lib/supabase'
import Auth from './components/Auth'
import { View, Text } from 'react-native'
-import { User } from '@supabase/supabase-js'
+import { JwtPayload } from '@supabase/supabase-js'
export default function App() {
- const [user, setUser] = useState(null)
+ const [claims, setClaims] = useState(null)
useEffect(() => {
- supabase.auth.getUser().then(({ data: { user } }) => {
- setUser(user)
+ supabase.auth.getClaims().then(({ data: { claims } }) => {
+ setClaims(claims)
})
- supabase.auth.onAuthStateChange((_event, session) => {
- setUser(session?.user ?? null)
+ supabase.auth.onAuthStateChange(() => {
+ supabase.auth.getClaims().then(({ data: { claims } }) => {
+ setClaims(claims)
+ })
})
}, [])
return (
- {user && {user.id} }
+ {claims && {claims.sub} }
)
}
diff --git a/examples/auth/quickstarts/react-native/app.json b/examples/auth/quickstarts/react-native/app.json
index 450df5179e3..4fa99035b5f 100644
--- a/examples/auth/quickstarts/react-native/app.json
+++ b/examples/auth/quickstarts/react-native/app.json
@@ -13,7 +13,8 @@
},
"assetBundlePatterns": ["**/*"],
"ios": {
- "supportsTablet": true
+ "supportsTablet": true,
+ "bundleIdentifier": "com.supabase.authreactnative"
},
"android": {
"adaptiveIcon": {
diff --git a/examples/auth/quickstarts/react-native/components/Auth.tsx b/examples/auth/quickstarts/react-native/components/Auth.tsx
index 553847a4ee1..bacfaa17e89 100644
--- a/examples/auth/quickstarts/react-native/components/Auth.tsx
+++ b/examples/auth/quickstarts/react-native/components/Auth.tsx
@@ -1,7 +1,6 @@
import React, { useState } from 'react'
-import { Alert, StyleSheet, View } from 'react-native'
+import { Alert, StyleSheet, View, Text, TextInput, TouchableOpacity } from 'react-native'
import { supabase } from '../lib/supabase'
-import { Button, Input } from '@rneui/themed'
export default function Auth() {
const [email, setEmail] = useState('')
@@ -37,31 +36,43 @@ export default function Auth() {
return (
- Email
+ setEmail(text)}
value={email}
placeholder="email@address.com"
- autoCapitalize={'none'}
+ autoCapitalize="none"
+ style={styles.input}
/>
- Password
+ setPassword(text)}
value={password}
secureTextEntry={true}
placeholder="Password"
- autoCapitalize={'none'}
+ autoCapitalize="none"
+ style={styles.input}
/>
- signInWithEmail()} />
+ signInWithEmail()}
+ disabled={loading}
+ >
+ Sign in
+
- signUpWithEmail()} />
+ signUpWithEmail()}
+ disabled={loading}
+ >
+ Sign up
+
)
@@ -80,4 +91,31 @@ const styles = StyleSheet.create({
mt20: {
marginTop: 20,
},
+ label: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#86939e',
+ marginBottom: 6,
+ },
+ input: {
+ borderWidth: 1,
+ borderColor: '#86939e',
+ borderRadius: 4,
+ padding: 12,
+ fontSize: 16,
+ },
+ button: {
+ backgroundColor: '#2089dc',
+ borderRadius: 4,
+ padding: 12,
+ alignItems: 'center',
+ },
+ buttonDisabled: {
+ opacity: 0.5,
+ },
+ buttonText: {
+ color: '#fff',
+ fontSize: 16,
+ fontWeight: '600',
+ },
})
diff --git a/examples/auth/quickstarts/react-native/package-lock.json b/examples/auth/quickstarts/react-native/package-lock.json
index 2a020b2b978..07bc70128f6 100644
--- a/examples/auth/quickstarts/react-native/package-lock.json
+++ b/examples/auth/quickstarts/react-native/package-lock.json
@@ -9,22 +9,18 @@
"version": "1.0.0",
"dependencies": {
"@react-native-async-storage/async-storage": "2.2.0",
- "@rneui/base": "^5.0.0",
- "@rneui/themed": "^5.0.0",
- "@supabase/supabase-js": "^2.93.1",
+ "@supabase/supabase-js": "^2.93.2",
"expo": "~54.0.32",
"expo-status-bar": "~3.0.9",
"react": "19.1.0",
"react-native": "0.81.5",
- "react-native-safe-area-context": "~5.6.0",
+ "react-native-safe-area-context": "~5.6.2",
"react-native-url-polyfill": "^3.0.0"
},
"devDependencies": {
"@babel/core": "^7.28.6",
- "@testing-library/jest-native": "^5.4.3",
- "@testing-library/react-native": "^13.2.0",
- "@types/react": "~19.1.0",
- "typescript": "~5.9.2"
+ "@types/react": "~19.1.10",
+ "typescript": "~5.9.3"
}
},
"node_modules/@0no-co/graphql.web": {
@@ -1827,27 +1823,35 @@
"license": "MIT"
},
"node_modules/@expo/xcpretty": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz",
- "integrity": "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.4.0.tgz",
+ "integrity": "sha512-o2qDlTqJ606h4xR36H2zWTywmZ3v3842K6TU8Ik2n1mfW0S580VHlt3eItVYdLYz+klaPp7CXqanja8eASZjRw==",
"license": "BSD-3-Clause",
"dependencies": {
- "@babel/code-frame": "7.10.4",
+ "@babel/code-frame": "^7.20.0",
"chalk": "^4.1.0",
- "find-up": "^5.0.0",
"js-yaml": "^4.1.0"
},
"bin": {
"excpretty": "build/cli.js"
}
},
- "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "node_modules/@expo/xcpretty/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "license": "Python-2.0"
+ },
+ "node_modules/@expo/xcpretty/node_modules/js-yaml": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.10.4"
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
"node_modules/@isaacs/balanced-match": {
@@ -1908,15 +1912,6 @@
"node": ">=8"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
"node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -1926,71 +1921,6 @@
"node": ">=6"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
- "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
@@ -2012,15 +1942,6 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@jest/diff-sequences": {
- "version": "30.0.1",
- "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
- "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
- "license": "MIT",
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
"node_modules/@jest/environment": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
@@ -2053,15 +1974,6 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@jest/get-type": {
- "version": "30.1.0",
- "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
- "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
- "license": "MIT",
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
"node_modules/@jest/schemas": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
@@ -2317,6 +2229,21 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/@react-native/codegen/node_modules/hermes-estree": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
+ "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
+ "license": "MIT"
+ },
+ "node_modules/@react-native/codegen/node_modules/hermes-parser": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
+ "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
+ "license": "MIT",
+ "dependencies": {
+ "hermes-estree": "0.29.1"
+ }
+ },
"node_modules/@react-native/codegen/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -2435,40 +2362,6 @@
"integrity": "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==",
"license": "MIT"
},
- "node_modules/@rneui/base": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@rneui/base/-/base-5.0.0.tgz",
- "integrity": "sha512-8nXCybRiLExmQlbTtCR5NEQudfTXTEkpoLBXinnxtBHPIF5L8YEdtuX00GlFoT/iU1h58AOl5koDMy35qSxgFQ==",
- "license": "MIT",
- "dependencies": {
- "color": "^3.2.1",
- "deepmerge": "^4.2.2",
- "hoist-non-react-statics": "^3.3.2",
- "react-native-size-matters": "^0.4.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/react-native-elements"
- },
- "peerDependencies": {
- "@testing-library/jest-native": "^5.4.3",
- "@testing-library/react-native": "^13.2.0",
- "react-native-safe-area-context": ">= 3.0.0"
- }
- },
- "node_modules/@rneui/themed": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@rneui/themed/-/themed-5.0.0.tgz",
- "integrity": "sha512-bNmJLOnXqyot7+mN45Y9yNoANfGJAstnkT8J9W8pSMyDMd5yYxDhyYkDfTZOLuBAW7znNm0bPh6nJC64zMpE+Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/react-native-elements"
- },
- "peerDependencies": {
- "@rneui/base": "5.0.0"
- }
- },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -2494,9 +2387,9 @@
}
},
"node_modules/@supabase/auth-js": {
- "version": "2.93.1",
- "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.93.1.tgz",
- "integrity": "sha512-pC0Ek4xk4z6q7A/3+UuZ/eYgfFUUQTg3DhapzrAgJnFGDJDFDyGCj6v9nIz8+3jfLqSZ3QKGe6AoEodYjShghg==",
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.93.2.tgz",
+ "integrity": "sha512-uifI5vkhvHCQjn+LUPL5QlsuDMP4oVBD5SiliREgYuTJvCkbPLOcAPGrw88q7VUX9S0J0QuJn+37hrcTITisuw==",
"license": "MIT",
"dependencies": {
"tslib": "2.8.1"
@@ -2506,9 +2399,9 @@
}
},
"node_modules/@supabase/functions-js": {
- "version": "2.93.1",
- "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.93.1.tgz",
- "integrity": "sha512-Ott2IcIXHGupaC0nX9WNEiJAX4OdlGRu9upkkURaQHbaLdz9JuCcHxlwTERgtgjMpikbIWHfMM1M9QTQFYABiA==",
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.93.2.tgz",
+ "integrity": "sha512-reSp7yj4KmvAFfmN+N7vYsHXOIZQh9cmRBh+VrZlm7qgIIUdYmzKuD85TvFnWApqcdI2pPnuZGKWE/2B4GXT1A==",
"license": "MIT",
"dependencies": {
"tslib": "2.8.1"
@@ -2518,9 +2411,9 @@
}
},
"node_modules/@supabase/postgrest-js": {
- "version": "2.93.1",
- "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.93.1.tgz",
- "integrity": "sha512-uRKKQJBDnfi6XFNFPNMh9+u3HT2PCgp065PcMPmG7e0xGuqvLtN89QxO2/SZcGbw2y1+mNBz0yUs5KmyNqF2fA==",
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.93.2.tgz",
+ "integrity": "sha512-W2AWDsYwRT217II5yD3jWaX3fJjB7DwyNi2KNi4sphdUI3DKY4fP2XYVDGfeb1clEFL18gw+GBhyQb3BcpNWkw==",
"license": "MIT",
"dependencies": {
"tslib": "2.8.1"
@@ -2530,9 +2423,9 @@
}
},
"node_modules/@supabase/realtime-js": {
- "version": "2.93.1",
- "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.93.1.tgz",
- "integrity": "sha512-2WaP/KVHPlQDjWM6qe4wOZz6zSRGaXw1lfXf4thbfvk3C3zPPKqXRyspyYnk3IhphyxSsJ2hQ/cXNOz48008tg==",
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.93.2.tgz",
+ "integrity": "sha512-YpAmJn7DLbMeYfQilcf3f0DKoY8O8TRbTF2oRpWFzHXTlEA+YWms8fBqM13Mf7RE72ouSNKDYyf5K2pWRSHvFw==",
"license": "MIT",
"dependencies": {
"@types/phoenix": "^1.6.6",
@@ -2545,9 +2438,9 @@
}
},
"node_modules/@supabase/storage-js": {
- "version": "2.93.1",
- "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.93.1.tgz",
- "integrity": "sha512-3KVwd4S1i1BVPL6KIywe5rnruNQXSkLyvrdiJmwnqwbCcDujQumARdGWBPesqCjOPKEU2M9ORWKAsn+2iLzquA==",
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.93.2.tgz",
+ "integrity": "sha512-abRSVClfIQn+SqpdqL7S7b3VeyS8270/o0gqmGFtiidb7Lu0COsIV6Mor/mK9xE99KYWzyd37vwYYwv/jaANhw==",
"license": "MIT",
"dependencies": {
"iceberg-js": "^0.8.1",
@@ -2558,146 +2451,21 @@
}
},
"node_modules/@supabase/supabase-js": {
- "version": "2.93.1",
- "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.93.1.tgz",
- "integrity": "sha512-FJTgS5s0xEgRQ3u7gMuzGObwf3jA4O5Ki/DgCDXx94w1pihLM4/WG3XFa4BaCJYfuzLxLcv6zPPA5tDvBUjAUg==",
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.93.2.tgz",
+ "integrity": "sha512-G3bZZi6rPwXcPtyHLXQTeHKa5ADZ2UW/+hv8YhwZFwngz4TlPnR4+TeO37EwU5+d/reD02qXozOZgz+QHv1Jtg==",
"license": "MIT",
"dependencies": {
- "@supabase/auth-js": "2.93.1",
- "@supabase/functions-js": "2.93.1",
- "@supabase/postgrest-js": "2.93.1",
- "@supabase/realtime-js": "2.93.1",
- "@supabase/storage-js": "2.93.1"
+ "@supabase/auth-js": "2.93.2",
+ "@supabase/functions-js": "2.93.2",
+ "@supabase/postgrest-js": "2.93.2",
+ "@supabase/realtime-js": "2.93.2",
+ "@supabase/storage-js": "2.93.2"
},
"engines": {
"node": ">=20.0.0"
}
},
- "node_modules/@testing-library/jest-native": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-native/-/jest-native-5.4.3.tgz",
- "integrity": "sha512-/sSDGaOuE+PJ1Z9Kp4u7PQScSVVXGud59I/qsBFFJvIbcn4P6yYw6cBnBmbPF+X9aRIsTJRDl6gzw5ZkJNm66w==",
- "deprecated": "DEPRECATED: This package is no longer maintained.\nPlease use the built-in Jest matchers available in @testing-library/react-native v12.4+.\n\nSee migration guide: https://callstack.github.io/react-native-testing-library/docs/migration/jest-matchers",
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.1.2",
- "jest-diff": "^29.0.1",
- "jest-matcher-utils": "^29.0.1",
- "pretty-format": "^29.0.3",
- "redent": "^3.0.0"
- },
- "peerDependencies": {
- "react": ">=16.0.0",
- "react-native": ">=0.59",
- "react-test-renderer": ">=16.0.0"
- }
- },
- "node_modules/@testing-library/react-native": {
- "version": "13.3.3",
- "resolved": "https://registry.npmjs.org/@testing-library/react-native/-/react-native-13.3.3.tgz",
- "integrity": "sha512-k6Mjsd9dbZgvY4Bl7P1NIpePQNi+dfYtlJ5voi9KQlynxSyQkfOgJmYGCYmw/aSgH/rUcFvG8u5gd4npzgRDyg==",
- "license": "MIT",
- "dependencies": {
- "jest-matcher-utils": "^30.0.5",
- "picocolors": "^1.1.1",
- "pretty-format": "^30.0.5",
- "redent": "^3.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "jest": ">=29.0.0",
- "react": ">=18.2.0",
- "react-native": ">=0.71",
- "react-test-renderer": ">=18.2.0"
- },
- "peerDependenciesMeta": {
- "jest": {
- "optional": true
- }
- }
- },
- "node_modules/@testing-library/react-native/node_modules/@jest/schemas": {
- "version": "30.0.5",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
- "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
- "license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.34.0"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/@sinclair/typebox": {
- "version": "0.34.48",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
- "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
- "license": "MIT"
- },
- "node_modules/@testing-library/react-native/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/jest-diff": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz",
- "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==",
- "license": "MIT",
- "dependencies": {
- "@jest/diff-sequences": "30.0.1",
- "@jest/get-type": "30.1.0",
- "chalk": "^4.1.2",
- "pretty-format": "30.2.0"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/jest-matcher-utils": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz",
- "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==",
- "license": "MIT",
- "dependencies": {
- "@jest/get-type": "30.1.0",
- "chalk": "^4.1.2",
- "jest-diff": "30.2.0",
- "pretty-format": "30.2.0"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/pretty-format": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
- "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "30.0.5",
- "ansi-styles": "^5.2.0",
- "react-is": "^18.3.1"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "license": "MIT"
- },
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
@@ -2773,9 +2541,9 @@
}
},
"node_modules/@types/node": {
- "version": "25.0.10",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz",
- "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==",
+ "version": "25.1.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.1.0.tgz",
+ "integrity": "sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==",
"license": "MIT",
"dependencies": {
"undici-types": "~7.16.0"
@@ -2987,18 +2755,6 @@
"node": ">= 8"
}
},
- "node_modules/anymatch/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -3006,10 +2762,13 @@
"license": "MIT"
},
"node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "license": "Python-2.0"
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
},
"node_modules/asap": {
"version": "2.0.6",
@@ -3138,6 +2897,21 @@
"hermes-parser": "0.29.1"
}
},
+ "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-estree": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
+ "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
+ "license": "MIT"
+ },
+ "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-parser": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
+ "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
+ "license": "MIT",
+ "dependencies": {
+ "hermes-estree": "0.29.1"
+ }
+ },
"node_modules/babel-plugin-transform-flow-enums": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
@@ -3216,9 +2990,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.9.18",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.18.tgz",
- "integrity": "sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==",
+ "version": "2.9.19",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
+ "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.js"
@@ -3272,9 +3046,9 @@
}
},
"node_modules/bplist-parser": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
- "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
+ "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
"license": "MIT",
"dependencies": {
"big-integer": "1.6.x"
@@ -3475,19 +3249,10 @@
}
},
"node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "license": "MIT"
},
"node_modules/cli-cursor": {
"version": "2.1.0",
@@ -3527,18 +3292,6 @@
"node": ">=12"
}
},
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
@@ -3548,16 +3301,6 @@
"node": ">=0.8"
}
},
- "node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
- }
- },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -3576,31 +3319,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT"
},
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "license": "MIT",
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/color/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "license": "MIT",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "license": "MIT"
- },
"node_modules/commander": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
@@ -3833,15 +3551,6 @@
"node": ">=8"
}
},
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/dotenv": {
"version": "16.4.7",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
@@ -4280,6 +3989,21 @@
}
}
},
+ "node_modules/expo/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/expo/node_modules/expo-asset": {
"version": "12.0.12",
"resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.12.tgz",
@@ -4343,6 +4067,33 @@
"react": "*"
}
},
+ "node_modules/expo/node_modules/hermes-estree": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
+ "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
+ "license": "MIT"
+ },
+ "node_modules/expo/node_modules/hermes-parser": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
+ "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
+ "license": "MIT",
+ "dependencies": {
+ "hermes-estree": "0.29.1"
+ }
+ },
+ "node_modules/expo/node_modules/picomatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/expo/node_modules/semver": {
"version": "7.7.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
@@ -4376,23 +4127,6 @@
"bser": "2.1.1"
}
},
- "node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -4439,19 +4173,16 @@
"license": "MIT"
},
"node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"license": "MIT",
"dependencies": {
- "locate-path": "^6.0.0",
+ "locate-path": "^5.0.0",
"path-exists": "^4.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
"node_modules/flow-enums-runtime": {
@@ -4621,27 +4352,18 @@
}
},
"node_modules/hermes-estree": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
- "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
+ "version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
+ "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
"license": "MIT"
},
"node_modules/hermes-parser": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
- "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
+ "version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
+ "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
"license": "MIT",
"dependencies": {
- "hermes-estree": "0.29.1"
- }
- },
- "node_modules/hoist-non-react-statics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
- "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "react-is": "^16.7.0"
+ "hermes-estree": "0.32.0"
}
},
"node_modules/hosted-git-info": {
@@ -4766,15 +4488,6 @@
"node": ">=0.8.19"
}
},
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -4807,12 +4520,6 @@
"loose-envify": "^1.0.0"
}
},
- "node_modules/is-arrayish": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz",
- "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==",
- "license": "MIT"
- },
"node_modules/is-core-module": {
"version": "2.16.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
@@ -4913,21 +4620,6 @@
"node": ">=8"
}
},
- "node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/jest-environment-node": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
@@ -4979,21 +4671,6 @@
"fsevents": "^2.3.2"
}
},
- "node_modules/jest-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/jest-message-util": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
@@ -5054,16 +4731,19 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/jest-util/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "node_modules/jest-util/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
"license": "MIT",
"engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "node": ">=8"
}
},
"node_modules/jest-validate": {
@@ -5126,12 +4806,13 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"license": "MIT",
"dependencies": {
- "argparse": "^2.0.1"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
@@ -5475,18 +5156,15 @@
"license": "MIT"
},
"node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"license": "MIT",
"dependencies": {
- "p-locate": "^5.0.0"
+ "p-locate": "^4.1.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
"node_modules/lodash.debounce": {
@@ -5713,21 +5391,6 @@
"node": ">=20.19.4"
}
},
- "node_modules/metro-babel-transformer/node_modules/hermes-estree": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
- "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
- "license": "MIT"
- },
- "node_modules/metro-babel-transformer/node_modules/hermes-parser": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
- "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
- "license": "MIT",
- "dependencies": {
- "hermes-estree": "0.32.0"
- }
- },
"node_modules/metro-cache": {
"version": "0.83.3",
"resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz",
@@ -5928,27 +5591,6 @@
"node": ">=20.19.4"
}
},
- "node_modules/metro/node_modules/ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
- "license": "MIT"
- },
- "node_modules/metro/node_modules/hermes-estree": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
- "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
- "license": "MIT"
- },
- "node_modules/metro/node_modules/hermes-parser": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
- "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
- "license": "MIT",
- "dependencies": {
- "hermes-estree": "0.32.0"
- }
- },
"node_modules/metro/node_modules/ws": {
"version": "7.5.10",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
@@ -5983,18 +5625,6 @@
"node": ">=8.6"
}
},
- "node_modules/micromatch/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
@@ -6008,9 +5638,9 @@
}
},
"node_modules/mime-db": {
- "version": "1.54.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -6028,15 +5658,6 @@
"node": ">= 0.6"
}
},
- "node_modules/mime-types/node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/mimic-fn": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
@@ -6046,15 +5667,6 @@
"node": ">=4"
}
},
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -6321,6 +5933,15 @@
"node": ">=6"
}
},
+ "node_modules/ora/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/ora/node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
@@ -6380,6 +6001,18 @@
"node": ">=4"
}
},
+ "node_modules/ora/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/ora/node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -6408,15 +6041,27 @@
}
},
"node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"license": "MIT",
"dependencies": {
- "p-limit": "^3.0.2"
+ "p-limit": "^2.2.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-locate/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -6517,12 +6162,12 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
@@ -6626,12 +6271,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/pretty-format/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "license": "MIT"
- },
"node_modules/proc-log": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
@@ -6763,9 +6402,9 @@
}
},
"node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"license": "MIT"
},
"node_modules/react-native": {
@@ -6845,15 +6484,6 @@
"react-native": "*"
}
},
- "node_modules/react-native-size-matters": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.4.2.tgz",
- "integrity": "sha512-DKE3f/sdcozd24oASgkP1iGg+YU3HoajRa5k3a4wkRzpiqREq8SGX12Y5zBgAt/8IivLQoTMYkyQu1/Giuy+zQ==",
- "license": "MIT",
- "peerDependencies": {
- "react-native": "*"
- }
- },
"node_modules/react-native-url-polyfill": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-3.0.0.tgz",
@@ -6941,12 +6571,6 @@
"node": "*"
}
},
- "node_modules/react-native/node_modules/scheduler": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
- "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
- "license": "MIT"
- },
"node_modules/react-native/node_modules/semver": {
"version": "7.7.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
@@ -6977,40 +6601,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/react-test-renderer": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.2.4.tgz",
- "integrity": "sha512-Ttl5D7Rnmi6JGMUpri4UjB4BAN0FPs4yRDnu2XSsigCWOLm11o8GwRlVsh27ER+4WFqsGtrBuuv5zumUaRCmKw==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "react-is": "^19.2.4",
- "scheduler": "^0.27.0"
- },
- "peerDependencies": {
- "react": "^19.2.4"
- }
- },
- "node_modules/react-test-renderer/node_modules/react-is": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz",
- "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
- "license": "MIT",
- "dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -7268,11 +6858,10 @@
}
},
"node_modules/scheduler": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
- "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
- "license": "MIT",
- "peer": true
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
+ "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
+ "license": "MIT"
},
"node_modules/semver": {
"version": "6.3.1",
@@ -7441,27 +7030,6 @@
"plist": "^3.0.5"
}
},
- "node_modules/simple-plist/node_modules/bplist-parser": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
- "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
- "license": "MIT",
- "dependencies": {
- "big-integer": "1.6.x"
- },
- "engines": {
- "node": ">= 5.10.0"
- }
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz",
- "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
"node_modules/sisteransi": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
@@ -7600,7 +7168,7 @@
"node": ">=8"
}
},
- "node_modules/string-width/node_modules/strip-ansi": {
+ "node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
@@ -7612,39 +7180,6 @@
"node": ">=8"
}
},
- "node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-ansi/node_modules/ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "license": "MIT",
- "dependencies": {
- "min-indent": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
@@ -7729,9 +7264,9 @@
}
},
"node_modules/tar": {
- "version": "7.5.6",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.6.tgz",
- "integrity": "sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==",
+ "version": "7.5.7",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz",
+ "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==",
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/fs-minipass": "^4.0.0",
@@ -7902,6 +7437,23 @@
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
@@ -8218,18 +7770,6 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/examples/auth/quickstarts/react-native/package.json b/examples/auth/quickstarts/react-native/package.json
index b64d089fa30..7460e461357 100644
--- a/examples/auth/quickstarts/react-native/package.json
+++ b/examples/auth/quickstarts/react-native/package.json
@@ -10,22 +10,18 @@
},
"dependencies": {
"@react-native-async-storage/async-storage": "2.2.0",
- "@rneui/base": "^5.0.0",
- "@rneui/themed": "^5.0.0",
- "@supabase/supabase-js": "^2.93.1",
+ "@supabase/supabase-js": "^2.93.2",
"expo": "~54.0.32",
"expo-status-bar": "~3.0.9",
"react": "19.1.0",
"react-native": "0.81.5",
- "react-native-safe-area-context": "~5.6.0",
+ "react-native-safe-area-context": "~5.6.2",
"react-native-url-polyfill": "^3.0.0"
},
"devDependencies": {
"@babel/core": "^7.28.6",
- "@testing-library/jest-native": "^5.4.3",
- "@testing-library/react-native": "^13.2.0",
- "@types/react": "~19.1.0",
- "typescript": "~5.9.2"
+ "@types/react": "~19.1.10",
+ "typescript": "~5.9.3"
},
"private": true
}
diff --git a/examples/auth/quickstarts/react/.env.example b/examples/auth/quickstarts/react/.env.example
new file mode 100644
index 00000000000..996261f37f5
--- /dev/null
+++ b/examples/auth/quickstarts/react/.env.example
@@ -0,0 +1,2 @@
+VITE_SUPABASE_URL=your-project-url
+VITE_SUPABASE_PUBLISHABLE_DEFAULT_KEY=your-publishable-key-or-anon-key
diff --git a/examples/auth/quickstarts/react/index.html b/examples/auth/quickstarts/react/index.html
new file mode 100644
index 00000000000..4b33a9b66e2
--- /dev/null
+++ b/examples/auth/quickstarts/react/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ Supabase Auth + React
+
+
+
+
+
+
diff --git a/examples/auth/quickstarts/react/package-lock.json b/examples/auth/quickstarts/react/package-lock.json
new file mode 100644
index 00000000000..c46daca5d26
--- /dev/null
+++ b/examples/auth/quickstarts/react/package-lock.json
@@ -0,0 +1,1858 @@
+{
+ "name": "supabase-auth-react",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "supabase-auth-react",
+ "version": "1.0.0",
+ "dependencies": {
+ "@supabase/supabase-js": "^2.93.2",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1"
+ },
+ "devDependencies": {
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@vitejs/plugin-react": "^4.3.1",
+ "vite": "^5.4.2"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz",
+ "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz",
+ "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz",
+ "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/generator": "^7.28.6",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz",
+ "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
+ "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz",
+ "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.6"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz",
+ "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/generator": "^7.28.6",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.28.6",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz",
+ "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.27",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.0.tgz",
+ "integrity": "sha512-tPgXB6cDTndIe1ah7u6amCI1T0SsnlOuKgg10Xh3uizJk4e5M1JGaUMk7J4ciuAUcFpbOiNhm2XIjP9ON0dUqA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.0.tgz",
+ "integrity": "sha512-sa4LyseLLXr1onr97StkU1Nb7fWcg6niokTwEVNOO7awaKaoRObQ54+V/hrF/BP1noMEaaAW6Fg2d/CfLiq3Mg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.0.tgz",
+ "integrity": "sha512-/NNIj9A7yLjKdmkx5dC2XQ9DmjIECpGpwHoGmA5E1AhU0fuICSqSWScPhN1yLCkEdkCwJIDu2xIeLPs60MNIVg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.0.tgz",
+ "integrity": "sha512-xoh8abqgPrPYPr7pTYipqnUi1V3em56JzE/HgDgitTqZBZ3yKCWI+7KUkceM6tNweyUKYru1UMi7FC060RyKwA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.0.tgz",
+ "integrity": "sha512-PCkMh7fNahWSbA0OTUQ2OpYHpjZZr0hPr8lId8twD7a7SeWrvT3xJVyza+dQwXSSq4yEQTMoXgNOfMCsn8584g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.0.tgz",
+ "integrity": "sha512-1j3stGx+qbhXql4OCDZhnK7b01s6rBKNybfsX+TNrEe9JNq4DLi1yGiR1xW+nL+FNVvI4D02PUnl6gJ/2y6WJA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.0.tgz",
+ "integrity": "sha512-eyrr5W08Ms9uM0mLcKfM/Uzx7hjhz2bcjv8P2uynfj0yU8GGPdz8iYrBPhiLOZqahoAMB8ZiolRZPbbU2MAi6Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.0.tgz",
+ "integrity": "sha512-Xds90ITXJCNyX9pDhqf85MKWUI4lqjiPAipJ8OLp8xqI2Ehk+TCVhF9rvOoN8xTbcafow3QOThkNnrM33uCFQA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.0.tgz",
+ "integrity": "sha512-Xws2KA4CLvZmXjy46SQaXSejuKPhwVdaNinldoYfqruZBaJHqVo6hnRa8SDo9z7PBW5x84SH64+izmldCgbezw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.0.tgz",
+ "integrity": "sha512-hrKXKbX5FdaRJj7lTMusmvKbhMJSGWJ+w++4KmjiDhpTgNlhYobMvKfDoIWecy4O60K6yA4SnztGuNTQF+Lplw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.0.tgz",
+ "integrity": "sha512-6A+nccfSDGKsPm00d3xKcrsBcbqzCTAukjwWK6rbuAnB2bHaL3r9720HBVZ/no7+FhZLz/U3GwwZZEh6tOSI8Q==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.0.tgz",
+ "integrity": "sha512-4P1VyYUe6XAJtQH1Hh99THxr0GKMMwIXsRNOceLrJnaHTDgk1FTcTimDgneRJPvB3LqDQxUmroBclQ1S0cIJwQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.0.tgz",
+ "integrity": "sha512-8Vv6pLuIZCMcgXre6c3nOPhE0gjz1+nZP6T+hwWjr7sVH8k0jRkH+XnfjjOTglyMBdSKBPPz54/y1gToSKwrSQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.0.tgz",
+ "integrity": "sha512-r1te1M0Sm2TBVD/RxBPC6RZVwNqUTwJTA7w+C/IW5v9Ssu6xmxWEi+iJQlpBhtUiT1raJ5b48pI8tBvEjEFnFA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.0.tgz",
+ "integrity": "sha512-say0uMU/RaPm3CDQLxUUTF2oNWL8ysvHkAjcCzV2znxBr23kFfaxocS9qJm+NdkRhF8wtdEEAJuYcLPhSPbjuQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.0.tgz",
+ "integrity": "sha512-/MU7/HizQGsnBREtRpcSbSV1zfkoxSTR7wLsRmBPQ8FwUj5sykrP1MyJTvsxP5KBq9SyE6kH8UQQQwa0ASeoQQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.0.tgz",
+ "integrity": "sha512-Q9eh+gUGILIHEaJf66aF6a414jQbDnn29zeu0eX3dHMuysnhTvsUvZTCAyZ6tJhUjnvzBKE4FtuaYxutxRZpOg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.0.tgz",
+ "integrity": "sha512-OR5p5yG5OKSxHReWmwvM0P+VTPMwoBS45PXTMYaskKQqybkS3Kmugq1W+YbNWArF8/s7jQScgzXUhArzEQ7x0A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.0.tgz",
+ "integrity": "sha512-XeatKzo4lHDsVEbm1XDHZlhYZZSQYym6dg2X/Ko0kSFgio+KXLsxwJQprnR48GvdIKDOpqWqssC3iBCjoMcMpw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.0.tgz",
+ "integrity": "sha512-Lu71y78F5qOfYmubYLHPcJm74GZLU6UJ4THkf/a1K7Tz2ycwC2VUbsqbJAXaR6Bx70SRdlVrt2+n5l7F0agTUw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.0.tgz",
+ "integrity": "sha512-v5xwKDWcu7qhAEcsUubiav7r+48Uk/ENWdr82MBZZRIm7zThSxCIVDfb3ZeRRq9yqk+oIzMdDo6fCcA5DHfMyA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.0.tgz",
+ "integrity": "sha512-XnaaaSMGSI6Wk8F4KK3QP7GfuuhjGchElsVerCplUuxRIzdvZ7hRBpLR0omCmw+kI2RFJB80nenhOoGXlJ5TfQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.0.tgz",
+ "integrity": "sha512-3K1lP+3BXY4t4VihLw5MEg6IZD3ojSYzqzBG571W3kNQe4G4CcFpSUQVgurYgib5d+YaCjeFow8QivWp8vuSvA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.0.tgz",
+ "integrity": "sha512-MDk610P/vJGc5L5ImE4k5s+GZT3en0KoK1MKPXCRgzmksAMk79j4h3k1IerxTNqwDLxsGxStEZVBqG0gIqZqoA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.0.tgz",
+ "integrity": "sha512-Zv7v6q6aV+VslnpwzqKAmrk5JdVkLUzok2208ZXGipjb+msxBr/fJPZyeEXiFgH7k62Ak0SLIfxQRZQvTuf7rQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@supabase/auth-js": {
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.93.2.tgz",
+ "integrity": "sha512-uifI5vkhvHCQjn+LUPL5QlsuDMP4oVBD5SiliREgYuTJvCkbPLOcAPGrw88q7VUX9S0J0QuJn+37hrcTITisuw==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "2.8.1"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@supabase/functions-js": {
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.93.2.tgz",
+ "integrity": "sha512-reSp7yj4KmvAFfmN+N7vYsHXOIZQh9cmRBh+VrZlm7qgIIUdYmzKuD85TvFnWApqcdI2pPnuZGKWE/2B4GXT1A==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "2.8.1"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@supabase/postgrest-js": {
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.93.2.tgz",
+ "integrity": "sha512-W2AWDsYwRT217II5yD3jWaX3fJjB7DwyNi2KNi4sphdUI3DKY4fP2XYVDGfeb1clEFL18gw+GBhyQb3BcpNWkw==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "2.8.1"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@supabase/realtime-js": {
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.93.2.tgz",
+ "integrity": "sha512-YpAmJn7DLbMeYfQilcf3f0DKoY8O8TRbTF2oRpWFzHXTlEA+YWms8fBqM13Mf7RE72ouSNKDYyf5K2pWRSHvFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/phoenix": "^1.6.6",
+ "@types/ws": "^8.18.1",
+ "tslib": "2.8.1",
+ "ws": "^8.18.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@supabase/storage-js": {
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.93.2.tgz",
+ "integrity": "sha512-abRSVClfIQn+SqpdqL7S7b3VeyS8270/o0gqmGFtiidb7Lu0COsIV6Mor/mK9xE99KYWzyd37vwYYwv/jaANhw==",
+ "license": "MIT",
+ "dependencies": {
+ "iceberg-js": "^0.8.1",
+ "tslib": "2.8.1"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@supabase/supabase-js": {
+ "version": "2.93.2",
+ "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.93.2.tgz",
+ "integrity": "sha512-G3bZZi6rPwXcPtyHLXQTeHKa5ADZ2UW/+hv8YhwZFwngz4TlPnR4+TeO37EwU5+d/reD02qXozOZgz+QHv1Jtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@supabase/auth-js": "2.93.2",
+ "@supabase/functions-js": "2.93.2",
+ "@supabase/postgrest-js": "2.93.2",
+ "@supabase/realtime-js": "2.93.2",
+ "@supabase/storage-js": "2.93.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "25.1.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.1.0.tgz",
+ "integrity": "sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.16.0"
+ }
+ },
+ "node_modules/@types/phoenix": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.7.tgz",
+ "integrity": "sha512-oN9ive//QSBkf19rfDv45M7eZPi0eEXylht2OLEXicu5b4KoQ1OzXIw+xDSGWxSxe1JmepRR/ZH283vsu518/Q==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.27",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
+ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
+ }
+ },
+ "node_modules/@types/ws": {
+ "version": "8.18.1",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
+ "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.27",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ }
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.9.19",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
+ "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001766",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz",
+ "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.279",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.279.tgz",
+ "integrity": "sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/iceberg-js": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/iceberg-js/-/iceberg-js-0.8.1.tgz",
+ "integrity": "sha512-1dhVQZXhcHje7798IVM+xoo/1ZdVfzOMIc8/rgVSijRK38EDqOJoGula9N/8ZI5RD8QTxNQtK/Gozpr+qUqRRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.57.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.0.tgz",
+ "integrity": "sha512-e5lPJi/aui4TO1LpAXIRLySmwXSE8k3b9zoGfd42p67wzxog4WHjiZF3M2uheQih4DGyc25QEV4yRBbpueNiUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.57.0",
+ "@rollup/rollup-android-arm64": "4.57.0",
+ "@rollup/rollup-darwin-arm64": "4.57.0",
+ "@rollup/rollup-darwin-x64": "4.57.0",
+ "@rollup/rollup-freebsd-arm64": "4.57.0",
+ "@rollup/rollup-freebsd-x64": "4.57.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.57.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.57.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.57.0",
+ "@rollup/rollup-linux-arm64-musl": "4.57.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.57.0",
+ "@rollup/rollup-linux-loong64-musl": "4.57.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.57.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.57.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.57.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.57.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.57.0",
+ "@rollup/rollup-linux-x64-gnu": "4.57.0",
+ "@rollup/rollup-linux-x64-musl": "4.57.0",
+ "@rollup/rollup-openbsd-x64": "4.57.0",
+ "@rollup/rollup-openharmony-arm64": "4.57.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.57.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.57.0",
+ "@rollup/rollup-win32-x64-gnu": "4.57.0",
+ "@rollup/rollup-win32-x64-msvc": "4.57.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/undici-types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "license": "MIT"
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.4.21",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
+ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ }
+ }
+}
diff --git a/examples/auth/quickstarts/react/package.json b/examples/auth/quickstarts/react/package.json
new file mode 100644
index 00000000000..90f5190932c
--- /dev/null
+++ b/examples/auth/quickstarts/react/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "supabase-auth-react",
+ "private": true,
+ "version": "1.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@supabase/supabase-js": "^2.93.2",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1"
+ },
+ "devDependencies": {
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@vitejs/plugin-react": "^4.3.1",
+ "vite": "^5.4.2"
+ }
+}
diff --git a/examples/auth/quickstarts/react/src/App.jsx b/examples/auth/quickstarts/react/src/App.jsx
new file mode 100644
index 00000000000..909139b0a98
--- /dev/null
+++ b/examples/auth/quickstarts/react/src/App.jsx
@@ -0,0 +1,155 @@
+import "./index.css";
+import { useState, useEffect } from "react";
+import { createClient } from "@supabase/supabase-js";
+
+const supabase = createClient(import.meta.env.VITE_SUPABASE_URL, import.meta.env.VITE_SUPABASE_PUBLISHABLE_DEFAULT_KEY);
+
+export default function App() {
+ const [loading, setLoading] = useState(false);
+ const [email, setEmail] = useState("");
+ const [claims, setClaims] = useState(null);
+
+ // Check URL params on initial render
+ const params = new URLSearchParams(window.location.search);
+ const hasTokenHash = params.get("token_hash");
+
+ const [verifying, setVerifying] = useState(!!hasTokenHash);
+ const [authError, setAuthError] = useState(null);
+ const [authSuccess, setAuthSuccess] = useState(false);
+
+ useEffect(() => {
+ // Check if we have token_hash in URL (magic link callback)
+ const params = new URLSearchParams(window.location.search);
+ const token_hash = params.get("token_hash");
+ const type = params.get("type");
+
+ if (token_hash) {
+ // Verify the OTP token
+ supabase.auth.verifyOtp({
+ token_hash,
+ type: type || "email",
+ }).then(({ error }) => {
+ if (error) {
+ setAuthError(error.message);
+ } else {
+ setAuthSuccess(true);
+ // Clear URL params
+ window.history.replaceState({}, document.title, "/");
+ }
+ setVerifying(false);
+ });
+ }
+
+ // Check for existing session using getClaims
+ supabase.auth.getClaims().then(({ data: { claims } }) => {
+ setClaims(claims);
+ });
+
+ // Listen for auth changes
+ const {
+ data: { subscription },
+ } = supabase.auth.onAuthStateChange(() => {
+ supabase.auth.getClaims().then(({ data: { claims } }) => {
+ setClaims(claims);
+ });
+ });
+
+ return () => subscription.unsubscribe();
+ }, []);
+
+ const handleLogin = async (event) => {
+ event.preventDefault();
+ setLoading(true);
+ const { error } = await supabase.auth.signInWithOtp({
+ email,
+ options: {
+ emailRedirectTo: window.location.origin,
+ }
+ });
+ if (error) {
+ alert(error.error_description || error.message);
+ } else {
+ alert("Check your email for the login link!");
+ }
+ setLoading(false);
+ };
+
+ const handleLogout = async () => {
+ await supabase.auth.signOut();
+ setClaims(null);
+ };
+
+ // Show verification state
+ if (verifying) {
+ return (
+
+
Authentication
+
Confirming your magic link...
+
Loading...
+
+ );
+ }
+
+ // Show auth error
+ if (authError) {
+ return (
+
+
Authentication
+
✗ Authentication failed
+
{authError}
+
{
+ setAuthError(null);
+ window.history.replaceState({}, document.title, "/");
+ }}
+ >
+ Return to login
+
+
+ );
+ }
+
+ // Show auth success (briefly before claims load)
+ if (authSuccess && !claims) {
+ return (
+
+
Authentication
+
✓ Authentication successful!
+
Loading your account...
+
+ );
+ }
+
+ // If user is logged in, show welcome screen
+ if (claims) {
+ return (
+
+
Welcome!
+
You are logged in as: {claims.email}
+
+ Sign Out
+
+
+ );
+ }
+
+ // Show login form
+ return (
+
+
Supabase + React
+
Sign in via magic link with your email below
+
+
+ );
+}
diff --git a/examples/auth/quickstarts/react/src/index.css b/examples/auth/quickstarts/react/src/index.css
new file mode 100644
index 00000000000..37e5776c841
--- /dev/null
+++ b/examples/auth/quickstarts/react/src/index.css
@@ -0,0 +1,59 @@
+* {
+ box-sizing: border-box;
+}
+
+body {
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ background-color: #f5f5f5;
+ margin: 0;
+ padding: 20px;
+}
+
+h1 {
+ color: #333;
+ margin-bottom: 10px;
+}
+
+p {
+ color: #666;
+ margin-bottom: 20px;
+}
+
+form {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ max-width: 300px;
+}
+
+input {
+ padding: 12px;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ font-size: 16px;
+}
+
+input:focus {
+ outline: none;
+ border-color: #3ecf8e;
+}
+
+button {
+ padding: 12px 24px;
+ background-color: #3ecf8e;
+ color: white;
+ border: none;
+ border-radius: 4px;
+ font-size: 16px;
+ cursor: pointer;
+ transition: background-color 0.2s;
+}
+
+button:hover {
+ background-color: #2db97a;
+}
+
+button:disabled {
+ background-color: #ccc;
+ cursor: not-allowed;
+}
diff --git a/examples/auth/quickstarts/react/src/main.jsx b/examples/auth/quickstarts/react/src/main.jsx
new file mode 100644
index 00000000000..5e8d112308a
--- /dev/null
+++ b/examples/auth/quickstarts/react/src/main.jsx
@@ -0,0 +1,10 @@
+import React from 'react'
+import ReactDOM from 'react-dom/client'
+import App from './App.jsx'
+import './index.css'
+
+ReactDOM.createRoot(document.getElementById('root')).render(
+
+
+
+)
diff --git a/examples/auth/quickstarts/react/vite.config.js b/examples/auth/quickstarts/react/vite.config.js
new file mode 100644
index 00000000000..9ffcc675746
--- /dev/null
+++ b/examples/auth/quickstarts/react/vite.config.js
@@ -0,0 +1,6 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+export default defineConfig({
+ plugins: [react()],
+})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index eae1ffc40d9..9a1e6d88148 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,17 +10,17 @@ catalogs:
specifier: ^10.26.0
version: 10.27.0
'@supabase/auth-js':
- specifier: 2.93.1
- version: 2.93.1
+ specifier: 2.93.2
+ version: 2.93.2
'@supabase/postgrest-js':
- specifier: 2.93.1
- version: 2.93.1
+ specifier: 2.93.2
+ version: 2.93.2
'@supabase/realtime-js':
- specifier: 2.93.1
- version: 2.93.1
+ specifier: 2.93.2
+ version: 2.93.2
'@supabase/supabase-js':
- specifier: 2.93.1
- version: 2.93.1
+ specifier: 2.93.2
+ version: 2.93.2
'@types/node':
specifier: ^22.0.0
version: 22.13.14
@@ -440,10 +440,10 @@ importers:
version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@sentry/nextjs':
specifier: 'catalog:'
- version: 10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)
+ version: 10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@tailwindcss/container-queries':
specifier: ^0.1.1
version: 0.1.1(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)))
@@ -870,7 +870,7 @@ importers:
version: 7.5.0
'@supabase/auth-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@supabase/mcp-server-supabase':
specifier: ^0.6.2
version: 0.6.2(@modelcontextprotocol/sdk@1.25.3(hono@4.11.4)(supports-color@8.1.1)(zod@3.25.76))(zod@3.25.76)
@@ -882,7 +882,7 @@ importers:
version: link:../../packages/pg-meta
'@supabase/realtime-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@supabase/shared-types':
specifier: 0.1.83
version: 0.1.83
@@ -891,7 +891,7 @@ importers:
version: 0.1.6(encoding@0.1.13)(supports-color@8.1.1)
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@tanstack/react-query':
specifier: ^5.0.0
version: 5.83.0(react@18.3.1)
@@ -1402,7 +1402,7 @@ importers:
version: 7.4.0(@react-router/dev@7.9.6(@types/node@22.13.14)(@vitejs/plugin-rsc@0.5.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1)))(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(typescript@5.9.2)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.2)
'@supabase/postgrest-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@supabase/supa-mdx-lint':
specifier: 0.2.6-alpha
version: 0.2.6-alpha
@@ -1523,10 +1523,10 @@ importers:
version: 1.6.0
'@supabase/ssr':
specifier: ^0.7.0
- version: 0.7.0(@supabase/supabase-js@2.93.1)
+ version: 0.7.0(@supabase/supabase-js@2.93.2)
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@tanstack/react-router':
specifier: ^1.114.27
version: 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1637,10 +1637,10 @@ importers:
version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@sentry/nextjs':
specifier: 'catalog:'
- version: 10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)
+ version: 10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@vercel/og':
specifier: ^0.6.2
version: 0.6.2
@@ -1727,13 +1727,13 @@ importers:
version: 4.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)
next-seo:
specifier: ^6.5.0
- version: 6.5.0(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 6.5.0(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next-themes:
specifier: ^0.3.0
version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
nuqs:
specifier: ^2.8.1
- version: 2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ version: 2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
openai:
specifier: ^4.75.1
version: 4.104.0(encoding@0.1.13)(ws@8.18.3)(zod@3.25.76)
@@ -1872,10 +1872,10 @@ importers:
dependencies:
'@supabase/ssr':
specifier: ^0.7.0
- version: 0.7.0(@supabase/supabase-js@2.93.1)
+ version: 0.7.0(@supabase/supabase-js@2.93.2)
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@@ -1915,7 +1915,7 @@ importers:
version: 1.56.1
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
cross-fetch:
specifier: ^4.1.0
version: 4.1.0(encoding@0.1.13)
@@ -1943,7 +1943,7 @@ importers:
version: 0.18.5
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
ai:
specifier: 5.0.52
version: 5.0.52(zod@3.25.76)
@@ -2037,10 +2037,10 @@ importers:
dependencies:
'@supabase/auth-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@types/dat.gui':
specifier: ^0.7.12
version: 0.7.12
@@ -2521,7 +2521,7 @@ importers:
version: 0.1.6(encoding@0.1.13)(supports-color@8.1.1)
'@supabase/supabase-js':
specifier: 'catalog:'
- version: 2.93.1
+ version: 2.93.2
'@vitest/coverage-v8':
specifier: ^3.2.0
version: 3.2.4(supports-color@8.1.1)(vitest@3.2.4)
@@ -8914,12 +8914,12 @@ packages:
resolution: {integrity: sha512-Cq3KKe+G1o7PSBMbmrgpT2JgBeyH2THHr3RdIX2MqF7AnBuspIMgtZ3ktcCgP7kZsTMvnmWymr7zZCT1zeWbMw==}
engines: {node: '>=12.16'}
- '@supabase/auth-js@2.93.1':
- resolution: {integrity: sha512-pC0Ek4xk4z6q7A/3+UuZ/eYgfFUUQTg3DhapzrAgJnFGDJDFDyGCj6v9nIz8+3jfLqSZ3QKGe6AoEodYjShghg==}
+ '@supabase/auth-js@2.93.2':
+ resolution: {integrity: sha512-uifI5vkhvHCQjn+LUPL5QlsuDMP4oVBD5SiliREgYuTJvCkbPLOcAPGrw88q7VUX9S0J0QuJn+37hrcTITisuw==}
engines: {node: '>=20.0.0'}
- '@supabase/functions-js@2.93.1':
- resolution: {integrity: sha512-Ott2IcIXHGupaC0nX9WNEiJAX4OdlGRu9upkkURaQHbaLdz9JuCcHxlwTERgtgjMpikbIWHfMM1M9QTQFYABiA==}
+ '@supabase/functions-js@2.93.2':
+ resolution: {integrity: sha512-reSp7yj4KmvAFfmN+N7vYsHXOIZQh9cmRBh+VrZlm7qgIIUdYmzKuD85TvFnWApqcdI2pPnuZGKWE/2B4GXT1A==}
engines: {node: '>=20.0.0'}
'@supabase/mcp-server-supabase@0.6.2':
@@ -8939,12 +8939,12 @@ packages:
resolution: {integrity: sha512-vz5gc6RKNfDVnIfRUmH2ssTMYFI0U3MYOVyQ9R4YkzOS2dKSanjC4rTEDGjlMFwGTCUPW3N3pbY7HJIW81wMyg==}
engines: {node: '>=16', npm: '>=8'}
- '@supabase/postgrest-js@2.93.1':
- resolution: {integrity: sha512-uRKKQJBDnfi6XFNFPNMh9+u3HT2PCgp065PcMPmG7e0xGuqvLtN89QxO2/SZcGbw2y1+mNBz0yUs5KmyNqF2fA==}
+ '@supabase/postgrest-js@2.93.2':
+ resolution: {integrity: sha512-W2AWDsYwRT217II5yD3jWaX3fJjB7DwyNi2KNi4sphdUI3DKY4fP2XYVDGfeb1clEFL18gw+GBhyQb3BcpNWkw==}
engines: {node: '>=20.0.0'}
- '@supabase/realtime-js@2.93.1':
- resolution: {integrity: sha512-2WaP/KVHPlQDjWM6qe4wOZz6zSRGaXw1lfXf4thbfvk3C3zPPKqXRyspyYnk3IhphyxSsJ2hQ/cXNOz48008tg==}
+ '@supabase/realtime-js@2.93.2':
+ resolution: {integrity: sha512-YpAmJn7DLbMeYfQilcf3f0DKoY8O8TRbTF2oRpWFzHXTlEA+YWms8fBqM13Mf7RE72ouSNKDYyf5K2pWRSHvFw==}
engines: {node: '>=20.0.0'}
'@supabase/shared-types@0.1.83':
@@ -8958,8 +8958,8 @@ packages:
peerDependencies:
'@supabase/supabase-js': ^2.43.4
- '@supabase/storage-js@2.93.1':
- resolution: {integrity: sha512-3KVwd4S1i1BVPL6KIywe5rnruNQXSkLyvrdiJmwnqwbCcDujQumARdGWBPesqCjOPKEU2M9ORWKAsn+2iLzquA==}
+ '@supabase/storage-js@2.93.2':
+ resolution: {integrity: sha512-abRSVClfIQn+SqpdqL7S7b3VeyS8270/o0gqmGFtiidb7Lu0COsIV6Mor/mK9xE99KYWzyd37vwYYwv/jaANhw==}
engines: {node: '>=20.0.0'}
'@supabase/supa-mdx-lint-darwin@0.2.6-alpha':
@@ -9052,8 +9052,8 @@ packages:
resolution: {integrity: sha512-TNbBLSofM6jQg3JwzO4lttd59dScTTzW4p504/OWcgRWghQLRNfxXRJJtdui83gBMLWpgeUZqvgtfYIwS1Flzw==}
hasBin: true
- '@supabase/supabase-js@2.93.1':
- resolution: {integrity: sha512-FJTgS5s0xEgRQ3u7gMuzGObwf3jA4O5Ki/DgCDXx94w1pihLM4/WG3XFa4BaCJYfuzLxLcv6zPPA5tDvBUjAUg==}
+ '@supabase/supabase-js@2.93.2':
+ resolution: {integrity: sha512-G3bZZi6rPwXcPtyHLXQTeHKa5ADZ2UW/+hv8YhwZFwngz4TlPnR4+TeO37EwU5+d/reD02qXozOZgz+QHv1Jtg==}
engines: {node: '>=20.0.0'}
'@swc/helpers@0.5.15':
@@ -27407,7 +27407,7 @@ snapshots:
'@sentry/core@10.27.0': {}
- '@sentry/nextjs@10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)':
+ '@sentry/nextjs@10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)':
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/semantic-conventions': 1.38.0
@@ -27992,11 +27992,11 @@ snapshots:
'@stripe/stripe-js@7.5.0': {}
- '@supabase/auth-js@2.93.1':
+ '@supabase/auth-js@2.93.2':
dependencies:
tslib: 2.8.1
- '@supabase/functions-js@2.93.1':
+ '@supabase/functions-js@2.93.2':
dependencies:
tslib: 2.8.1
@@ -28031,11 +28031,11 @@ snapshots:
- pg-native
- supports-color
- '@supabase/postgrest-js@2.93.1':
+ '@supabase/postgrest-js@2.93.2':
dependencies:
tslib: 2.8.1
- '@supabase/realtime-js@2.93.1':
+ '@supabase/realtime-js@2.93.2':
dependencies:
'@types/phoenix': 1.6.6
'@types/ws': 8.18.1
@@ -28056,12 +28056,12 @@ snapshots:
- encoding
- supports-color
- '@supabase/ssr@0.7.0(@supabase/supabase-js@2.93.1)':
+ '@supabase/ssr@0.7.0(@supabase/supabase-js@2.93.2)':
dependencies:
- '@supabase/supabase-js': 2.93.1
+ '@supabase/supabase-js': 2.93.2
cookie: 1.0.2
- '@supabase/storage-js@2.93.1':
+ '@supabase/storage-js@2.93.2':
dependencies:
iceberg-js: 0.8.1
tslib: 2.8.1
@@ -28130,13 +28130,13 @@ snapshots:
'@supabase/supa-mdx-lint-win32-x64': 0.3.1
node-pty: 1.0.0
- '@supabase/supabase-js@2.93.1':
+ '@supabase/supabase-js@2.93.2':
dependencies:
- '@supabase/auth-js': 2.93.1
- '@supabase/functions-js': 2.93.1
- '@supabase/postgrest-js': 2.93.1
- '@supabase/realtime-js': 2.93.1
- '@supabase/storage-js': 2.93.1
+ '@supabase/auth-js': 2.93.2
+ '@supabase/functions-js': 2.93.2
+ '@supabase/postgrest-js': 2.93.2
+ '@supabase/realtime-js': 2.93.2
+ '@supabase/storage-js': 2.93.2
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -36388,7 +36388,7 @@ snapshots:
next: 16.0.11(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)
react: 18.3.1
- next-seo@6.5.0(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ next-seo@6.5.0(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
next: 15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)
react: 18.3.1
@@ -36780,7 +36780,7 @@ snapshots:
next: 16.0.11(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)
react-router: 7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- nuqs@2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1):
+ nuqs@2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1):
dependencies:
'@standard-schema/spec': 1.0.0
react: 18.3.1
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 2ff5cdb36a1..058cc24dc7f 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -6,10 +6,10 @@ packages:
catalog:
'@sentry/nextjs': ^10.26.0
- '@supabase/auth-js': 2.93.1
- '@supabase/postgrest-js': 2.93.1
- '@supabase/realtime-js': 2.93.1
- '@supabase/supabase-js': 2.93.1
+ '@supabase/auth-js': 2.93.2
+ '@supabase/postgrest-js': 2.93.2
+ '@supabase/realtime-js': 2.93.2
+ '@supabase/supabase-js': 2.93.2
'@types/node': ^22.0.0
'@types/react': ^18.3.0
'@types/react-dom': ^18.3.0
diff --git a/scripts/generateLocalEnv.js b/scripts/generateLocalEnv.js
index b6fb6bd79ac..808f964d89d 100644
--- a/scripts/generateLocalEnv.js
+++ b/scripts/generateLocalEnv.js
@@ -31,6 +31,7 @@ const defaultEnv = {
NEXT_PUBLIC_HCAPTCHA_SITE_KEY: '10000000-ffff-ffff-ffff-000000000001',
NEXT_PUBLIC_NODE_ENV: 'test',
SNIPPETS_MANAGEMENT_FOLDER: '../../supabase/snippets',
+ EDGE_FUNCTIONS_MANAGEMENT_FOLDER: '../../supabase/functions' // path relative to studio project
}
const environment = { ...generatedEnv, ...defaultEnv }
diff --git a/turbo.json b/turbo.json
index eabf2b1f0ad..693483684b0 100644
--- a/turbo.json
+++ b/turbo.json
@@ -3,11 +3,18 @@
"ui": "stream",
"tasks": {
"build": {
- "dependsOn": ["^build"],
- "outputs": ["dist/**", ".next/**"]
+ "dependsOn": [
+ "^build"
+ ],
+ "outputs": [
+ "dist/**",
+ ".next/**"
+ ]
},
"cms#build": {
- "dependsOn": ["^build"],
+ "dependsOn": [
+ "^build"
+ ],
"env": [
"BLOG_APP_URL",
"CRON_SECRET",
@@ -25,10 +32,15 @@
"S3_ENDPOINT",
"VERCEL_PROJECT_PRODUCTION_URL"
],
- "outputs": [".next/**", "!.next/cache/**"]
+ "outputs": [
+ ".next/**",
+ "!.next/cache/**"
+ ]
},
"design-system#build": {
- "dependsOn": ["^build"],
+ "dependsOn": [
+ "^build"
+ ],
"env": [
"NEXT_PUBLIC_BASE_PATH",
"NEXT_PUBLIC_APP_URL",
@@ -41,10 +53,16 @@
"NEXT_PUBLIC_GOTRUE_URL",
"NEXT_PUBLIC_SUPABASE_ANON_KEY"
],
- "outputs": [".next/**", "!.next/cache/**", ".contentlayer/**"]
+ "outputs": [
+ ".next/**",
+ "!.next/cache/**",
+ ".contentlayer/**"
+ ]
},
"studio#build": {
- "dependsOn": ["^build"],
+ "dependsOn": [
+ "^build"
+ ],
"env": [
"ANALYZE",
"NEXT_PUBLIC_SUPPORT_API_URL",
@@ -133,12 +151,18 @@
"passThroughEnv": [
"CURRENT_CLI_VERSION",
"VERCEL_GIT_COMMIT_SHA",
- "SNIPPETS_MANAGEMENT_FOLDER"
+ "SNIPPETS_MANAGEMENT_FOLDER",
+ "EDGE_FUNCTIONS_MANAGEMENT_FOLDER"
],
- "outputs": [".next/**", "!.next/cache/**"]
+ "outputs": [
+ ".next/**",
+ "!.next/cache/**"
+ ]
},
"www#build": {
- "dependsOn": ["^build"],
+ "dependsOn": [
+ "^build"
+ ],
"env": [
"ANALYZE",
"CI",
@@ -210,10 +234,16 @@
"CUSTOMERIO_API_KEY",
"CUSTOMERIO_APP_API_KEY"
],
- "outputs": [".next/**", "!.next/cache/**", ".contentlayer/**"]
+ "outputs": [
+ ".next/**",
+ "!.next/cache/**",
+ ".contentlayer/**"
+ ]
},
"ui-library#build": {
- "dependsOn": ["^build"],
+ "dependsOn": [
+ "^build"
+ ],
"env": [
"NEXT_PUBLIC_BASE_PATH",
"NEXT_PUBLIC_APP_URL",
@@ -235,7 +265,11 @@
"SUPABASE_MANAGEMENT_API_TOKEN",
"OPENAI_API_KEY"
],
- "outputs": [".next/**", "!.next/cache/**", ".contentlayer/**"]
+ "outputs": [
+ ".next/**",
+ "!.next/cache/**",
+ ".contentlayer/**"
+ ]
},
"lint": {
"outputs": []
@@ -251,7 +285,9 @@
"cache": false
},
"typecheck": {
- "dependsOn": ["^typecheck"],
+ "dependsOn": [
+ "^typecheck"
+ ],
"outputs": []
}
}