R2 -> Supabase Object storage
From the PR description
R2 requires a separate Cloudflare account, API tokens, and bucket configuration on top of the existing Supabase setup. Since Supabase Storage covers the same use cases (upload, download, delete, signed URLs) and the project already depends on Supabase for auth and Postgres, using it for storage eliminates an entire external service from the local setup and production stack.
Our analysis
Fork sync merge from origin/main (3 PRs + upstream willchen96 resync) — read the full analysis →
Storage backend swap: Cloudflare R2 → Supabase Storage — read the full analysis →
Think the analysis missed something the PR description covers?
Commits in this PR (2)
| SHA | Subject | Author | Date | |
|---|---|---|---|---|
39cdf1ca | chore: local setup - swap R2 for Supabase Storage, install frontend deps | Punyaslok Dutta | 2026-05-09 | ↗ GitHub |
commit body- storage.ts: replaced @aws-sdk/client-s3 + R2 with Supabase Storage (upload, download, delete, signed URLs all via @supabase/supabase-js) - .env.example: removed R2 vars, added STORAGE_BUCKET=mike - frontend/package-lock.json: updated after npm install --legacy-peer-deps Local setup recap: - Backend :3001, frontend :3000 - Supabase project: gbdfkvaigunfvrgurkwk (ap-northeast-1 Tokyo) - Storage bucket: mike (private, Supabase Storage) - DB schema applied via 000_one_shot_schema.sql - AI provider: Gemini - Secrets in .env / .env.local - gitignored, not committed Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | ||||
4e73a45d | Merge remote-tracking branch 'origin/main' | Punyaslok Dutta | 2026-05-09 | ↗ GitHub |
Capture this PR into my fork
Download a Markdown prompt that tells Claude how to port every
commit in this PR into your working tree. Run it via
claude -p < capture-pull-47.md from
inside the repo you want the changes in.