From c75d87d5ef6654978dc2fbfe6458da52a03e9784 Mon Sep 17 00:00:00 2001 From: Wendie Cheung <49030266+wendeh@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:53:30 +1000 Subject: [PATCH] Add /go/ask-supabase-select Select 2026 recap page (#50889) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problem Attendees at Supabase Select 2026 need a quick, linkable page that recaps what shipped and points them to the right next step, whether that's a theme blog post, a solution page, or the full features directory. ## Solution Added `/go/ask-supabase-select` using the go-page system (`GoPageInput` config, no bespoke React): - **Hero**: "Build in an instant. Scale to infinity." with a "Read the Recap" CTA - **Our announcements**: three theme cards (Build anything, Scale without limits, Operate with confidence), each with a blurb sourced from the drafted Select 2026 theme blog posts and a CTA to that post - **Explore Supabase for your team**: a 2x2 grid of solution cards (AI Builders, Startups, Developers, Enterprise), each fully clickable to its solutions page - **Supabase features**: closing CTA out to `/features` Also adds `whitespace-pre-line` support to the shared go-page `HeroSection` component so a hero description can wrap onto a second line when the config string includes `\n`. This is additive and doesn't change rendering for existing `/go` pages that don't use a line break. Note: the "Read the Build/Scale/Operate Blog" and "Read the Recap" CTAs currently point to `/docs` as a placeholder — the real blog posts are still in progress and will be swapped in once published. ## Review instructions 1. Run `pnpm --filter www dev` and visit `http://localhost:3000/go/ask-supabase-select`. 2. Confirm the three announcement cards, the four solution cards (hover/click highlight, no button chrome), and the closing features CTA all render and link correctly. ## Checklist - [x] I have read CONTRIBUTING.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) ## Summary by CodeRabbit * **New Features** * Added the “Ask Supabase” landing page, with product resources, documentation links, team-solution cards, and a blog post marked as coming soon. * **Improvements** * Hero descriptions now preserve line breaks for clearer text presentation. --------- Co-authored-by: Wendie Cheung Co-authored-by: Claude Sonnet 5 --- apps/www/_go/index.tsx | 2 + apps/www/_go/lead-gen/ask-supabase-select.tsx | 153 ++++++++++++++++++ .../marketing/src/go/sections/HeroSection.tsx | 2 +- 3 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 apps/www/_go/lead-gen/ask-supabase-select.tsx diff --git a/apps/www/_go/index.tsx b/apps/www/_go/index.tsx index 6cc7619d4c7..c64cc8c5cae 100644 --- a/apps/www/_go/index.tsx +++ b/apps/www/_go/index.tsx @@ -29,6 +29,7 @@ import stripeMeetingScheduler from './events/stripe-sessions-2026/meeting-schedu import stripeParty from './events/stripe-sessions-2026/party' import vercelShipSydneyContest from './events/vercel-ship-sydney-2026/contest' import vercelShipSydneyContestThankYou from './events/vercel-ship-sydney-2026/contest-thank-you' +import askSupabaseSelect from './lead-gen/ask-supabase-select' import awsActivateOffer from './lead-gen/aws-activate-offer' import exampleLeadGen from './lead-gen/example-lead-gen' import amoe from './legal/amoe' @@ -40,6 +41,7 @@ import supabasePipelinesNewDestinationsThankYou from './pre-release/supabase-pip import supabaseStripeProjects from './stripe-projects/supabase-stripe-projects' const pages: GoPageInput[] = [ + askSupabaseSelect, // maintain forever awsActivateOffer, // maintain forever exampleLeadGen, // sample lead gen page byocEarlyAccess, // maintain until PM says to remove diff --git a/apps/www/_go/lead-gen/ask-supabase-select.tsx b/apps/www/_go/lead-gen/ask-supabase-select.tsx new file mode 100644 index 00000000000..0a5858c10b8 --- /dev/null +++ b/apps/www/_go/lead-gen/ask-supabase-select.tsx @@ -0,0 +1,153 @@ +import { + BotIcon, + Building2Icon, + Code2Icon, + Hammer, + Maximize2, + ShieldCheck, + TrendingUpIcon, +} from 'lucide-react' +import type { GoPageInput } from 'marketing' +import Link from 'next/link' +import { Button } from 'ui' + +type Theme = { + name: string + description: string + cta: { label: string; href: string } + icon: typeof Hammer +} + +const themes: Theme[] = [ + { + name: 'Build anything', + description: + "Your agent sets up the backend from code, your users' agents work with your app through its own MCP server, and long-running tasks run in Supabase Compute.", + cta: { label: 'Read the Build Blog', href: '/docs' }, + icon: Hammer, + }, + { + name: 'Scale without limits', + description: + 'The app your agent built in minutes stays on the same Postgres, from prototype to petabyte.', + cta: { label: 'Read the Scale Blog', href: '/docs' }, + icon: Maximize2, + }, + { + name: 'Operate with confidence', + description: + 'Your agent finds the problem, tests the fix, and reports what it found. You decide what ships.', + cta: { label: 'Read the Operate Blog', href: '/docs' }, + icon: ShieldCheck, + }, +] + +const solutions = [ + { + name: 'AI Builders', + description: + 'Ship AI-powered apps with a Postgres backend built for agents. Your users get one integrated backend, so you spend time building instead of managing infrastructure.', + href: '/solutions/ai-builders', + icon: BotIcon, + }, + { + name: 'Startups', + description: + 'Move fast on a backend that scales with you. Spend your time on the product, not on managing infrastructure.', + href: '/solutions/startups', + icon: TrendingUpIcon, + }, + { + name: 'Developers', + description: + 'Get everything you need to build a backend, in one place. Database, Auth, Storage, and Realtime all run on the same Postgres platform, so you write less glue code.', + href: '/solutions/developers', + icon: Code2Icon, + }, + { + name: 'Enterprise', + description: + 'Run Supabase at scale with the security and support your team needs. Teams like GitHub and PwC trust Supabase to run their most important workloads.', + href: '/solutions/enterprise', + icon: Building2Icon, + }, +] + +const page: GoPageInput = { + template: 'lead-gen', + slug: 'ask-supabase-select', + metadata: { + title: 'Ask Supabase: Select 2026 announcements', + description: + 'Catch up on the product announcements from Supabase Select 2026, plus where to go next for your team.', + }, + hero: { + title: 'Build in an instant. Scale to infinity.', + subtitle: 'Ask Supabase', + description: 'Questions about what shipped?\nFind the Ask Supabase team on the show floor.', + ctas: [ + { + label: 'Read the Recap', + href: '/docs', + variant: 'secondary', + }, + ], + }, + sections: [ + { + type: 'three-column', + title: 'Our announcements', + description: '20+ announcements, catch up on every single one.', + children: ( + <> + {themes.map((theme) => ( +
+ +

{theme.name}

+

{theme.description}

+ +
+ ))} + + ), + }, + { + type: 'two-column', + title: 'Explore Supabase for your team', + children: ( + <> + {solutions.map((solution) => ( + + +

{solution.name}

+

{solution.description}

+ + ))} + + ), + }, + { + type: 'single-column', + title: 'Supabase features', + description: 'Everything you need to build and ship your next project.', + children: ( +
+ +
+ ), + }, + ], +} + +export default page diff --git a/packages/marketing/src/go/sections/HeroSection.tsx b/packages/marketing/src/go/sections/HeroSection.tsx index 0697c44d78e..be42bea529d 100644 --- a/packages/marketing/src/go/sections/HeroSection.tsx +++ b/packages/marketing/src/go/sections/HeroSection.tsx @@ -43,7 +43,7 @@ export default function HeroSection({ {section.description && (