From b4da1f8f423841ae9df3e153c7f5fa03411c4f96 Mon Sep 17 00:00:00 2001 From: Alan Daniel Date: Thu, 29 Jan 2026 11:23:08 -0400 Subject: [PATCH] Implement new enterprise innovation solution page (#42230) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## Summary by CodeRabbit * **New Features** * AI Builder Ecosystem section showcasing integrated partners and tools. * Customer Evidence section featuring customer testimonials and success stories. * Innovation Enablement section with implementation resources and strategic options. * Customer testimonial and quote components throughout the page. * Enhanced Innovation Teams page positioning focused on AI development. ✏️ Tip: You can customize this high-level summary in your review settings. --- apps/www/data/solutions/innovation-teams.tsx | 377 +++++++++++------- apps/www/pages/solutions/innovation-teams.tsx | 259 ++++++++++++ .../images/customers/logos/accenture.svg | 3 + 3 files changed, 500 insertions(+), 139 deletions(-) create mode 100644 apps/www/public/images/customers/logos/accenture.svg 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: ( + Seth Siegler + ), + }, + 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: ( - Foreign Data Wrappers - ), - }, - { - 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/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} +

+
    + {data.aiBuilderEcosystem.builders.map( + (builder: { name: string; description: string }) => ( +
  • + +
    + {builder.name} + : {builder.description} +
    +
  • + ) + )} +
+

+ No configuration. No complexity. It just works. +

+
+ + {/* Right column - Visual */} +
+ {/* Supabase Logo */} +
+ Supabase +
+ + {/* SVG Lines */} + + + + + + + + + {/* Provider Logos Bar */} +
+ Lovable + Bolt + v0 + Figma + Tempo +
+
+
+
+ )} { 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} +

+ +
+ {index < data.innovationEnablement.options.length - 1 && ( +
+ + + +
+ )} +
+ ) + )} +
+
+ )} {data.platformStarterSection && } {data.mcp && } 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 @@ + + +