mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 01:45:10 +03:00
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Feature ## What is the current behavior? Region and data residency information is split across docs, `/security`, and legal pages. [MARKET-1866](https://linear.app/supabase/issue/MARKET-1866/package-and-display-available-regions-better-on-website) ## What is the new behavior? Adds `/regions`: a catalog of all 17 regions generated from `regions.ts`, plus what stays in-region, the Europe vs EU caveat, and links to the DPA, GDPR guide, sub-processor list, and security page. Regions is in the footer under Security & Compliance. The security page residency card now links here. ## Test plan - [ ] Open `/regions` in light and dark mode - [ ] Confirm the region count and list match `packages/shared-data/regions.ts` - [ ] Confirm footer Regions link and `/security` residency link go to `/regions` Made with [Cursor](https://cursor.com) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added a Regions page showcasing available AWS regions by geography. - Added an interactive map and region list with selection, hover states, keyboard accessibility, and residency badges. - Included data residency guidance, legal resources, and a call-to-action for next steps. - Added Regions links in the site footer and security documentation. - **Documentation** - Updated agent skill resources with expanded troubleshooting and operational guidance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
219 lines
4.0 KiB
TypeScript
219 lines
4.0 KiB
TypeScript
import {
|
|
appTypeSolutions,
|
|
migrationSolutions,
|
|
skillBasedSolutions,
|
|
useCaseSolutions,
|
|
} from 'data/Solutions'
|
|
import { PrivacySettings } from 'ui-patterns/PrivacySettings'
|
|
|
|
const footerData = [
|
|
{
|
|
title: 'Product',
|
|
links: [
|
|
{
|
|
text: 'Pricing',
|
|
url: '/pricing',
|
|
},
|
|
{
|
|
text: 'Database',
|
|
url: '/database',
|
|
},
|
|
{
|
|
text: 'Auth',
|
|
url: '/auth',
|
|
},
|
|
{
|
|
text: 'Functions',
|
|
url: '/edge-functions',
|
|
},
|
|
{
|
|
text: 'Realtime',
|
|
url: '/realtime',
|
|
},
|
|
{
|
|
text: 'Storage',
|
|
url: '/storage',
|
|
},
|
|
{
|
|
text: 'Vector',
|
|
url: '/modules/vector',
|
|
},
|
|
{
|
|
text: 'Cron',
|
|
url: '/modules/cron',
|
|
},
|
|
{
|
|
text: 'Feature Catalog',
|
|
url: '/features',
|
|
},
|
|
{
|
|
text: 'Launch Week',
|
|
url: '/launch-week',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'Solutions',
|
|
links: [
|
|
...skillBasedSolutions.solutions.map((solution) => ({
|
|
text: solution.text,
|
|
url: solution.url,
|
|
})),
|
|
...useCaseSolutions.solutions.map((solution) => ({
|
|
text: solution.text,
|
|
url: solution.url,
|
|
})),
|
|
...appTypeSolutions.solutions.map((solution) => ({
|
|
text: solution.text,
|
|
url: solution.url,
|
|
})),
|
|
...migrationSolutions.solutions.map((solution) => ({
|
|
text: solution.text,
|
|
url: solution.url,
|
|
})),
|
|
],
|
|
},
|
|
{
|
|
title: 'Resources',
|
|
links: [
|
|
{
|
|
text: 'Blog',
|
|
url: '/blog',
|
|
},
|
|
{
|
|
text: 'Support',
|
|
url: '/support',
|
|
},
|
|
{
|
|
text: 'System Status',
|
|
url: 'https://status.supabase.com/',
|
|
},
|
|
{
|
|
text: 'Become a Partner',
|
|
url: '/partners',
|
|
},
|
|
{
|
|
text: 'Partner Catalog',
|
|
url: '/partners/catalog',
|
|
},
|
|
{
|
|
text: 'Brand Assets',
|
|
url: '/brand-assets',
|
|
},
|
|
{
|
|
text: 'Security & Compliance',
|
|
url: '/security',
|
|
},
|
|
{
|
|
text: 'Regions',
|
|
url: '/regions',
|
|
},
|
|
{
|
|
text: 'SOC2',
|
|
url: '/security',
|
|
},
|
|
{
|
|
text: 'HIPAA',
|
|
url: 'https://forms.supabase.com/hipaa2',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'Developers',
|
|
links: [
|
|
{
|
|
text: 'Documentation',
|
|
url: '/docs',
|
|
},
|
|
{
|
|
text: 'Supabase Library',
|
|
url: 'https://supabase.com/library',
|
|
},
|
|
{
|
|
text: 'Changelog',
|
|
url: '/changelog',
|
|
},
|
|
{
|
|
text: 'RSS',
|
|
url: '/rss.xml',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'Community',
|
|
links: [
|
|
{
|
|
text: 'Events & Webinars',
|
|
url: '/events',
|
|
},
|
|
{
|
|
text: 'SupaSquad',
|
|
url: '/supasquad',
|
|
},
|
|
{
|
|
text: 'Contributing',
|
|
url: 'https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md',
|
|
},
|
|
{
|
|
text: 'Open Source',
|
|
url: '/open-source',
|
|
},
|
|
{
|
|
text: 'DevTo',
|
|
url: 'https://dev.to/supabase',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'Company',
|
|
links: [
|
|
{
|
|
text: 'Company',
|
|
url: '/company',
|
|
},
|
|
{
|
|
text: 'Careers',
|
|
url: '/careers',
|
|
},
|
|
{
|
|
text: 'General Availability',
|
|
url: '/ga',
|
|
},
|
|
{
|
|
text: 'Legal Hub',
|
|
url: '/legal',
|
|
},
|
|
{
|
|
text: 'Privacy Policy',
|
|
url: '/privacy',
|
|
},
|
|
{
|
|
text: 'Privacy Settings',
|
|
component: PrivacySettings,
|
|
},
|
|
{
|
|
text: 'Acceptable Use Policy',
|
|
url: '/aup',
|
|
},
|
|
{
|
|
text: 'Humans.txt',
|
|
url: '/humans.txt',
|
|
},
|
|
{
|
|
text: 'Lawyers.txt',
|
|
url: '/lawyers.txt',
|
|
},
|
|
{
|
|
text: 'Security.txt',
|
|
url: '/.well-known/security.txt',
|
|
},
|
|
{
|
|
text: 'Contact Us',
|
|
url: '/contact-us',
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
export default footerData
|