Skip to main content

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​

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​

  1. Clone the repository
git clone <https://github.com/refract-js/refract.git>
cd refract
  1. Install dependencies
npm install
  1. Run tests to verify everything works
npm run test
  1. Start development server (if applicable)
npm run dev

Project structure​

Understanding the project structure help you to understand the codebase:

Project Structure
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:

  1. Check existing issues and discussions
  2. Read the documentation
  3. Use Discord for real-time help
  4. 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