mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
## What kind of change does this PR introduce? Bug fix. Follow-up to #41041 and DEPR-318. ## What is the current behavior? Marketing "Start your project" links go to `/dashboard`, which redirects unauthenticated users to `/org` and sets `returnTo=/org`. That value survives when they switch from sign-in to sign-up, so email verification still lands on the org list instead of org creation. ## What is the new behavior? - Sign-in's **Sign up** link rewrites `returnTo=/org` (and `/organizations`) to `/new` - Docs mobile menu, www homepage/product CTAs, and solution page CTAs link to `/dashboard/sign-up` for guests - Signed-in visitors get the dashboard URL instead, so they never hit the sign-up form - Shared `DASHBOARD_SIGN_UP_URL` / `getDashboardCtaHref` helpers for www Stacked on #41041. ## To test Stacked on #41041. The studio preview below includes both PRs. www and docs have their own previews. ### Studio: sign-in → sign-up rewrite Using the [studio-staging preview](https://studio-staging-git-dnywh-fixonboarding-return-to-supabase.vercel.app/) from Vercel checks: 1. Open the preview while logged out. It should land on `/dashboard/sign-in?returnTo=%2Forg` 2. Click **Sign up**. Expect the URL to include `returnTo=%2Fnew` ### Optional: www CTAs Using the [www preview](https://zone-www-dot-com-git-dnywh-fixonboarding-return-to-supabase.vercel.app/): 3. Logged out: homepage, product, or solutions **Start your project** should go to `/dashboard/sign-up` 4. Logged in: the same CTAs should go to `/dashboard` (not sign-up) (thought this will be hard if not impossible to test on staging) ### Optional: docs CTAs Using the [docs preview](https://docs-git-dnywh-fixonboarding-return-to-supabase.vercel.app/): 5. On mobile nav while logged out, click **Start your project**. Expect `/dashboard/sign-up` ### Compare on supabase.green Optional. Just to show what happens currently on `master`: 6. Open **supabase.green** while logged out, then click **Sign up** from `/dashboard/sign-in?returnTo=%2Forg`. `returnTo` should stay as `/org` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Start-project and sign-up links now direct visitors to registration while signed-in users continue to reach the dashboard. * Homepage, product, solution, and mobile navigation CTAs now provide consistent authentication-aware destinations. * Sign-up links preserve return destinations and existing navigation parameters. * **Bug Fixes** * Corrected mobile navigation and marketing CTA links that previously sent visitors to the dashboard root instead of the appropriate sign-up flow. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
311 lines
11 KiB
TypeScript
311 lines
11 KiB
TypeScript
import {
|
|
Check,
|
|
ClipboardCheck,
|
|
FolderLock,
|
|
HeartPulse,
|
|
Lightbulb,
|
|
List,
|
|
Lock,
|
|
ShieldAlert,
|
|
ShieldCheck,
|
|
Users,
|
|
UserX,
|
|
} from 'lucide-react'
|
|
import { DASHBOARD_SIGN_UP_URL } from '@/lib/dashboard-links'
|
|
import { PRODUCT_SHORTNAMES } from 'shared-data/products'
|
|
import { Image } from 'ui-patterns/Image'
|
|
|
|
import MainProducts from '../MainProducts'
|
|
import { getSharedSections } from './shared-sections'
|
|
import {
|
|
FrameworkLink,
|
|
type FeaturesSection,
|
|
type HeroSection,
|
|
type Metadata,
|
|
} from './solutions.utils'
|
|
import type { SecuritySectionProps } from '@/components/Enterprise/Security'
|
|
import { frameworks } from '@/components/Hero/HeroFrameworks'
|
|
import type { FeatureGridProps } from '@/components/Solutions/FeatureGrid'
|
|
import type { PlatformSectionProps } from '@/components/Solutions/PlatformSection'
|
|
import type { ResultsSectionProps } from '@/components/Solutions/ResultsSection'
|
|
import { TwoColumnsSectionProps } from '@/components/Solutions/TwoColumnsSection'
|
|
import { useSendTelemetryEvent } from '@/lib/telemetry'
|
|
|
|
const data: () => {
|
|
metadata: Metadata
|
|
heroSection: HeroSection
|
|
singleQuote: {
|
|
id: string
|
|
quote: {
|
|
text: string
|
|
author: string
|
|
role: string
|
|
link?: string
|
|
logo?: React.ReactElement
|
|
}
|
|
}
|
|
why: FeaturesSection
|
|
platform: PlatformSectionProps
|
|
developerExperience: ReturnType<typeof getSharedSections>['developerExperience']
|
|
resultsSection: ResultsSectionProps
|
|
featureGrid: FeatureGridProps
|
|
securitySection: SecuritySectionProps
|
|
platformStarterSection: TwoColumnsSectionProps
|
|
customerEvidence: {
|
|
id: string
|
|
heading: React.ReactNode
|
|
customers: Array<{
|
|
name: string
|
|
logo?: string
|
|
highlights: string[]
|
|
cta?: { label: string; href: string }
|
|
}>
|
|
}
|
|
} = () => {
|
|
const shared = getSharedSections()
|
|
const sendTelemetryEvent = useSendTelemetryEvent()
|
|
|
|
return {
|
|
metadata: {
|
|
metaTitle: 'Supabase for Financial Services',
|
|
metaDescription:
|
|
'Secure, compliant financial applications without the complexity. SOC 2, ACID transactions, real-time data, and audit trails built in.',
|
|
},
|
|
heroSection: {
|
|
id: 'hero',
|
|
title: 'Supabase for Financial Services',
|
|
h1: (
|
|
<>
|
|
<span className="block text-foreground">Secure, compliant financial applications</span>
|
|
<span className="block md:ml-0">without the complexity.</span>
|
|
</>
|
|
),
|
|
subheader: [
|
|
<>
|
|
Supabase is a Postgres development platform with SOC 2 certification, ACID transactions,
|
|
real-time data, and audit trails built in. Build for trading, payments, lending, and
|
|
embedded finance from one platform.
|
|
</>,
|
|
],
|
|
image: undefined,
|
|
ctas: [
|
|
{
|
|
label: 'Start your project',
|
|
href: DASHBOARD_SIGN_UP_URL,
|
|
type: 'primary' as any,
|
|
onClick: () =>
|
|
sendTelemetryEvent({
|
|
action: 'start_project_button_clicked',
|
|
properties: { buttonLocation: 'Solutions: FinServ page hero' },
|
|
}),
|
|
},
|
|
{
|
|
label: 'Request a demo',
|
|
href: 'https://supabase.com/contact/sales',
|
|
type: 'default' as any,
|
|
onClick: () =>
|
|
sendTelemetryEvent({
|
|
action: 'request_demo_button_clicked',
|
|
properties: { buttonLocation: 'Solutions: FinServ page hero' },
|
|
}),
|
|
},
|
|
],
|
|
},
|
|
singleQuote: {
|
|
id: 'social-proof',
|
|
quote: {
|
|
text: 'We wanted a backend that could accelerate our development while maintaining security and scalability. Supabase stood out due to its automation, integrations, and ecosystem.',
|
|
author: 'Raunak Kathuria',
|
|
role: 'VP of Engineering, Deriv',
|
|
link: '/customers/deriv',
|
|
logo: (
|
|
<>
|
|
<Image
|
|
src="/images/customers/logos/on-light/deriv.png"
|
|
alt="Deriv"
|
|
width={128}
|
|
height={48}
|
|
className="object-contain w-24 md:w-32 dark:hidden"
|
|
/>
|
|
<Image
|
|
src="/images/customers/logos/on-dark/deriv.png"
|
|
alt="Deriv"
|
|
width={128}
|
|
height={48}
|
|
className="object-contain w-24 md:w-32 hidden dark:block"
|
|
/>
|
|
</>
|
|
),
|
|
},
|
|
},
|
|
why: {
|
|
id: 'why-supabase',
|
|
label: '',
|
|
heading: (
|
|
<>
|
|
Why <span className="text-foreground">financial services companies</span> choose Supabase
|
|
</>
|
|
),
|
|
subheading: 'Build secure, scalable financial applications using a trusted data platform.',
|
|
features: [
|
|
{
|
|
id: 'compliance',
|
|
icon: ShieldCheck,
|
|
heading: 'Compliance you can prove, not just claim.',
|
|
subheading:
|
|
'SOC 2 Type II certified with comprehensive audit logs, encryption at rest and in transit, and database-level access controls. Meet regulatory requirements with infrastructure that documents every action automatically.',
|
|
},
|
|
{
|
|
id: 'transactional-integrity',
|
|
icon: Check,
|
|
heading: 'Transactional integrity at every layer.',
|
|
subheading:
|
|
'Postgres provides full ACID compliance for settlements, reversals, and multi-step financial operations. No partial writes, no eventual consistency surprises. Your ledger stays correct.',
|
|
},
|
|
{
|
|
id: 'realtime-data',
|
|
icon: MainProducts[PRODUCT_SHORTNAMES.REALTIME].icon,
|
|
heading: 'Real-time data for real-time decisions.',
|
|
subheading:
|
|
'Process transactions, detect fraud signals, and push updates to dashboards as they happen. Realtime subscriptions and Edge Functions give your applications the speed financial workloads demand.',
|
|
},
|
|
],
|
|
},
|
|
platform: {
|
|
...shared.platform,
|
|
title: (
|
|
<>
|
|
Supabase is the <span className="text-foreground">SOC 2-compliant Postgres platform</span>{' '}
|
|
you control
|
|
</>
|
|
),
|
|
subheading:
|
|
'Supabase includes everything you need to build secure, compliant financial applications.',
|
|
},
|
|
developerExperience: shared.developerExperience,
|
|
resultsSection: shared.resultsSection,
|
|
featureGrid: shared.featureGrid,
|
|
securitySection: {
|
|
id: 'security',
|
|
label: 'Security',
|
|
heading: (
|
|
<>
|
|
Trusted for{' '}
|
|
<span className="text-foreground">financial solutions and transactions of all types</span>
|
|
</>
|
|
),
|
|
subheading:
|
|
"Keep your data secure with SOC 2, HIPAA, and GDPR compliance. Your customers' data is encrypted at rest and in transit, with built-in tools for monitoring and managing security threats.",
|
|
features: [
|
|
{ icon: ShieldCheck, heading: 'SOC 2 Type II certified' },
|
|
{ icon: HeartPulse, heading: 'HIPAA compliant' },
|
|
{ icon: ShieldAlert, heading: 'DDoS Protection' },
|
|
{ icon: Lock, heading: 'Multi-factor Authentication' },
|
|
{ icon: ClipboardCheck, heading: 'Vulnerability Management' },
|
|
{ icon: Users, heading: 'Role-based access control' },
|
|
{ icon: List, heading: 'Database Audit Logs' },
|
|
{ icon: Lightbulb, heading: 'Security Advisors' },
|
|
{ icon: FolderLock, heading: 'Encrypted Storage' },
|
|
{ icon: UserX, heading: 'Network restrictions' },
|
|
],
|
|
cta: {
|
|
label: 'Learn about security',
|
|
url: '/security',
|
|
},
|
|
},
|
|
platformStarterSection: {
|
|
id: 'quickstarts',
|
|
heading: (
|
|
<>
|
|
<span className="text-foreground">Choose your platform</span> to start building in seconds
|
|
</>
|
|
),
|
|
headingRight: (
|
|
<>
|
|
Or, start with <span className="text-foreground">Supabase AI Prompts</span>
|
|
</>
|
|
),
|
|
docsUrl: 'https://supabase.com/docs/guides/getting-started/ai-prompts',
|
|
leftFooter: (
|
|
<div className="grid grid-cols-5 divide-x divide-y rounded-lg overflow-hidden border">
|
|
{frameworks.map((framework) => (
|
|
<FrameworkLink key={framework.name} framework={framework} />
|
|
))}
|
|
</div>
|
|
),
|
|
aiPrompts: [
|
|
{
|
|
id: 'auth-setup',
|
|
title: 'Bootstrap Next.js app with Supabase Auth',
|
|
code: 'Set up Supabase Auth with Next.js: install @supabase/supabase-js and @supabase/ssr, configure environment variables, create browser and server clients, and add middleware for token refresh.',
|
|
language: 'markdown',
|
|
docsUrl:
|
|
'https://supabase.com/docs/guides/getting-started/ai-prompts/nextjs-supabase-auth',
|
|
},
|
|
{
|
|
id: 'rls-policies',
|
|
title: 'Create RLS policies',
|
|
code: 'Generate Row Level Security policies for secure access control. Retrieve your schema, then write policies that restrict access to sensitive data based on user roles and auth.uid().',
|
|
language: 'markdown',
|
|
docsUrl:
|
|
'https://supabase.com/docs/guides/getting-started/ai-prompts/database-rls-policies',
|
|
},
|
|
],
|
|
},
|
|
customerEvidence: {
|
|
id: 'case-studies',
|
|
heading: (
|
|
<>
|
|
Customer <span className="text-foreground">stories</span>
|
|
</>
|
|
),
|
|
customers: [
|
|
{
|
|
name: 'Deriv',
|
|
logo: '/images/customers/logos/on-light/deriv.png',
|
|
highlights: [
|
|
'Accelerating online trading with scalable Postgres',
|
|
'Automation, integrations, and ecosystem',
|
|
],
|
|
cta: { label: 'Read the case study', href: '/customers/deriv' },
|
|
},
|
|
{
|
|
name: 'Bree',
|
|
logo: '/images/customers/logos/on-light/bree.png',
|
|
highlights: [
|
|
'10X performance gains when switching from Fauna',
|
|
'Greater developer velocity and AI-ready foundation',
|
|
],
|
|
cta: { label: 'Read the case study', href: '/customers/bree' },
|
|
},
|
|
{
|
|
name: 'Next Door Lending',
|
|
logo: '/images/customers/logos/on-light/next-door-lending.png',
|
|
highlights: [
|
|
'Top 10 mortgage broker with Supabase',
|
|
'Leveraged Postgres for lending workflows',
|
|
],
|
|
cta: { label: 'Read the case study', href: '/customers/next-door-lending' },
|
|
},
|
|
{
|
|
name: 'Rally',
|
|
logo: '/images/customers/logos/on-light/rally.png',
|
|
highlights: ['Building financial applications on Supabase'],
|
|
cta: { label: 'Read the case study', href: '/customers/rally' },
|
|
},
|
|
{
|
|
name: 'Xendit',
|
|
logo: '/images/customers/logos/on-light/xendit.png',
|
|
highlights: [
|
|
'Full solution shipped to production in less than one week',
|
|
'Payment processor with transaction verification',
|
|
],
|
|
cta: { label: 'Read the case study', href: '/customers/xendit' },
|
|
},
|
|
],
|
|
},
|
|
}
|
|
}
|
|
|
|
export default data
|