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) |
|
| 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 following 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 git@github.com:CrowdDotDev/crowd.dev.git- Run the start script:
cd scripts
./cli startFor hot reloading, you can run:
cd scripts
./cli clean-start-devThe 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 upBy 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.
This project uses Conventional Commits enforced by commitlint.
Documentation:
Enforcement: Commitlint runs automatically via Husky on every commit. Invalid commit messages will be rejected.
PR Title Requirements:
- Must follow conventional commit format:
type(scope): description - Should include JIRA ticket key in title:
feat: add new feature (CDP-123)
PR Process:
- Ensure your commits follow the conventional commit format
- Include JIRA ticket key in PR title
- Provide clear description of changes
- Ensure all tests pass
- Request review from a member of the team
Using JIRA MCP Server: Leverage the JIRA MCP server for efficient ticket management during development.
Documentation:
Ticket Linking:
- When possible reference JIRA tickets in commit messages and PR titles
- Use format:
type: conventional commit message (TICKET-KEY) - This enables automatic linking between code changes and tickets
Leveraging AI Tools: The Linux Foundation provides guidelines and best practices for using AI in development workflows.
Documentation:
Best Practices:
- Follow LFX guidelines when using AI tools for code generation
- Ensure AI-generated code meets our quality standards
- Review and test all AI-assisted contributions thoroughly
If you need help with any sort of contribution, please feel free to reach out on Discord or book a contributor onboarding call.