Thank you for your interest in contributing to CodeVibe! We welcome contributions from developers of all backgrounds and skill levels. This guide will help you get started with contributing to our project.
- Node.js (v18 or higher)
- npm or yarn
- Git
- Basic knowledge of TypeScript, React, and Next.js
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/codevibe.git cd codevibe - Install dependencies:
npm install
- Set up the database:
npx prisma migrate dev
- Start the development server:
npm run dev
- Open http://localhost:3000 in your browser
We welcome contributions in various areas:
- UI/UX improvements: Enhance the user interface and experience
- New features and integrations: Add functionality that benefits users
- Bug fixes and optimizations: Help make CodeVibe more stable and performant
- Documentation and tutorials: Improve guides, docs, and examples
- Testing and QA: Add tests and help identify issues
- Accessibility: Make CodeVibe more accessible to all users
- Performance: Optimize loading times and resource usage
- Browse our open issues
- Look for issues labeled
good first issueif you're new to the project - Check for issues labeled
help wantedfor areas where we need assistance
If you have an idea for a new feature:
- Check if a similar feature request already exists
- Open a new issue with the
feature requestlabel - Describe the feature, its benefits, and potential implementation approach
- Wait for maintainer feedback before starting work
-
Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes following our coding standards:
- Write clear, readable code
- Follow existing code patterns and conventions
- Add comments for complex logic
- Ensure your code is properly typed (TypeScript)
-
Test your changes:
npm run lint npm run build
-
Commit your changes with a clear message:
git add . git commit -m "feat: add new collaborative editing feature"
-
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub:
- Use a clear, descriptive title
- Fill out the PR template completely
- Reference any related issues
- Add screenshots for UI changes
- Request review from maintainers
- Use TypeScript for all new code
- Follow existing naming conventions
- Use meaningful variable and function names
- Keep functions small and focused
- Use existing ESLint and Prettier configurations
- Use functional components with hooks
- Follow React best practices
- Use Tailwind CSS for styling (no custom CSS files)
- Utilize Shadcn UI components when possible
- Make components accessible (ARIA attributes, keyboard navigation)
- Place new components in
src/components/ - Add utilities to
src/lib/ - Follow the existing directory structure
- Use kebab-case for file names
- Use PascalCase for component names
Use conventional commits format:
feat:for new featuresfix:for bug fixesdocs:for documentation changesstyle:for formatting changesrefactor:for code refactoringtest:for adding testschore:for maintenance tasks
- Add tests for new features when possible
- Ensure existing tests pass:
npm test - Test your changes manually in the browser
- Test on different screen sizes and devices
- Update README.md if you add new features
- Add JSDoc comments for complex functions
- Update relevant documentation files
- Include examples in your documentation
When reporting bugs, please include:
- Bug description: Clear description of the issue
- Steps to reproduce: Step-by-step instructions
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Screenshots: If applicable
- Environment: OS, browser, Node.js version
- Additional context: Any other relevant information
- Join discussions in our GitHub issues
- Reach out to @kaifcoder for questions
- Check existing documentation and setup guides
Please read and follow our Code of Conduct to ensure a welcoming environment for all contributors.
All contributors will be recognized in our project. We appreciate every contribution, no matter how small!
By contributing to CodeVibe, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to CodeVibe! Together, we're building the future of collaborative coding. 🎉