First of all, thank you for taking the time to contribute! Every contribution helps make this package better for everyone.
- Fix a bug
- Add a new feature
- Improve the documentation
- Write tests
- Share the package with others
Click the Fork button on GitHub to create your own copy.
git clone https://github.com/YOUR_USERNAME/quick-socket.git
cd quick-socketnpm installnpm testAll tests should pass before you start making changes.
git checkout -b feature/your-feature-nameUse a clear branch name like:
feature/add-typescriptfix/room-memory-leakdocs/improve-readme
Keep your changes focused — one feature or fix per pull request.
npm testMake sure all tests still pass. If you added a new feature, add a test for it too.
git add .
git commit -m "feat: add your feature description"Use clear commit messages:
feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for adding tests
git push origin feature/your-feature-nameThen go to GitHub and open a Pull Request. Describe what you changed and why.
New to open source? These are real open issues — pick one and comment on it to claim it:
| Issue | What to do |
|---|---|
| #17 — Test: presence system | Write tests for trackPresence, setPresence, getPresence, getRoomPresence |
| #18 — Test: rate limiter | Write tests for createRateLimiter — window reset, blocked packets, custom callback |
| #19 — Test: reconnect recovery | Write tests for rejoinRooms and getUserRooms |
These are great starting points if you're new to open source. All three just need tests — no new logic required.
Look for issues labeled "good first issue" on GitHub for more.
- Clean, readable code
- No unnecessary dependencies
- Tests for new features
- Clear commit messages
- Respectful communication
- Large unrelated changes in one PR
- Breaking existing functionality
- Removing tests
Open an issue on GitHub and we'll help you get started. No question is too small!
- Use
camelCasefor variables and functions - Keep functions small and focused
- No comments unless the logic is truly complex
Thank you for contributing!