# Contributing to LibrePhotos Thanks for your interest in contributing! This is a monorepo β€” contributions to any of the apps or to the deployment tooling live in this single repository. Open issues and pull requests here, not against the archived `librephotos-frontend`, `librephotos-docker`, `librephotos.docs`, or `librephotos-mobile` repositories. ## Where to start | You want to work on… | Go to | |---|---| | The Django API, ML pipelines, background jobs | [apps/backend/](apps/backend/) and [apps/backend/CONTRIBUTING.md](apps/backend/CONTRIBUTING.md) | | The React web client | [apps/frontend/](apps/frontend/) and [apps/frontend/README.md](apps/frontend/README.md) | | The React Native mobile client | [apps/mobile/](apps/mobile/) and [apps/mobile/README.md](apps/mobile/README.md) | | The documentation site | [apps/docs/](apps/docs/) | | Docker images, Compose configs, Kubernetes manifests | [deploy/](deploy/) | | Translations | https://hosted.weblate.org/engage/librephotos/ | ## Dev environment The full stack (backend + frontend + db + proxy) runs via Docker Compose from [`deploy/`](deploy/). See the [development install guide](https://docs.librephotos.com/docs/development/dev-install) for step-by-step instructions. Each app can also be worked on standalone: - Backend: see [apps/backend/CONTRIBUTING.md](apps/backend/CONTRIBUTING.md) - Frontend: `cd apps/frontend && yarn install && yarn start` - Mobile: `cd apps/mobile && yarn install && yarn android` - Docs: `cd apps/docs && yarn install && yarn start` ## Pull requests - **One PR, one concern.** Cross-app PRs (e.g. backend API change + frontend client update) are welcome and encouraged β€” that's a core reason for the monorepo β€” but unrelated changes should be separate PRs. - **Target `dev`**, not `main`. `dev` is the default branch. - **Conventional commit messages** are appreciated but not required. - **CI runs path-filtered workflows.** A PR touching only `apps/frontend/` will only trigger the frontend lint/build; a PR touching backend + frontend triggers both. ## Code of conduct Be kind. Disagreements happen; make them about code, not people. ## License By contributing, you agree your contributions are licensed under the [MIT License](LICENSE).