Libresonic development is a community project, and contributions are welcomed. Here are a few guidelines you should follow before submitting:
1. All contributions must be licensed as [GNU GPLv3](https://github.com/Libresonic/libresonic/blob/develop/LICENSE.txt) to be accepted. Use [`git commit --signoff`](https://jk.gs/git-commit.html) to acknowledge this.
2. New features or changes to existing ones must not degrade the user experience. This means do not introduce bugs, remove functionality, or make large changes to existing themes/UI without prior discussion in an Issue.
3. Use sane coding standards. Language best-practices should be followed, comment generously, and avoid "clever" algorithms. Refactoring existing messes is great, but watch out for breakage.
4. Be bold! Without contributions, this project will vanish. If you just want to help out, try [submiting a patch](https://github.com/Libresonic/libresonic/issues?q=is%3Aissue+is%3Aopen+label%3Apatches-welcome) for an open Issue.
5. Stay relevant. Issues or commentary that is off-topic or tangential to Libresonic development is subject to moderation. Questions should be focussed, with a goal of improving documentation rather than answering a specific problem. You can visit #Libresonic on Freenode IRC for community discussion.
1. **License Acceptance**All contributions must be licensed as [GNU GPLv3](https://github.com/Libresonic/libresonic/blob/develop/LICENSE.txt) to be accepted. Use [`git commit --signoff`](https://jk.gs/git-commit.html) to acknowledge this.
2. **No Breakage**New features or changes to existing ones must not degrade the user experience. This means do not introduce bugs, remove functionality, or make large changes to existing themes/UI without prior discussion in an Issue.
3. **Coding standards** Language best-practices should be followed, comment generously, and avoid "clever" algorithms. Refactoring existing messes is great, but watch out for breakage.
4. **Be bold!** Without contributions, this project will vanish. If you just want to help out, try [submiting a patch](https://github.com/Libresonic/libresonic/issues?q=is%3Aissue+is%3Aopen+label%3Apatches-welcome) for an open Issue.
5. **Stay relevant** Issues or commentary that is off-topic or tangential to Libresonic development is subject to moderation. Questions should be focused on improving documentation to solve a problem. Visit [Reddit](https://www.reddit.com/r/libresonic) or [IRC](http://webchat.freenode.net?channels=%23libresonic) for community discussion.