punyaslokdutta folds document storage into one vendor

This fork stops running documents through a separate cloud-storage service and routes them through the same platform that already handles its login and database.

infrastructure

Most builds of Mike keep their files in one place and their accounts and records in another - uploads land in Cloudflare's object storage while everything else lives in Supabase, the platform that handles sign-in and the database. punyaslokdutta cut the split. Documents now go through Supabase too, so the whole stack leans on a single service with one set of credentials instead of two.

The upside is fewer moving parts: one account to manage, one bill, one place where things can break. The trade-off is that document storage now lives inside Supabase's size and bandwidth ceilings rather than the flat per-action pricing of the storage service it replaced. Whether that pinches depends on how many documents you expect to push through it.

So what Worth a look for anyone weighing how lean to keep a legal-AI deployment - this is the simpler-to-run option, with a ceiling to watch at high document volume.

View this fork on GitHub →

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

Commits in this thread

1 commit 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>

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-214.md from inside the repo you want the changes in.

⬇ Download capture-thread-214.md