Contributions are what make the open source community such an amazing place to learn, inspire, and create.
- Try the crowd.dev platform & API and give feedback by creating new issues
- Help with open issues
- Add a new integration following our framework
- Help create tutorials and blog posts
- Improve documentation by fixing incomplete or missing docs, bad wording, examples or explanations
Any contributions you make are greatly appreciated. ❤️
Type of Issue | Priority |
Bug in Critical Features (Login, Integrations, etc) | |
Bug in Core Features (Home, Members, Organizations, Activities, Reports) | |
Confusing UX (but it's working) | |
Minor improvements |
We welcome any contribution to crowd.dev. Before you start with your first issue, please consider the folloing points:
- For your first contribution we recommend taking a look at our good first issues 🥂.
- Other issues that are well suited for contribution have the tag help wanted 🙏.
- If you want to contribute to our codebase, you have to first sign our Contributor License Agreement.
- If you need help you can reach us either via Discord or Book a 15 min Contributor Onboarding Call.
- Node v16.16.0
- Docker and docker-compose
The project is a monorepo, meaning that it is a collection of multiple packages managed in the same repository. In the following steps you'll learn how to get the project up and running for development purposes.
- Get the mono repo from GitHub
git clone [email protected]:CrowdDotDev/crowd.dev.git
- Run the start script
cd scripts
./cli start
For hot reloading, you can run
cd scripts
./cli clean-start-dev
App will be available at http://localhost:8081
For more information on development, you can check our docs.
To optimize resource usage during development, we would suggest starting only the necessary services and leveraging hot reloading where applicable.
- Start the scaffold service, including the necessary components like the database, etc:
./cli scaffold up
This will set up the foundational services required for the project.
- If you are primarily working on the frontend but also need the API without hot reloading
DEV=1 ./cli service frontend up
./cli service api up
By selectively starting the frontend and API services without enabling hot reloading, helps reduce resource usage.
Feel free to adjust the commands based on the specific services you need for your development tasks.
To ensure consistency throughout the source code, please keep these rules in mind as you are working:
- All features or bug fixes must be tested by one or more specs (unit-tests).
- We use Eslint default rule guide, with minor changes. An automated formatter is available using prettier.
- In-code documentation is required for every function or class that is not self-evident.
- All new API endpoints that are relevant to the public API must have in-code documentation to generate OpenAPI specifications.
- The pipeline must pass.
If you need help with any sort of contribution, please feel free to reach out on Discord or book a contributor onboarding call.