# Contributing to DCTS First off, thanks for taking the time to contribute! There are many ways on how to contribute to the project. You can contribute by improving the code or [fixing issues](https://github.com/hackthedev/dcts-shipping/issues), spreading the word about the project, helping test new updates, [donating](https://ko-fi.com/shydevil) and more! > [!NOTE] > This document may not get frequent updates. Please refer to the `docs` folder or [our online documentation](https://docs.dcts.community) if possible, especially documents like [our principles](https://docs.dcts.community/Lore/Principles). > [!CAUTION] > When contributing, especially when creating pull requests, you will be asked to accept [our Contributor License Agreement](https://docs.dcts.community/Legal/Contributor%20License%20Agreement). ------ ## Design Philosophy In order to best contribute to DCTS in form of code its important to understand how DCTS is being developed and the goals behind it. 1. DCTS is avoiding as many 3rd party libraries as possible with the goal to be as independent as possible. A lot of libraries are custom-made to provide long term stability as DCTS was made with the intent to exist for a long time to come. 2. Keep everything as simple as possible. This includes code as well as UI flows. ***Everything*** should be as simple and intuitive as possible and avoid over-engineering. 3. AI usage to write anything more than maybe an function should be avoided as such code can be a pain to maintain etc ------ ## Working on Code In order to keep things organized and free of conflicts we need to set some standards. 1. **Use the issue**s and mark it so that people know that you already **work** on it. 2. **Dont work on stuff randomly**. Make an issue for it and wait until it gets approved. Changes or features wont be accepted if not approved beforehand. Otherwise feel free to make plugins. 3. **Keep your changes to only the specific area** and approved topics! If you work on the theme handling, dont edit things from the message system. PRs with multiple changes will be rejected.