Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 2.5 KB

File metadata and controls

62 lines (50 loc) · 2.5 KB

Contributing to Stackt

Thanks for considering a contribution — whether that's a bug fix, a new feature, or just a typo fix in the docs, it's welcome.

Getting set up

Follow SETUP.md to get a local instance running against your own Supabase project before making changes. You'll need your own free Supabase project — there's no shared dev environment.

Project layout

gdrive-clone/
├── backend/        FastAPI app — routes are split by resource under routers/
├── frontend/         Plain HTML/CSS/JS, one file per concern under js/
├── supabase/          SQL schema + storage policies — the source of truth
│                       for tables, RLS policies, and the search function
└── docker-compose.yml

There's no build step on the frontend and no ORM on the backend — keep it that way unless a change genuinely requires otherwise. Simplicity here is a feature, not an oversight.

Making a change

  1. Fork the repo and create a branch off main:
    git checkout -b fix/short-description
  2. Make your change. A few conventions to match:
    • Backend: one router per resource (folders, files, shares, search). Every table access must go through get_user_client() so Postgres RLS stays the actual access-control boundary — don't bypass it with the admin/service-role client unless the task genuinely requires crossing user boundaries (e.g. resolving a public share token).
    • Frontend: no frameworks, no bundler. Keep new logic in its own js/<feature>.js file rather than growing dashboard.js indefinitely.
    • Schema changes: edit supabase/schema.sql directly and note in your PR description that it needs to be re-run in Supabase's SQL editor — there's no migration tool in this project yet.
  3. Test manually against your local Supabase project: sign-up/login, folder create/rename/delete, upload, download, search, and both share types (email + public link) at minimum.
  4. Commit with a clear message and open a PR against main. Describe what changed and why, and call out any manual steps a reviewer needs (e.g. re-running SQL).

Reporting bugs

Open an issue with:

  • What you expected vs. what happened
  • Steps to reproduce
  • Relevant backend terminal output (uvicorn logs) or browser console errors
  • Whether it happens with a fresh Supabase project or only yours

Code of conduct

Be respectful and constructive. Disagreements about approach are fine; personal attacks aren't.