diff --git a/apps/docs/content/guides/functions.mdx b/apps/docs/content/guides/functions.mdx
index 2982243fa10..af7c9a100d6 100644
--- a/apps/docs/content/guides/functions.mdx
+++ b/apps/docs/content/guides/functions.mdx
@@ -56,3 +56,5 @@ Check out [Supabase Edge Function Examples](https://github.com/supabase/supabase
+
+
diff --git a/apps/docs/content/guides/realtime.mdx b/apps/docs/content/guides/realtime.mdx
index 8352d90659b..ce98f396198 100644
--- a/apps/docs/content/guides/realtime.mdx
+++ b/apps/docs/content/guides/realtime.mdx
@@ -25,3 +25,5 @@ Supabase provides a globally distributed [Realtime](https://github.com/supabase/
+
+
diff --git a/apps/docs/content/guides/storage.mdx b/apps/docs/content/guides/storage.mdx
index a918edf83a1..8438fa1de3e 100644
--- a/apps/docs/content/guides/storage.mdx
+++ b/apps/docs/content/guides/storage.mdx
@@ -22,3 +22,5 @@ Supabase Storage is a robust, scalable solution for managing files of any size w
+
+
diff --git a/apps/docs/data/content-listings/functions.data.ts b/apps/docs/data/content-listings/functions.data.ts
index bb69d870704..5afd02b1364 100644
--- a/apps/docs/data/content-listings/functions.data.ts
+++ b/apps/docs/data/content-listings/functions.data.ts
@@ -176,6 +176,29 @@ export const functionsExamplesMessaging: ContentListingGroup = {
],
}
+export const functionsNextSteps: ContentListingGroup = {
+ id: 'functions-next-steps',
+ heading: 'Next steps',
+ type: 'grid',
+ items: [
+ {
+ title: 'Deploy',
+ href: '/guides/functions/deploy',
+ description: 'Deploy Edge Functions to production with the Supabase CLI or dashboard.',
+ },
+ {
+ title: 'Secrets',
+ href: '/guides/functions/secrets',
+ description: 'Store and access credentials and environment variables securely.',
+ },
+ {
+ title: 'Local development',
+ href: '/guides/functions/development-environment',
+ description: 'Set up a local runtime for testing and debugging Edge Functions.',
+ },
+ ],
+}
+
export const functionsExamplesOperations: ContentListingGroup = {
id: 'functions-examples-operations',
heading: 'Operations & security',
diff --git a/apps/docs/data/content-listings/index.ts b/apps/docs/data/content-listings/index.ts
index b5ac8a84d09..6136de5c85c 100644
--- a/apps/docs/data/content-listings/index.ts
+++ b/apps/docs/data/content-listings/index.ts
@@ -9,10 +9,21 @@ import {
functionsExamplesSupabase,
functionsExamplesWebhooksPayments,
functionsGetStarted,
+ functionsNextSteps,
} from './functions.data'
import { gettingStartedGetStarted } from './getting-started.data'
-import { realtimeExamples, realtimeGetStarted, realtimeResources } from './realtime.data'
-import { storageExamples, storageGetStarted, storageResources } from './storage.data'
+import {
+ realtimeExamples,
+ realtimeGetStarted,
+ realtimeNextSteps,
+ realtimeResources,
+} from './realtime.data'
+import {
+ storageExamples,
+ storageGetStarted,
+ storageNextSteps,
+ storageResources,
+} from './storage.data'
const ALL_GROUPS: readonly ContentListingGroup[] = [
authGetStarted,
@@ -32,7 +43,10 @@ const ALL_GROUPS: readonly ContentListingGroup[] = [
realtimeResources,
storageGetStarted,
storageExamples,
+ storageNextSteps,
storageResources,
+ functionsNextSteps,
+ realtimeNextSteps,
]
export const CONTENT_LISTINGS: Readonly> = Object.fromEntries(
diff --git a/apps/docs/data/content-listings/realtime.data.ts b/apps/docs/data/content-listings/realtime.data.ts
index 0e0e85b2270..8a1100628c7 100644
--- a/apps/docs/data/content-listings/realtime.data.ts
+++ b/apps/docs/data/content-listings/realtime.data.ts
@@ -45,6 +45,29 @@ export const realtimeExamples: ContentListingGroup = {
],
}
+export const realtimeNextSteps: ContentListingGroup = {
+ id: 'realtime-next-steps',
+ heading: 'Next steps',
+ type: 'grid',
+ items: [
+ {
+ title: 'Broadcast',
+ href: '/guides/realtime/broadcast',
+ description: 'Send low-latency messages between connected clients.',
+ },
+ {
+ title: 'Presence',
+ href: '/guides/realtime/presence',
+ description: 'Track who is online and synchronize shared state across clients.',
+ },
+ {
+ title: 'Postgres Changes',
+ href: '/guides/realtime/postgres-changes',
+ description: 'Listen to database inserts, updates, and deletes in real time.',
+ },
+ ],
+}
+
export const realtimeResources: ContentListingGroup = {
id: 'realtime-resources',
heading: 'Resources',
diff --git a/apps/docs/data/content-listings/storage.data.ts b/apps/docs/data/content-listings/storage.data.ts
index 9180ea08d49..38d69472908 100644
--- a/apps/docs/data/content-listings/storage.data.ts
+++ b/apps/docs/data/content-listings/storage.data.ts
@@ -50,6 +50,29 @@ export const storageExamples: ContentListingGroup = {
],
}
+export const storageNextSteps: ContentListingGroup = {
+ id: 'storage-next-steps',
+ heading: 'Next steps',
+ type: 'grid',
+ items: [
+ {
+ title: 'Access control',
+ href: '/guides/storage/security/access-control',
+ description: 'Secure buckets and objects with row-level security policies.',
+ },
+ {
+ title: 'Image transformations',
+ href: '/guides/storage/serving/image-transformations',
+ description: 'Resize, compress, and convert images on the fly at the CDN edge.',
+ },
+ {
+ title: 'CDN',
+ href: '/guides/storage/cdn/fundamentals',
+ description: 'Understand how the global CDN caches and delivers your assets.',
+ },
+ ],
+}
+
export const storageResources: ContentListingGroup = {
id: 'storage-resources',
heading: 'Resources',