From 76a9ba968c9145d85d6c1b4f643df61719a01847 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <209825114+claude[bot]@users.noreply.github.com> Date: Thu, 30 Jul 2026 14:05:46 +0200 Subject: [PATCH] refactor(www): unify legal page shells and versioning (#48483) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _Requested by **Francesco Sansalvadore, Nicole Kramer** · [Slack thread](https://supabase.slack.com/archives/C0161K73J1J/p1785399057853249?thread_ts=1785399057.853249&cid=C0161K73J1J)_ ## 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? Refactor of the marketing site's legal pages, plus two small content fixes (removal of duplicated dates, two heading corrections) and two permanent redirects. ## What is the current behavior? The documents linked from the Legal Hub are built three different ways: - `/terms` and `/enterprise-terms` render a plain inline heading with no breadcrumbs. - `/sla`, `/support-policy`, `/aup` and `/privacy` are standalone MDX pages carrying their own layout. - `/legal/dpa` has a one-off centered heading and grid of its own. On top of that, the documents that already have a version selector *also* print a "Last Modified" line inside the document body, so the same fact is stated twice on the page. On `/terms` and `/enterprise-terms` the two statements disagree: the selector says "Version 2 — May 6, 2026" while the body says "Last Modified: 1 May 2026". `/privacy` handles its history differently again — earlier versions live at their own archived URLs (`/privacy-260316` and `/privacy-250528`), strung together by "Previous Version" links at the bottom of each page. ## What is the new behavior? Every legal page now renders through one shell: `PageHeader` with a `PageBreadcrumb`, so the Legal Hub is one click away from any document. - The duplicate "Last Modified" rows are removed from the five versioned documents. The version selector is now the single place a date appears. - `/aup` and `/privacy` gain the version selector. - `/privacy`'s three historical versions are now selectable from the one page, and the two old archived URLs permanently redirect to it. - `/sla` and `/support-policy` pick up the shell and breadcrumbs but intentionally show neither a date nor a selector — neither document has ever carried one, and Legal asked that the SLA stay that way for now. Implementation-wise the canonical pattern is the one the Data Processing Addendum page was already using: `DefaultLayout` > `NextSeo` > `PageHeader` (with a `breadcrumb` slot) > `MDXProvider` > `SectionContainer className="prose"` > `LegalDocVersions`. The standalone MDX pages were moved to `apps/www/data/legal//vN.mdx` as bare content partials, with a new TSX shell taking over the original route. No route changed except the two archived privacy pages, which redirect. Dates were carried across from the "Last Modified" lines being deleted rather than invented: `/aup` becomes Version 1 — June 1, 2026, and privacy v1/v2/v3 become May 28 2025, March 16 2026 and May 13 2026. ## Additional context **This is a stacked PR.** It is sequenced behind three PRs that touch the same files and should land first: the Terms of Service v3 bump, the Enterprise SaaS Subscription Agreement v3 bump, and #48481 (DPA effective date → August 1, 2026). #48481 edits the very "Last Modified" line this PR removes from the DPA content file, so a trivial conflict there is expected. This branch will be rebased onto master before it leaves draft. **Two contracts now contain a clause that no longer describes the page.** `apps/www/data/legal/terms/v1.mdx` and `v2.mdx` — and the same sentence in the MPPA and both integration-partner addenda — still read "The date on which the Agreement was last modified will be updated at the top of this Agreement". There is no longer a date in the document body; it sits in the version selector above it. Left untouched here because it is contract text, but Legal should re-word it. **The date mismatch is resolved in favour of the selector.** On `/terms` and `/enterprise-terms`, deleting the body line leaves May 6, 2026 as the only date on the page. Nicole Kramer confirmed in Slack that May 6 is the correct date. **Two headings change visibly**, to line up with the labels used on the Legal Hub: "Terms of service" → "Terms of Service", and "Service Level Agreements" → "Service Level Agreement". **`/legal/dpa` now looks almost identical to `/legal/customer-resources/data-processing-addendum`** — same heading, same breadcrumb, different content. The legacy page is a PDF download plus a signing flow and was deliberately left live, but the overlap is more obvious than it was. Redirecting it to the versioned page is the natural follow-up; it is not done here. **Build verification was incomplete in this environment.** `pnpm install` could not finish because `npm.jsr.io` is blocked by network policy (403), so `next build` never gave a real signal. What did run and pass: - `tsc --noEmit` on `apps/www`, with output byte-identical to clean master - ESLint on every changed file — 0 errors - Prettier using the repo's actual config - a direct MDX compile of all 14 `data/legal/**/*.mdx` files using the app's own MDX options The one thing left unverified is webpack resolving `ui-patterns/PrivacySettings` from the privacy content's new directory. CI will confirm that. Co-authored-by: Claude --- .../{pages/aup.mdx => data/legal/aup/v1.mdx} | 18 --- .../data-processing-addendum/v1.mdx | 2 - apps/www/data/legal/enterprise-terms/v1.mdx | 2 - apps/www/data/legal/enterprise-terms/v2.mdx | 2 - apps/www/data/legal/enterprise-terms/v3.mdx | 2 - .../legal/privacy/v1.mdx} | 19 ---- .../legal/privacy/v2.mdx} | 19 ---- .../privacy.mdx => data/legal/privacy/v3.mdx} | 20 ---- .../{pages/sla.mdx => data/legal/sla/v1.mdx} | 16 --- .../legal/support-policy/v1.mdx} | 16 --- apps/www/data/legal/terms/v1.mdx | 2 - apps/www/data/legal/terms/v2.mdx | 2 - apps/www/data/legal/terms/v3.mdx | 2 - apps/www/lib/redirects.js | 10 ++ apps/www/pages/aup.tsx | 35 ++++++ apps/www/pages/enterprise-terms.tsx | 15 ++- apps/www/pages/legal/dpa.tsx | 107 ++++++++++-------- apps/www/pages/privacy.tsx | 39 +++++++ apps/www/pages/sla.tsx | 37 ++++++ apps/www/pages/support-policy.tsx | 37 ++++++ apps/www/pages/terms.tsx | 22 +++- 21 files changed, 242 insertions(+), 182 deletions(-) rename apps/www/{pages/aup.mdx => data/legal/aup/v1.mdx} (93%) rename apps/www/{pages/privacy-250528.mdx => data/legal/privacy/v1.mdx} (99%) rename apps/www/{pages/privacy-260316.mdx => data/legal/privacy/v2.mdx} (99%) rename apps/www/{pages/privacy.mdx => data/legal/privacy/v3.mdx} (99%) rename apps/www/{pages/sla.mdx => data/legal/sla/v1.mdx} (97%) rename apps/www/{pages/support-policy.mdx => data/legal/support-policy/v1.mdx} (92%) create mode 100644 apps/www/pages/aup.tsx create mode 100644 apps/www/pages/privacy.tsx create mode 100644 apps/www/pages/sla.tsx create mode 100644 apps/www/pages/support-policy.tsx diff --git a/apps/www/pages/aup.mdx b/apps/www/data/legal/aup/v1.mdx similarity index 93% rename from apps/www/pages/aup.mdx rename to apps/www/data/legal/aup/v1.mdx index 22a8f22d7f2..3413a578dfe 100644 --- a/apps/www/pages/aup.mdx +++ b/apps/www/data/legal/aup/v1.mdx @@ -1,17 +1,3 @@ -import Layout from '../layouts/Layout' -import SectionContainer from '../components/Layouts/SectionContainer' - -export const meta = { - title: 'Acceptable Use Policy | Supabase', - description: 'Supabase Acceptable Use Policy', -} - - - -# Acceptable Use Policy - -_Last Modified: 1 June 2026_ - This Acceptable Use Policy (this "Policy") describes prohibited uses of the web services offered by Supabase, Inc. and its affiliates (the "Services") and the website located at https://supabase.com (the "Supabase Site"). By using the Services or accessing the Supabase Site, you agree to the latest version of this Policy. Violation of this Policy may result in the immediate suspension or termination of your Accounts and / or Services. @@ -61,7 +47,3 @@ By using the Services or accessing the Supabase Site, you agree to the latest ve ## 7. Reporting Violations Report violations to legal@supabase.io or abuse@supabase.io - - - -export default (context) => diff --git a/apps/www/data/legal/customer-resources/data-processing-addendum/v1.mdx b/apps/www/data/legal/customer-resources/data-processing-addendum/v1.mdx index a62a4bbb4dd..70d330bc66a 100644 --- a/apps/www/data/legal/customer-resources/data-processing-addendum/v1.mdx +++ b/apps/www/data/legal/customer-resources/data-processing-addendum/v1.mdx @@ -1,5 +1,3 @@ -_Last Modified: 1 August 2026_ - This Data Processing Addendum (the “**DPA**”) supplements and forms part of the Supabase Terms of Service available at [https://supabase.com/terms](https://supabase.com/terms), or such other agreement entered into between the Customer and Supabase Pte. Ltd (“**Supabase**”) relevant to Customer’s use of the Services (the “**Agreement**”), and in case of any conflict, supersedes the Agreement in relation to the transfer and processing of Covered Data in connection with the performance of the Services. This DPA is effective as of the Effective Date of the Agreement. ## 1. Definitions. diff --git a/apps/www/data/legal/enterprise-terms/v1.mdx b/apps/www/data/legal/enterprise-terms/v1.mdx index fdc28888efc..96a74df6584 100644 --- a/apps/www/data/legal/enterprise-terms/v1.mdx +++ b/apps/www/data/legal/enterprise-terms/v1.mdx @@ -1,5 +1,3 @@ -_Last Modified: 17 April 2026_ - This Enterprise SaaS Subscription Agreement (this "**Agreement**") is entered into by and between the customer identified in the signature to the Order which references these terms ("**Customer**") and the Supabase Affiliate entity identified in such Order ("**Supabase**") (Customer and Supabase each, a "**Party**" and collectively, the "**Parties**"), and is effective as of the Services Start Date identified in such Order ("**Effective Date**"), and sets forth the terms and conditions under which Customer may subscribe to certain products and services of Supabase as set forth in one or more Orders (defined below). ## 1. Definitions. diff --git a/apps/www/data/legal/enterprise-terms/v2.mdx b/apps/www/data/legal/enterprise-terms/v2.mdx index b4824d2ae44..b12c8af2104 100644 --- a/apps/www/data/legal/enterprise-terms/v2.mdx +++ b/apps/www/data/legal/enterprise-terms/v2.mdx @@ -1,5 +1,3 @@ -_Last Modified: 1 May 2026_ - This Enterprise SaaS Subscription Agreement (this "**Agreement**") is entered into by and between the customer identified in the signature block below ("**Customer**") and Supabase, Pte. Ltd., as subsidiary of Supabase, Inc., a Delaware corporation ("**Supabase**") (Customer and Supabase each, a "**Party**" and collectively, the "**Parties**"), effective as of [Deal.CloseDate] ("**Effective Date**"), and sets forth the terms and conditions under which Customer may subscribe to certain products and services of Supabase as set forth in one or more Orders (defined below). **Accepted and agreed to as of the Effective Date by the authorized representative of each Party by Customer's entering into an Order referencing this Agreement.** diff --git a/apps/www/data/legal/enterprise-terms/v3.mdx b/apps/www/data/legal/enterprise-terms/v3.mdx index c156a7e28cb..538c559648c 100644 --- a/apps/www/data/legal/enterprise-terms/v3.mdx +++ b/apps/www/data/legal/enterprise-terms/v3.mdx @@ -1,5 +1,3 @@ -_Last Modified: 1 August 2026_ - This Enterprise SaaS Subscription Agreement (this "**Agreement**") is entered into by and between the customer identified in the signature block in an Order ("**Customer**") and Supabase, Pte. Ltd., as subsidiary of Supabase, Inc., a Delaware corporation ("**Supabase**") (Customer and Supabase each, a "**Party**" and collectively, the "**Parties**"), effective as of the date of last signature of an Order referencing these terms ("**Effective Date**"), and sets forth the terms and conditions under which Customer may subscribe to certain products and services of Supabase as set forth in one or more Orders (defined below). **Accepted and agreed to as of the Effective Date by the authorized representative of each Party by Customer's entering into an Order referencing this Agreement.** diff --git a/apps/www/pages/privacy-250528.mdx b/apps/www/data/legal/privacy/v1.mdx similarity index 99% rename from apps/www/pages/privacy-250528.mdx rename to apps/www/data/legal/privacy/v1.mdx index fca8be6f97c..62f973893f7 100644 --- a/apps/www/pages/privacy-250528.mdx +++ b/apps/www/data/legal/privacy/v1.mdx @@ -1,20 +1,5 @@ -import Layout from '../layouts/Layout' -import SectionContainer from '../components/Layouts/SectionContainer' import { PrivacySettings } from 'ui-patterns/PrivacySettings' -export const meta = { - title: 'Privacy Policy | Supabase', - description: 'Supabase Privacy Policy', -} - - - -# Privacy Policy - -_Last Modified: 28 May 2025_ - -Previous Version: [14 March 2025](/privacy-250314) - Thank you for your interest in Supabase, Inc., ("**_Supabase_**," "**_we_**", "**_our_**" or "**_us_**"). Supabase provides a suite of open source tools, stitched together to build a seamless developer experience. This Privacy Notice explains how information about you, that directly identifies you, or that makes you identifiable ("**_personal information_**") is collected, used and disclosed by Supabase in connection with our website at [supabase.com](https://supabase.com) (the "**_Site_**") and our services offered in connection with the Site (collectively with the Site, the "**_Service_**"). ## What Does This Privacy Notice Apply To? @@ -343,7 +328,3 @@ Most browsers also allow you to change your cookie settings to block certain coo If you would like to find out more about cookies and other similar technologies, please visit [allaboutcookies.org](http://www.allaboutcookies.org). Please note that deleting or blocking cookies may not be effective for all types of tracking technologies, such as Local Storage Objects (LSOs) like HTML5. - - - -export default (context) => diff --git a/apps/www/pages/privacy-260316.mdx b/apps/www/data/legal/privacy/v2.mdx similarity index 99% rename from apps/www/pages/privacy-260316.mdx rename to apps/www/data/legal/privacy/v2.mdx index e74d25cde71..a4f433b0293 100644 --- a/apps/www/pages/privacy-260316.mdx +++ b/apps/www/data/legal/privacy/v2.mdx @@ -1,20 +1,5 @@ -import Layout from '../layouts/Layout' -import SectionContainer from '../components/Layouts/SectionContainer' import { PrivacySettings } from 'ui-patterns/PrivacySettings' -export const meta = { - title: 'Privacy Policy | Supabase', - description: 'Supabase Privacy Policy', -} - - - -# Privacy Policy - -_Last Modified: 16 March 2026_ - -Previous Version: [28 May 2025](/privacy-250528) - Thank you for your interest in Supabase, Inc., ("**_Supabase_**," "**_we_**", "**_our_**" or "**_us_**"). Supabase provides a suite of open source tools, stitched together to build a seamless developer experience. This Privacy Notice explains how information about you, that directly identifies you, or that makes you identifiable ("**_personal information_**") is collected, used and disclosed by Supabase in connection with our website at [supabase.com](https://supabase.com) (the "**_Site_**") and our services offered in connection with the Site (collectively with the Site, the "**_Service_**"). ## What Does This Privacy Notice Apply To? @@ -346,7 +331,3 @@ Most browsers also allow you to change your cookie settings to block certain coo If you would like to find out more about cookies and other similar technologies, please visit [allaboutcookies.org](http://www.allaboutcookies.org). Please note that deleting or blocking cookies may not be effective for all types of tracking technologies, such as Local Storage Objects (LSOs) like HTML5. - - - -export default (context) => diff --git a/apps/www/pages/privacy.mdx b/apps/www/data/legal/privacy/v3.mdx similarity index 99% rename from apps/www/pages/privacy.mdx rename to apps/www/data/legal/privacy/v3.mdx index a462e70b58c..6e4fcc79f8d 100644 --- a/apps/www/pages/privacy.mdx +++ b/apps/www/data/legal/privacy/v3.mdx @@ -1,21 +1,5 @@ import { PrivacySettings } from 'ui-patterns/PrivacySettings' -import SectionContainer from '../components/Layouts/SectionContainer' -import Layout from '../layouts/Layout' - -export const meta = { - title: 'Privacy Policy | Supabase', - description: 'Supabase Privacy Policy', -} - - - -# Privacy Policy - -_Last Modified: 13 May 2026_ - -Previous Version: [16 March 2026](/privacy-260316) - Thank you for your interest in Supabase, Inc., ("**_Supabase_**," "**_we_**", "**_our_**" or "**_us_**"). Supabase provides a suite of open source tools, stitched together to build a seamless developer experience. This Privacy Notice explains how information about you, that directly identifies you, or that makes you identifiable ("**_personal information_**") is collected, used and disclosed by Supabase in connection with our website at [supabase.com](https://supabase.com) (the "**_Site_**") and our services offered in connection with the Site (collectively with the Site, the "**_Service_**"). ## What Does This Privacy Notice Apply To? @@ -349,7 +333,3 @@ Most browsers also allow you to change your cookie settings to block certain coo If you would like to find out more about cookies and other similar technologies, please visit [allaboutcookies.org](http://www.allaboutcookies.org). Please note that deleting or blocking cookies may not be effective for all types of tracking technologies, such as Local Storage Objects (LSOs) like HTML5. - - - -export default (context) => diff --git a/apps/www/pages/sla.mdx b/apps/www/data/legal/sla/v1.mdx similarity index 97% rename from apps/www/pages/sla.mdx rename to apps/www/data/legal/sla/v1.mdx index e69876d16ce..7a1cbb01058 100644 --- a/apps/www/pages/sla.mdx +++ b/apps/www/data/legal/sla/v1.mdx @@ -1,15 +1,3 @@ -import Layout from '../layouts/Layout' -import SectionContainer from '../components/Layouts/SectionContainer' - -export const meta = { - title: 'Service Level Agreement | Supabase', - description: 'Supabase Service Level Agreement', -} - - - -# Service Level Agreements - ## Enterprise Platform Uptime SLA The following Service Level Agreement, which is incorporated into and forms part of the Subscription Agreement between Supabase, Inc. ("Supabase") and Customer (the "Agreement"), will apply to the Services for Enterprise Customers specified in an Order Form during the applicable Subscription Term. @@ -370,7 +358,3 @@ An Information request about Supabase or feature request. | 4. Low | 2 business days
Monday - Friday | 2 business days
Monday - Friday | 24 hours
24/7 x 365 | Business hours are 6am to 6pm local time unless stated otherwise. - -
- -export default (context) => diff --git a/apps/www/pages/support-policy.mdx b/apps/www/data/legal/support-policy/v1.mdx similarity index 92% rename from apps/www/pages/support-policy.mdx rename to apps/www/data/legal/support-policy/v1.mdx index 9decc3cba6a..95a71a9cdfe 100644 --- a/apps/www/pages/support-policy.mdx +++ b/apps/www/data/legal/support-policy/v1.mdx @@ -1,15 +1,3 @@ -import SectionContainer from '../components/Layouts/SectionContainer' -import Layout from '../layouts/Layout' - -export const meta = { - title: 'Support Policy', - description: 'Supabase Support Policy', -} - - - -# Support Policy - Supabase is dedicated to providing an exceptional customer experience. As a crucial aspect of this commitment, we offer limited technical support for all paid projects running on our hosted Supabase platform. Technical support is confined to the scope, hours, contacts, and channels below. @@ -77,7 +65,3 @@ In the event of a platform issue, a notice will be posted on our platform status Please contact us to find out about our Premium Support options available for Team Plan and Enterprise customers using the form below: [https://forms.supabase.com/enterprise](https://forms.supabase.com/enterprise) - - - -export default (context) => diff --git a/apps/www/data/legal/terms/v1.mdx b/apps/www/data/legal/terms/v1.mdx index 328f7cbdd49..8205b0cd15f 100644 --- a/apps/www/data/legal/terms/v1.mdx +++ b/apps/www/data/legal/terms/v1.mdx @@ -1,5 +1,3 @@ -_Last Modified: 11 July 2025_ - These Terms of Service (this "**Agreement**") are a binding contract between you ("**Customer**," "**you**," or "**your**") and Supabase, Inc., a Delaware corporation with offices located at 65 Chulia Street #38-02/03, OCBC Centre, Singapore 049513 ("**Supabase**," "**we**," or "**us**"). This Agreement governs your access to and use of the Cloud Services. Supabase and Customer may be referred to herein collectively as the "**Parties**" or individually as a "**Party**." ## Agreement Acceptance diff --git a/apps/www/data/legal/terms/v2.mdx b/apps/www/data/legal/terms/v2.mdx index a790bafb29d..954a97df5ed 100644 --- a/apps/www/data/legal/terms/v2.mdx +++ b/apps/www/data/legal/terms/v2.mdx @@ -1,5 +1,3 @@ -_Last Modified: 1 May 2026_ - These Terms of Service (this "**Agreement**") are a binding contract between you ("**Customer**," "**you**," or "**your**") and SUPABASE PTE. LTD., a Singapore entity with a registered address of 65 Chulia Street #38-02/03, OCBC Centre, Singapore 049513 ("**Supabase**," "**we**," or "**us**"). This Agreement governs your access to and use of the Cloud Services. Supabase and Customer may be referred to herein collectively as the "**Parties**" or individually as a "**Party**." THIS AGREEMENT TAKES EFFECT WHEN YOU CLICK THE "I ACCEPT" BUTTON BELOW OR BY ACCESSING OR USING THE SERVICES (the "**Effective Date**"). BY CLICKING ON THE "I ACCEPT" BUTTON BELOW OR BY ACCESSING OR USING THE SERVICES YOU (A) ACKNOWLEDGE THAT YOU HAVE READ AND UNDERSTAND THIS AGREEMENT; (B) REPRESENT AND WARRANT THAT YOU HAVE THE RIGHT, POWER, AND AUTHORITY TO ENTER INTO THIS AGREEMENT AND, IF ENTERING INTO THIS AGREEMENT FOR AN ORGANIZATION, THAT YOU HAVE THE LEGAL AUTHORITY TO BIND THAT ORGANIZATION; AND (C) ACCEPT THIS AGREEMENT AND AGREE THAT YOU ARE LEGALLY BOUND BY ITS TERMS. diff --git a/apps/www/data/legal/terms/v3.mdx b/apps/www/data/legal/terms/v3.mdx index 6ac34f24b22..a5faf26fa39 100644 --- a/apps/www/data/legal/terms/v3.mdx +++ b/apps/www/data/legal/terms/v3.mdx @@ -1,5 +1,3 @@ -_Last Modified: 1 August 2026_ - These Terms of Service (this "Agreement") are a binding contract between you ("Customer," "you," or "your") and SUPABASE PTE. LTD., a Singapore entity with a registered address of 65 Chulia Street #38-02/03, OCBC Centre, Singapore 049513 ("Supabase," "we," or "us"). This Agreement governs your access to and use of the Cloud Services, except to the extent that Customer has entered into an Order or separate agreement with Supabase that expressly incorporates different terms, in which case those other terms will govern. Supabase and Customer may be referred to herein collectively as the "Parties" or individually as a "Party." THIS AGREEMENT TAKES EFFECT WHEN YOU CLICK THE "I ACCEPT" BUTTON BELOW OR BY ACCESSING OR USING THE SERVICES (the "Effective Date"). BY CLICKING ON THE "I ACCEPT" BUTTON BELOW OR BY ACCESSING OR USING THE SERVICES YOU (A) ACKNOWLEDGE THAT YOU HAVE READ AND UNDERSTAND THIS AGREEMENT; (B) REPRESENT AND WARRANT THAT YOU HAVE THE RIGHT, POWER, AND AUTHORITY TO ENTER INTO THIS AGREEMENT AND, IF ENTERING INTO THIS AGREEMENT FOR AN ORGANIZATION, THAT YOU HAVE THE LEGAL AUTHORITY TO BIND THAT ORGANIZATION; AND (C) ACCEPT THIS AGREEMENT AND AGREE THAT YOU ARE LEGALLY BOUND BY ITS TERMS. diff --git a/apps/www/lib/redirects.js b/apps/www/lib/redirects.js index b4e6ba6618a..ccff21267ae 100644 --- a/apps/www/lib/redirects.js +++ b/apps/www/lib/redirects.js @@ -1732,6 +1732,16 @@ module.exports = [ source: '/docs/company/privacy', destination: '/privacy', }, + { + permanent: true, + source: '/privacy-260316', + destination: '/privacy?version=v2', + }, + { + permanent: true, + source: '/privacy-250528', + destination: '/privacy?version=v1', + }, { permanent: true, source: '/docs/company/sla', diff --git a/apps/www/pages/aup.tsx b/apps/www/pages/aup.tsx new file mode 100644 index 00000000000..2c779f30437 --- /dev/null +++ b/apps/www/pages/aup.tsx @@ -0,0 +1,35 @@ +import { MDXProvider } from '@mdx-js/react' +import DefaultLayout from '~/components/Layouts/Default' +import SectionContainer from '~/components/Layouts/SectionContainer' +import LegalDocVersions, { type LegalDocVersion } from '~/components/Legal/LegalDocVersions' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' +import V1 from '~/data/legal/aup/v1.mdx' +import mdxComponents from '~/lib/mdx/mdxComponents' +import { NextSeo } from 'next-seo' + +const meta = { + title: 'Acceptable Use Policy | Supabase', + description: 'Supabase Acceptable Use Policy', +} + +const versions: LegalDocVersion[] = [ + { id: 'v1', label: 'Version 1', effectiveDate: 'June 1, 2026', Component: V1 }, +] + +export default function AcceptableUsePolicyPage() { + return ( + + + } + h1="Acceptable Use Policy" + /> + + + + + + + ) +} diff --git a/apps/www/pages/enterprise-terms.tsx b/apps/www/pages/enterprise-terms.tsx index be4507aeef0..9dff0a4d440 100644 --- a/apps/www/pages/enterprise-terms.tsx +++ b/apps/www/pages/enterprise-terms.tsx @@ -2,6 +2,8 @@ import { MDXProvider } from '@mdx-js/react' import DefaultLayout from '~/components/Layouts/Default' import SectionContainer from '~/components/Layouts/SectionContainer' import LegalDocVersions, { type LegalDocVersion } from '~/components/Legal/LegalDocVersions' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' import V1 from '~/data/legal/enterprise-terms/v1.mdx' import V2 from '~/data/legal/enterprise-terms/v2.mdx' import V3 from '~/data/legal/enterprise-terms/v3.mdx' @@ -25,13 +27,14 @@ export default function EnterpriseTermsPage() { return ( + } + h1="Enterprise SaaS Subscription Agreement" + /> -
- -

Enterprise SaaS Subscription Agreement

- -
-
+ + +
) diff --git a/apps/www/pages/legal/dpa.tsx b/apps/www/pages/legal/dpa.tsx index 1d2506851e0..51458b76b4c 100644 --- a/apps/www/pages/legal/dpa.tsx +++ b/apps/www/pages/legal/dpa.tsx @@ -1,60 +1,71 @@ -import Layout from '~/components/Layouts/Default' +import DefaultLayout from '~/components/Layouts/Default' import SectionContainer from '~/components/Layouts/SectionContainer' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' import { useSendTelemetryEvent } from '~/lib/telemetry' import CTABanner from 'components/CTABanner/index' +import { NextSeo } from 'next-seo' + +const meta = { + title: 'Data Processing Addendum', + description: 'Supabase Data Processing Addendum', +} const DPA = () => { const sendTelemetryEvent = useSendTelemetryEvent() return ( - <> - - -
-
-
-

DPA

-

- We have a long-standing commitment to customer privacy and data protection. As - part of this commitment, we have prepared a Data Processing Addendum ("DPA"). You - can review a static PDF version of our latest DPA document{' '} - - sendTelemetryEvent({ - action: 'dpa_pdf_opened', - properties: { source: 'www' }, - }) - } - > - here - - . -

+ + + + } + h1="Data Processing Addendum" + /> + +

+ We have a long-standing commitment to customer privacy and data protection. As part of + this commitment, we have prepared a Data Processing Addendum ("DPA"). You can review a + static PDF version of our latest DPA document{' '} + + sendTelemetryEvent({ + action: 'dpa_pdf_opened', + properties: { source: 'www' }, + }) + } + > + here + + . +

-

- To make the DPA legally binding, you need to sign and complete the details through - a PandaDoc document that we prepare. To get this version of the DPA,{' '} - - request it from the legal documents page - {' '} - of your Supabase dashboard. -

-
-
-
-
- -
- +

+ To make the DPA legally binding, you need to sign and complete the details through a + PandaDoc document that we prepare. To get this version of the DPA,{' '} + + request it from the legal documents page + {' '} + of your Supabase dashboard. +

+ + + ) } export default DPA diff --git a/apps/www/pages/privacy.tsx b/apps/www/pages/privacy.tsx new file mode 100644 index 00000000000..11940a8c612 --- /dev/null +++ b/apps/www/pages/privacy.tsx @@ -0,0 +1,39 @@ +import { MDXProvider } from '@mdx-js/react' +import DefaultLayout from '~/components/Layouts/Default' +import SectionContainer from '~/components/Layouts/SectionContainer' +import LegalDocVersions, { type LegalDocVersion } from '~/components/Legal/LegalDocVersions' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' +import V1 from '~/data/legal/privacy/v1.mdx' +import V2 from '~/data/legal/privacy/v2.mdx' +import V3 from '~/data/legal/privacy/v3.mdx' +import mdxComponents from '~/lib/mdx/mdxComponents' +import { NextSeo } from 'next-seo' + +const meta = { + title: 'Privacy Policy | Supabase', + description: 'Supabase Privacy Policy', +} + +const versions: LegalDocVersion[] = [ + { id: 'v3', label: 'Version 3', effectiveDate: 'May 13, 2026', Component: V3 }, + { id: 'v2', label: 'Version 2', effectiveDate: 'March 16, 2026', Component: V2 }, + { id: 'v1', label: 'Version 1', effectiveDate: 'May 28, 2025', Component: V1 }, +] + +export default function PrivacyPolicyPage() { + return ( + + + } + h1="Privacy Policy" + /> + + + + + + + ) +} diff --git a/apps/www/pages/sla.tsx b/apps/www/pages/sla.tsx new file mode 100644 index 00000000000..c1fe411c717 --- /dev/null +++ b/apps/www/pages/sla.tsx @@ -0,0 +1,37 @@ +import { MDXProvider } from '@mdx-js/react' +import DefaultLayout from '~/components/Layouts/Default' +import SectionContainer from '~/components/Layouts/SectionContainer' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' +import Content from '~/data/legal/sla/v1.mdx' +import mdxComponents from '~/lib/mdx/mdxComponents' +import { NextSeo } from 'next-seo' + +const meta = { + title: 'Service Level Agreement | Supabase', + description: 'Supabase Service Level Agreement', +} + +export default function SLAPage() { + return ( + + + + } + h1="Service Level Agreement" + /> + + + + + + + ) +} diff --git a/apps/www/pages/support-policy.tsx b/apps/www/pages/support-policy.tsx new file mode 100644 index 00000000000..7528e1f5b6f --- /dev/null +++ b/apps/www/pages/support-policy.tsx @@ -0,0 +1,37 @@ +import { MDXProvider } from '@mdx-js/react' +import DefaultLayout from '~/components/Layouts/Default' +import SectionContainer from '~/components/Layouts/SectionContainer' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' +import Content from '~/data/legal/support-policy/v1.mdx' +import mdxComponents from '~/lib/mdx/mdxComponents' +import { NextSeo } from 'next-seo' + +const meta = { + title: 'Support Policy', + description: 'Supabase Support Policy', +} + +export default function SupportPolicyPage() { + return ( + + + + } + h1="Support Policy" + /> + + + + + + + ) +} diff --git a/apps/www/pages/terms.tsx b/apps/www/pages/terms.tsx index a1f603dd6bc..36f4c77338e 100644 --- a/apps/www/pages/terms.tsx +++ b/apps/www/pages/terms.tsx @@ -2,6 +2,8 @@ import { MDXProvider } from '@mdx-js/react' import DefaultLayout from '~/components/Layouts/Default' import SectionContainer from '~/components/Layouts/SectionContainer' import LegalDocVersions, { type LegalDocVersion } from '~/components/Legal/LegalDocVersions' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' import V1 from '~/data/legal/terms/v1.mdx' import V2 from '~/data/legal/terms/v2.mdx' import V3 from '~/data/legal/terms/v3.mdx' @@ -23,13 +25,21 @@ export default function TermsPage() { return ( + + } + h1="Terms of Service" + /> -
- -

Terms of service

- -
-
+ + +
)