# Every Contribution Makes a Difference

We welcome contributions of any kind, including blog posts, tutorials, testing, writing documentation, and pull requests. Our [Developer Guide](https://docs.photoprism.app/developer-guide/) contains all the information necessary for you to get started.

## Join the Community ##

Follow us on [Twitter](https://twitter.com/photoprism_app) and join the [Community Chat](https://gitter.im/browseyourlife/community)
to get regular updates, connect with other contributors, and discuss your ideas.
Our [Code of Conduct](CODE_OF_CONDUCT.md) explains the "dos and don’ts."

An important part of our journey is to explore new ways in product development and build better software through consistent use of community feedback. Feel free to [share your thoughts](https://photoprism.app/contact) with us at any time.

## Creating Bug Reports ##

Before reporting a bug, please use our [Troubleshooting Checklists](https://docs.photoprism.app/getting-started/troubleshooting/)
to determine the cause of your problem. If you have a general question, need help, or an issue has not
(yet) been clearly identified:

- you are welcome to ask in our [Community Chat](https://gitter.im/browseyourlife/community)
- or post your question in [GitHub Discussions](https://github.com/photoprism/photoprism/discussions)

### GitHub Issues ###

Never report a bug unless you are certain to have found a fully reproducible and previously unreported issue that
must be fixed directly in [our source code](https://github.com/photoprism/photoprism):

- [contact us](https://photoprism.app/contact) or [a community member](https://github.com/photoprism/photoprism/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works
- this gives our team the opportunity to [improve the documentation](https://docs.photoprism.app/getting-started/troubleshooting/) and provide best-in-class support to you, instead of handling unclear and/or duplicate bug reports
- when reporting a problem, always include the software versions you are using and other information about your environment such as [browser, browser plugins](https://docs.photoprism.app/getting-started/troubleshooting/browsers/), operating system, storage type, memory size, and processor

## Submitting Pull Requests ##

Because we want to create the best possible product for our users, we have a [set of criteria](https://docs.photoprism.app/developer-guide/pull-requests#acceptance-criteria) to ensure that all submissions are acceptable.

Follow our [step-by-step guide](https://docs.photoprism.app/developer-guide/pull-requests#how-to-create-and-submit-a-pull-request) to learn how to submit
new features, bug fixes, and documentation improvements. Issues labeled [help wanted](https://github.com/photoprism/photoprism/labels/help%20wanted) /
[easy](https://github.com/photoprism/photoprism/labels/easy) can be good (first) contributions.

**Reviewing, testing and finally merging pull requests requires significant resources on our side. If it's not just a small fix, it can take several months.**

### Contributor License Agreement (CLA) ###

After submitting your first pull request, you will automatically be asked to [accept our CLA](https://cla-assistant.io/photoprism/photoprism):

- this gives us the ability to [(re-)license all code and documentation](https://en.wikipedia.org/wiki/Software_relicensing) at any time, *almost* as if we had created it ourselves (you retain the rights to your own work, which may be different for other CLAs)
- otherwise, we cannot accept pull requests, as this would mean that we are not able to change the license of our software and documentation at a later time, even though most of it was developed and written by us
- this may be necessary, for example, if the license is incompatible with a larger combined work, we want to remove some restrictions on the AGPL/Creative Commons license, or it turns out that someone is abusing the existing license in a way we don't yet know about
- the lack of a formal contract [would also lead to legal uncertainty](https://en.wikipedia.org/wiki/SCO%E2%80%93Linux_disputes) for us and all users, as some contributors could later claim that they did not intend to license their code in any way and that it was stolen

## Not a Developer? No Problem ##

You can also contribute by...

* [conducting research](https://github.com/photoprism/photoprism/issues?q=is%3Aopen+is%3Aissue+label%3Aresearch) and [improving the documentation](https://github.com/photoprism/photoprism/issues?q=is%3Aopen+is%3Aissue+label%3Adocs)
* publishing tutorials, blog posts, and podcasts
* voting for us on pages like:
   * https://alternativeto.net/software/photoprism/about/
   * https://www.saashub.com/google-photos-alternatives
* recommending PhotoPrism to your friends

----

*PhotoPrism® is a [registered trademark](https://photoprism.app/trademark). Docs are [available](https://github.com/photoprism/photoprism-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply. By using our software, you agree to our [terms of service](https://photoprism.app/terms).*
