Contributing to LibrePhotos
Thank you for considering contributing to LibrePhotos! We welcome contributions from everyone. Here are some guidelines to help you get started.
How to Contribute
Fork the Repository: LibrePhotos is a single monorepo, so there is just one repository to fork: github.com/LibrePhotos/librephotos. Everything lives there —
apps/backend/,apps/frontend/,apps/mobile/,apps/docs/, anddeploy/. Do not open pull requests against the archivedlibrephotos-frontend,librephotos-docker,librephotos.docs, orlibrephotos-mobilerepositories. Depending on what you're working on, see the Frontend, Backend, Docker, and Mobile guides.Clone the Repository: Clone your forked repository to your local machine. A GitHub fork keeps the name
librephotosby default.git clone https://github.com/your-username/librephotos.gitCreate a Branch: Create a new branch for your feature or bug fix.
git checkout -b my-feature-branchMake Changes: Make your changes to the codebase. Ensure your code follows the project's coding standards.
Commit Changes: Commit your changes with a descriptive commit message.
git commit -m "Description of my changes"Push Changes: Push your changes to your forked repository.
git push origin my-feature-branchCreate a Pull Request: Open a pull request against the upstream repository, targeting the
devbranch (the default branch — notmain). Provide a clear description of your changes and why they are necessary. See the repository's CONTRIBUTING.md for the full pull-request guidelines.
Reporting Issues
LibrePhotos is a monorepo with a single issue tracker — bugs, feature requests, and documentation problems all go there, not to the archived librephotos-frontend, librephotos-docker, librephotos.docs, or librephotos-mobile repositories. Pick the Bug report, Enhancement request, or Incorrect/outdated information template, and label the issue with the affected area (for example frontend or mobile).
Getting Help
If you need help, feel free to ask questions on our Discord server. You can also watch development videos on Niaz Faridani-Rad's channel.
Documentation
The documentation site is built with Docusaurus and lives in apps/docs/ in the main repository. Improving it is as simple as opening a pull request against that folder — the pages under apps/docs/docs/ are plain Markdown. To preview your changes locally, run cd apps/docs && yarn install && yarn start.
Translations
Translations are contributed through Weblate, not by editing apps/frontend/src/locales/<lang>/translation.json directly — direct edits to the non-English files are overwritten by Weblate. Change only the English strings in code, and translators will pick them up from there.
We appreciate your contributions and look forward to working with you!