|
1 | 1 | --- |
2 | 2 | title: Supporting UserFrosting |
3 | 3 | description: Donate your time, money, or expertise to furthering the development of UserFrosting. |
4 | | -wip: true |
5 | 4 | --- |
6 | 5 |
|
7 | | -## Financial support |
| 6 | +## Contributing time |
8 | 7 |
|
9 | | -UserFrosting is completely free and open source, and licensed under the [MIT License](https://github.com/userfrosting/UserFrosting/blob/master/LICENSE.md). |
| 8 | +Our [chat room](https://chat.userfrosting.com) welcomes users from all over the world seeking help 24/7. The core development team appreciates community members who help answer questions and support fellow users. |
10 | 9 |
|
11 | | -That being said, yes, we'll take your money! |
| 10 | +If you feel comfortable with UserFrosting, consider keeping a browser tab open to our [chat room](https://chat.userfrosting.com) and helping other users when you have time. Your assistance is invaluable to the community! |
12 | 11 |
|
13 | | -Your financial contribution will help keep our chat and demo servers going. And, who knows? Maybe enough people will donate and we can make UserFrosting our full-time job ;-) |
| 12 | +## Contributing code and content |
14 | 13 |
|
15 | | -The easiest way to contribute financially is through [Open Collective](https://opencollective.com/userfrosting). Suggested donations are as follows: |
| 14 | +We welcome pull requests! Based on your skills and interests, you might contribute: |
16 | 15 |
|
17 | | -- Personal use: $10 |
18 | | -- Local nonprofit use (e.g. local chapters of Scouts, Elk Lodge, etc): $30 |
19 | | -- National nonprofit, municipal, and business use: $100 |
20 | | -- Super donor: $500 |
| 16 | +- **Documentation improvements** - Fix typos, clarify explanations, add examples |
| 17 | +- **Language translations** - Help internationalize UserFrosting |
| 18 | +- **Bug fixes** - Resolve issues and improve stability |
| 19 | +- **Feature enhancements** - Implement requested features (after discussion) |
| 20 | +- **Testing** - Write or improve unit/integration tests |
21 | 21 |
|
22 | | -We can also accept donations via bitcoin: `18Ew1xGy1E3kjH1UyPEgJ3nnDN3ZWUY1N1` |
| 22 | +> [!NOTE] |
| 23 | +> **Before starting work on a new feature**, discuss it with the dev team in our [chat room](https://chat.userfrosting.com) or [GitHub Discussions](https://github.com/userfrosting/UserFrosting/discussions). This ensures your contribution aligns with the project's vision and technical requirements. |
| 24 | +> |
| 25 | +> UserFrosting is fully modular - additional features might be better implemented as a custom [Sprinkle](/sprinkles) rather than added to the core framework. Join us in chat to discuss the best approach for your feature. |
23 | 26 |
|
24 | | -You can also help pay for our web and chat server costs by signing up with DigitalOcean using our [referral link](https://m.do.co/c/833058cf3824). Once you've spent $25 with them, we'll earn $25 towards our own DigitalOcean account. |
| 27 | +### Style and Coding Standards |
25 | 28 |
|
26 | | -## Contributing time |
| 29 | +All contributions should follow these standards: |
27 | 30 |
|
28 | | -Our chat room can get very busy! We have users from all over the world, looking for help 24/7. Although we tends to spend *nearly* every waking minute on our computer, the majority of the main developers, who mostly live in the UTC-4 timezone, do need to sleep, eat, and work from time to time. |
| 31 | +- **PHP**: Follow [PSR-12](https://www.php-fig.org/psr/psr-12/) coding style standard |
| 32 | +- **TypeScript/JavaScript**: Follow project conventions (check existing code) |
| 33 | +- **Vue Components**: Use Vue 3 Composition API patterns |
| 34 | +- **CSS**: Follow the project's existing styling patterns |
| 35 | +- **Documentation**: Use clear, concise language with proper Markdown formatting |
29 | 36 |
|
30 | | -If you feel like you've gotten a handle on UserFrosting, it would be extremely helpful if you can simply keep a browser tab open to our [chat room](https://chat.userfrosting.com), and help out other users when you have a chance. |
| 37 | +Consider using automated tools: |
| 38 | +- **PHP**: [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) and [PHPStan](https://phpstan.org/) |
| 39 | +- **Frontend**: ESLint and Prettier (configured in the project) |
31 | 40 |
|
32 | | -## Contributing code and content |
| 41 | +### Contributing to the Monorepo |
| 42 | + |
| 43 | +UserFrosting uses a centralized [monorepo](https://github.com/userfrosting/monorepo) for core development. This repository contains the framework and core sprinkles. |
33 | 44 |
|
34 | | -Yes, we welcome pull requests! Based on your level of skill and background, you might consider contributing to any of the following: |
| 45 | +**Pull request guidelines:** |
35 | 46 |
|
36 | | -- Language translations |
37 | | -- Implementing feature requests |
38 | | -- Fixing bugs |
| 47 | +1. **Fork** the repository and create a feature branch from `main` |
| 48 | +2. **Write clear commit messages** describing your changes |
| 49 | +3. **Test your changes** - add or update tests as needed |
| 50 | +4. **Update documentation** if you're changing public APIs |
| 51 | +5. **Submit a pull request** against the `main` branch |
| 52 | +6. **Update CHANGELOG.md** with your changes |
| 53 | + |
| 54 | +**Branch naming conventions:** |
| 55 | +- `feature/description` - New features |
| 56 | +- `fix/description` - Bug fixes |
| 57 | +- `docs/description` - Documentation updates |
| 58 | +- `refactor/description` - Code refactoring |
39 | 59 |
|
40 | 60 | > [!TIP] |
41 | | -> Don't start working on a new feature until you've discussed it with a member of the dev team in chat first. It's always a tragedy when someone spends a lot of time working on a feature, only to have their pull request rejected because their code doesn't fit the technical requirements and/or general vision for UF's future. |
42 | | -> Since UF4 is fully modular and extendable, additional features might be best implemented as a new [Sprinkle](/sprinkles) rather than being added to the core UserFrosting project. Join us in chat to discuss an appropriate development plan for your feature. |
| 61 | +> Before submitting your pull request, make sure all tests pass and there are no linting errors. Run `composer test` and `npm run lint` to verify. |
43 | 62 |
|
44 | | -Requirements are as follows: |
| 63 | +## Contributing to Documentation |
45 | 64 |
|
46 | | -### Style and Coding Standards |
| 65 | +Documentation lives in the [learn repository](https://github.com/userfrosting/learn). To contribute: |
| 66 | + |
| 67 | +1. Fork the repository |
| 68 | +2. Edit Markdown files in `app/pages/{version}/` |
| 69 | +3. Follow the [documentation style guide](#documentation-style) |
| 70 | +4. Test locally by running the documentation site |
| 71 | +5. Submit a pull request |
| 72 | + |
| 73 | +**Documentation best practices:** |
| 74 | +- Use clear, educational language aimed at varying skill levels |
| 75 | +- Include practical code examples |
| 76 | +- Add images where they clarify concepts (store in `app/pages/{version}/images/`) |
| 77 | +- Cross-reference related pages |
| 78 | +- Test all code snippets to ensure accuracy |
| 79 | + |
| 80 | +## Financial support |
| 81 | + |
| 82 | +UserFrosting is completely free and open source, and licensed under the [MIT License](https://github.com/userfrosting/UserFrosting/blob/master/LICENSE.md). |
| 83 | + |
| 84 | +That being said, yes, we'll take your money! |
| 85 | + |
| 86 | +Your financial contribution will help keep our chat and demo servers going. And, who knows? Maybe enough people will donate and we can make UserFrosting our full-time job ;-) |
| 87 | + |
| 88 | +The easiest way to contribute financially is through [Open Collective](https://opencollective.com/userfrosting) or [Ko-fi](https://ko-fi.com/lcharette). |
| 89 | + |
| 90 | +You can also help pay for our web and chat server costs by signing up with DigitalOcean using our [referral link](https://m.do.co/c/833058cf3824). Once you've spent $25 with them, we'll earn $25 towards our own DigitalOcean account. |
| 91 | + |
| 92 | +## Code of Conduct |
47 | 93 |
|
48 | | -Please make sure any PHP code conforms to the [PSR](http://www.php-fig.org/psr/). CSS and HTML should adhere to the [Code Guide](http://codeguide.co/). |
| 94 | +UserFrosting follows a [Code of Conduct](https://github.com/userfrosting/UserFrosting/blob/main/CODE_OF_CONDUCT.md) to ensure a welcoming, inclusive community. By participating, you agree to uphold these standards. |
49 | 95 |
|
50 | | -### Git Flow |
| 96 | +## Questions? |
51 | 97 |
|
52 | | -When making a pull request for a bug fix or translation pack, set your "base branch" to the `hotfix-development` branch. Accepted pull requests will be merged into `master` in batches with a new hotfix number as needed. This will allow us to keep track of which version number every change belongs to, which is useful when tracking down other users' issues. |
| 98 | +If you have questions about contributing: |
53 | 99 |
|
54 | | -### Change Log |
| 100 | +- Join our [chat room](https://chat.userfrosting.com) |
| 101 | +- Start a [GitHub Discussion](https://github.com/userfrosting/UserFrosting/discussions) |
| 102 | +- Check the [contributing guidelines](https://github.com/userfrosting/UserFrosting/blob/main/CONTRIBUTING.md) in the repository |
55 | 103 |
|
56 | | -When submitting code, make sure to add feature/major changes to `README.md` and **all** changes to `CHANGELOG.md`. |
| 104 | +Thank you for helping make UserFrosting better! 🙏 |
0 commit comments