punyaslokdutta gives Mike a one-command local setup

A Docker-based dev environment aimed at getting new contributors running Mike on a laptop without a cloud account.

infrastructureintegration

punyaslokdutta has packaged Mike's frontend, backend, auth, database, and document storage into a single local stack that comes up with two commands. Supabase, an open-source backend-as-a-service, handles auth and the database. MinIO, an S3-compatible object store, stands in locally for Cloudflare R2, the hosted blob storage Mike uses in production.

The quietly interesting part is underneath: the backend no longer assumes Supabase for document storage. It now talks to any S3-compatible object store, which means the same code path serves MinIO on a laptop and R2 in the cloud without branching. Auth and database stay on Supabase; document blobs get their own interface. Cloud configuration files are left untouched - new environment files were added alongside them rather than rewriting what's already deployed.

So what Matters to anyone running or evaluating a Mike fork: lower friction to spin up means more contributors and faster local testing, and the storage split makes self-hosting on non-Cloudflare infrastructure realistic.

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

⬇ Download capture-thread-508.md