punyaslokdutta pulls Mike's file storage off Cloudflare and onto Supabase

Same upload-and-share plumbing, one fewer outside service to wire up.

infrastructure

The original Mike kept uploaded documents in Cloudflare R2 - Cloudflare's cloud file store, with a fast global delivery network baked in. This fork rips that out and routes the same four operations - upload a file, fetch it back, delete it, and hand out a temporary share link - through Supabase Storage instead. Supabase is an all-in-one backend platform many teams already run for their database, so its file store comes along for free.

The functions Mike calls stay identical; only the plumbing behind them changes. The trade-off is plain: if you're already on Supabase, that's one fewer external account to provision and pay for. What you give up is Cloudflare's faster worldwide delivery and its pay-per-operation pricing. punyaslokdutta keeps the swap self-contained, so it's easy to adopt - or reverse - without touching the rest of the app.

So what Worth a look for anyone evaluating Mike for self-hosting who wants fewer moving parts in the stack.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

2 commits from punyaslokdutta/HarveyOss, oldest first. Source extracted verbatim from the harvested git log.

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 thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-490.md from inside the repo you want the changes in.

⬇ Download capture-thread-490.md