We prefer English language for all communication in issues, pull requests, and discussions.
Creating an Issue
Before creating an issue, please:- Search existing issues - Check if the problem is already reported
- Provide context - Include relevant details about your environment and use case
Bug Reports
For bug reports, please include:- Reproduction - Create a minimal reproduction using StackBlitz or CodeSandbox
- Expected behavior - What should happen
- Actual behavior - What actually happens
- Environment - Reatom version, framework, Node version, etc.
Feature Requests
For feature requests, please include:- Motivation - Why is this feature needed?
- Use cases - How would you use this feature?
- Examples - Show what the API might look like
- Alternatives - What alternatives have you considered?
Development Setup
1
Fork and clone the repository
2
Create a development branch from v1000
3
Install dependencies
We recommend Node 24.2.0 and pnpm 10.25.0:
This command installs dependencies for all packages but only builds
@reatom/core.4
Build the package you're editing
<PACKAGE_NAME> with the relevant package like @reatom/react.Example:Making Changes
Coding Guidelines
- Bug fixes should include tests that reproduce the bug
- New features must be tested and documented
- Type annotations - Use
// @ts-ignorefor temporary suppressions,// @ts-expect-errorfor known false positives
Testing
Run tests for your package:Code Style
- Follow the existing code style in the package
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and small
Commit Messages
Reatom uses Conventional Commits specification:Commit Types
chore- Repository maintenance changesfeat- New featurefix- Bug fixperf- Performance improvementrefactor- Code change that neither fixes a bug nor adds a featuredocs- Documentation only changesci- CI configuration and script changesstyle- Cosmetic code changestest- Adding or correcting testsrevert- Reverting previous commits
Scope
The scope is the package directory name. For example,/packages/react is scoped as react.
Description Rules
- Write in English
- Use imperative mood (like
changeinstead ofchangedorchanges) - Don’t capitalize the first letter
- Don’t add period (
.) at the end
Examples
Submitting a Pull Request
1
Make your changes and commit them
Follow the commit message guidelines.
2
Push your branch
3
Create a Pull Request
Go to the Reatom repository and create a Pull Request to merge into
v1000.4
Link to the issue
Use a closing keyword or provide a description:Or explain your changes with motivation if there’s no related issue.
5
Wait for review
A team member will review your PR. Be responsive to feedback and make requested changes.
PR Guidelines
- Keep it focused - One PR should address one issue or feature
- Update documentation - Include docs for new features
- Add tests - Ensure new code is tested
- Follow code style - Match the existing patterns
- Be responsive - Address review feedback promptly
Creating a New Package
Reatom’s ecosystem includes adapters for Web APIs and popular npm modules. Creating a new package is similar to editing an existing one.1
Run the package generator
From the repository root:Follow the interactive prompts to create your package structure.
2
Add dependencies
Add dependencies to your package:Or update
package.json manually and run:3
For adapter packages, add peer dependencies
If creating an adapter (like Example:
@reatom/react for React):4
Implement your package
Follow the coding guidelines and add tests.
5
Document your package
Create or update the README.md in your package directory with:
- Installation instructions
- Usage examples
- API documentation
Package Structure
Development Workflow
Watch Mode
During development, run your package in watch mode:Testing Changes
Test your changes in an example app:- Build your package
- Link it to an example app using
pnpm link - Or use the examples in the repo:
examples/react-search
Running Examples
Documentation
Code Comments
Add JSDoc comments for public APIs:README Files
Each package should have a README with:- Installation - How to install the package
- Quick Start - Basic usage example
- API Reference - All exported functions/types
- Examples - Common use cases
- TypeScript - Type information if relevant
Community
Join the Reatom community:- Twitter - Updates and announcements
- Discord - Real-time chat
- GitHub Discussions - Questions and ideas
- Telegram (RU) - Russian community
- YouTube (RU) - Video tutorials
Code of Conduct
- Be respectful - Treat everyone with respect
- Be constructive - Provide helpful feedback
- Be patient - Maintainers are volunteers
- Be collaborative - Work together towards solutions
Getting Help
If you need help contributing:- Check existing issues and PRs
- Ask in Discord
- Start a GitHub Discussion
Recognition
All contributors are recognized in:- Contributors graph
- Package release notes
- Project README
Additional Resources
- Architecture Overview - Understanding Reatom’s design
- API Reference - Complete API documentation
- Examples - Reference implementations
- Changelog - Recent changes