We welcome contributions to Reatom! This guide will help you get started whether you’re fixing a bug, adding a feature, or creating a new package.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/reatom/reatom/llms.txt
Use this file to discover all available pages before exploring further.
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
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.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
Make your changes and commit them
Follow the commit message guidelines.
Create a Pull Request
Go to the Reatom repository and create a Pull Request to merge into
v1000.Link to the issue
Use a closing keyword or provide a description:Or explain your changes with motivation if there’s no related issue.
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.Run the package generator
From the repository root:Follow the interactive prompts to create your package structure.
For adapter packages, add peer dependencies
If creating an adapter (like Example:
@reatom/react for React):Implement your package
Follow the coding guidelines and add tests.
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