Contributing to refract
Your contributions to the community are welcome Whether you're fixing bugs, adding features, improving documentation, or helping others, there are many ways you can contribute to Refract.
Ways to contribute
Bug Reports
Help identify and fix issues by reporting bugs with detailed information.
Feature Requests
Suggest new features or improvements to make Refract even better.
Documentation
Improve docs, write tutorials, or create examples to help other developers.
Code Contributions
Submit pull requests with bug fixes, new features, or performance improvements.
Getting started
Prerequisites
Before contributing, make sure you have:
- Node.js (version 19 or higher)
- npm or yarn package manager
- Git for version control
- A GitHub account
Setting up the development environment
- Clone the repository
git clone <https://github.com/refract-js/refract.git>
cd refract
- Install dependencies
- npm
- yarn
- pnpm
npm install
yarn add
pnpm add
- Run tests to verify everything works
- npm
- yarn
- pnpm
npm run test
yarn test
pnpm test
- Start development server (if applicable)
- npm
- yarn
- pnpm
npm run dev
yarn dev
pnpm dev
Project structure
Understanding the project structure help you to understand the codebase:
refract/
├── src/ # Core Refract source code
│ ├── core/ # Core functionality
│ ├── components/ # Component creation utilities
│ ├── refractions/ # Reactive state system
│ ├── lenses/ # Lens implementation
│ └── optics/ # Optical composition
├── tests/ # Test files
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── e2e/ # End-to-end tests
├── docs/ # Documentation source
├── examples/ # Example applications
├── benchmarks/ # Performance benchmarks
└── tools/ # Build and development tools`}
Community guidelines
Code of conduct
The Refract community is a welcoming and inclusive environment for all contributors. Please:
- Be respectful and considerate in all interactions
- Be collaborative and help others learn
- Be patient with newcomers and different skill levels
- Be constructive when providing feedback
- Be inclusive and welcome diverse perspectives
Communication channels
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - General questions and community chat
- Discord - Real-time community support
- Twitter - Updates and announcements
Recognition
The team value all contributions to Refract. You are recognize through:
- Contributors list in the README
- Release notes mentioning significant contributions
- Community highlights on social media
- Maintainer nominations for outstanding contributors
Getting help
If you need help contributing:
- Check existing issues and discussions
- Read the documentation
- Use Discord for real-time help
- Create a discussion on GitHub for complex questions
Release process
Refract follows semantic versioning (SemVer):
- Patch (1.0.1) - Bug fixes and small improvements
- Minor (1.1.0) - New features that are backward compatible
- Major (2.0.0) - Breaking changes
Thank you
Thank you for considering contributing to Refract. Every contribution, no matter how small, helps make Refract better for everyone. Your time and effort is appreciate in helping build the future of reactive JavaScript frameworks.
Ready to contribute? Check out open issues or start a discussion