feat(www): add October 12, 2026 subprocessor list (#51549)

<!-- claude-slack-attribution -->
_Requested by **Sofia Calado** · [Slack
thread](https://supabase.slack.com/archives/C0161K73J1J/p1791792994853839?thread_ts=1791792994.853839&cid=C0161K73J1J)_

## Problem

**Before:** The Subprocessor List page
(`/legal/customer-resources/subprocessor-list`) showed one download
button, for the June 1, 2026 list.

**After:** The page shows two download buttons, newest first:
"Subprocessor List - Updated October 12, 2026" and "Subprocessor List -
Updated June 1, 2026". The June 1, 2026 PDF is kept as is.

This adds the October 12, 2026 subprocessor list as a new version
without replacing the existing one.

## Solution

How: the single `CURRENT_PDF` constant in
`apps/www/pages/legal/customer-resources/subprocessor-list.tsx` becomes
a `SUBPROCESSOR_LIST_VERSIONS` array (newest first, each entry has
`file` and `displayDate`), and the page maps over it to render one
button per version using the same `Button` and label format as before.
The new PDF is added as
`apps/www/public/legal/subprocessor-list/October-12-2026.pdf`, copied
byte for byte from the supplied file (2 pages, "As of October 12, 2026",
22 rows). The header comment now explains how to add a future version.
The page copy, the Customer.io subscribe form, the Legal Hub link, the
redirect and the DPA and FAQ links are untouched; none of them reference
a specific PDF.

## Review instructions

1. Open `/legal/customer-resources/subprocessor-list` on the Vercel
preview for this PR.
2. Confirm two buttons appear in this order: "Subprocessor List -
Updated October 12, 2026", then "Subprocessor List - Updated June 1,
2026".
3. Open each and confirm the PDF header date matches the button label.
4. Confirm the subscribe form below the buttons is unchanged.

**Not verified:** The Vercel preview and supabase.com are not reachable
from the environment this PR was prepared in, so the page was not viewed
rendered. `pnpm install` was not run, so ESLint and `tsc` did not run.
Prettier 3.8.1 was run on the changed file with the repo's formatting
options (the repo config's SQL plugin was not installed) and reported no
changes. The change was read through by hand for type and syntax errors.

## Checklist

- [ ] I have read
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01HtysymSUPZS8aJ1eTa7R9N


---
_Generated by [Claude
Code](https://claude.ai/code/session_01HtysymSUPZS8aJ1eTa7R9N)_

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
This commit is contained in:
authored and GitHub committed 2026-10-12 17:11:56 +08:00
1 parent 7625a0353e
commit 2e1a7afceb
2 files changed
+32 -18

No files matched your search

@@ -3,23 +3,29 @@ import SectionContainer from '~/components/Layouts/SectionContainer'
import PageBreadcrumb from '~/components/Sections/PageBreadcrumb'
import PageHeader from '~/components/Sections/PageHeader'
import SubprocessorUpdatesForm from '~/components/SubprocessorUpdatesForm'
import { Download } from 'lucide-react'
import { FileText } from 'lucide-react'
import { NextSeo } from 'next-seo'
import { Button } from 'ui'
import { Badge } from 'ui'
/**
* TO UPDATE THE SUBPROCESSOR LIST:
* TO ADD A NEW SUBPROCESSOR LIST VERSION:
* 1. Drop the new dated PDF into `apps/www/public/legal/subprocessor-list/`
* (filename in `Month-D-YYYY.pdf` format, e.g. `September-1-2026.pdf`).
* 2. Change the single `CURRENT_PDF` constant below (both `file` and `displayDate`).
* This constant is the ONLY thing that needs to change on each update.
* (filename in `Month-D-YYYY.pdf` format, e.g. `December-1-2026.pdf`).
* 2. Add a new entry (`file` and `displayDate`) at the TOP of `SUBPROCESSOR_LIST_VERSIONS`.
* Keep the list newest first. Earlier versions stay listed, one download button each.
*/
const CURRENT_PDF = {
file: 'June-1-2026.pdf',
displayDate: 'June 1, 2026',
}
const SUBPROCESSOR_LIST_VERSIONS = [
{
file: 'October-12-2026.pdf',
displayDate: 'October 12, 2026',
},
{
file: 'June-1-2026.pdf',
displayDate: 'June 1, 2026',
},
]
const PDF_PATH = `/legal/subprocessor-list/${CURRENT_PDF.file}`
const PDF_BASE_PATH = '/legal/subprocessor-list'
const meta = {
title: 'Subprocessor List',
@@ -43,14 +49,22 @@ export default function SubprocessorListPage() {
subheader="The third-party sub-processors Supabase engages to help provide its services are indicated in the latest linked Subprocessor List available below. This page is updated with an updated Subprocessor List as our sub-processors change. You can subscribe to receive notifications of updates to this page, below."
/>
<SectionContainer className="prose">
<div className="flex flex-col gap-4">
<div className="not-prose">
<Button asChild icon={<Download />}>
<a href={PDF_PATH} download target="_blank" rel="noopener noreferrer">
Subprocessor List - Updated {CURRENT_PDF.displayDate}
<div className="divide-y divide-border">
{SUBPROCESSOR_LIST_VERSIONS.map(({ file, displayDate }) => (
<div key={file} className="flex items-center gap-3 py-4">
<FileText size={15} className="shrink-0 text-foreground-muted" />
<a
href={`${PDF_BASE_PATH}/${file}`}
download
target="_blank"
rel="noopener noreferrer"
className="text-foreground-light transition-colors hover:text-foreground hover:underline"
>
Subprocessor List
</a>
</Button>
</div>
<Badge>Updated {displayDate}</Badge>
</div>
))}
</div>
<div className="mt-16 flex flex-col items-start gap-4">