First off, thank you for considering contributing to Reactive! We're excited to have you join our community.
- ps Remember to ask us to assign you the issue#, so that we dont have multiple people working on the same ticket/issue
If this is your first time contributing to an open source project, head over to our New to Open Source section. We've created a beginner-friendly guide just for you!
If you're an experienced contributor, check out our Experienced Contributor Guide to get started right away.
Welcome to your first open source contribution! We're here to help you get started.
Don't worry if this seems like a lot - we'll help you through it! Here's what you'll need:
- A GitHub account (it's free!)
- Git installed on your computer (Download here)
- VS Code (Download here)
-
Fork the Repository
- Go to our GitHub repository
- Click the "Fork" button in the top right
- This creates your own copy of our project!
-
Clone Your Fork
git clone https://github.com/YOUR-USERNAME/reactive.git
(Replace YOUR-USERNAME with your GitHub username)
At Reactive, we maintain several types of beginner-friendly issues:
- Convert individual JavaScript/JSX files to TypeScript/TSX
- Perfect for learning TypeScript in a real project
- Clear guidelines and examples provided
- Focus on single, self-contained components
- Create usage examples for specific features
- Add demo GIFs of key workflows
- Develop clear, illustrative screenshots
- Each task comes with clear requirements and examples
-
Find an Issue
- Look for issues labeled
good first issue
in our repository - Comment on the issue saying you'd like to work on it
- We'll guide you through it!
- Look for issues labeled
-
Make Changes
- Create a new branch following our naming convention:
git checkout -b feature/GH-123-brief-description
Where:
feature/
indicates it's a new featureGH-123
is the GitHub issue numberbrief-description
is 2-4 words describing the change
For example:
git checkout -b feature/GH-45-convert-app-tsx git checkout -b feature/GH-52-add-usage-demo
- Make your changes
- Test them out
- Follow the issue's specific guidelines
-
Submit Your Work
- Push your changes
- Create a Pull Request
- We'll review it and provide feedback!
- Read the entire issue description before starting
- Ask questions if anything is unclear
- Keep changes focused on the issue scope
- Test your changes thoroughly
- Update any relevant documentation
- Comment on the issue you're working on
- Join our community (coming soon)
- Check out these helpful resources:
- Node.js (v14+)
- VS Code
- Git
- Fork and clone the repository
- Install dependencies:
npm install
- Create a new branch:
git checkout -b feature/your-feature-name
- Use TypeScript
- Follow existing code formatting
- Add comments for complex logic
- Include tests for new features
- Update documentation as needed
- Add tests for new features
- Ensure all tests pass
- Update the README if needed
- Reference any related issues
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Reference issues in commit messages
- Write Jest/React Testing Library tests
- Ensure existing tests pass
- Test across different VS Code versions
reactive/
├── src/ # Source code
├── test/ # Test files
├── docs/ # Documentation
└── examples/ # Example files
- Submit Pull Request
- Address review feedback
- Ensure CI checks pass
- Await maintainer review
- Check existing issues and documentation
- Open a new issue with the question label
- Join our community discussions
For detailed information about the npm scripts available in the project, their purposes, and when to use them during development, please refer to the Development Scripts Guide.
Thank you for contributing to Reactive! 🎉