Contributing
Help make Gluonic better! Contributions are welcome and appreciated.
Ways to Contribute
🐛 Report Bugs
Found a bug? Open an issue
Include:
- Description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Environment (OS, Node version, Gluonic version)
- Code snippet or repo link
💡 Request Features
Have an idea? Open a feature request
Include:
- Use case (what problem does it solve?)
- Proposed API (how would it work?)
- Alternatives considered
- Willingness to implement
📝 Improve Documentation
Docs can always be better:
- Fix typos or errors
- Add examples
- Clarify confusing sections
- Add translations
Edit pages directly:
Every page has “Edit this page on GitHub” link.
🔧 Submit Code
Pull requests welcome!
Process:
- Fork the repository
- Create a feature branch
- Write tests for new features
- Update documentation
- Submit PR
Development Setup
Clone Repository
git clone https://github.com/gluonic/gluonic.git
cd gluonicInstall Dependencies
pnpm installRun Tests
# All tests
pnpm test
# Specific package
pnpm test --filter @gluonic/client
pnpm test --filter @gluonic/serverRun Examples
cd examples/blog-app
pnpm install
pnpm dev:server # Terminal 1
pnpm dev:client # Terminal 2Code Guidelines
Style
- TypeScript (strict mode)
- No semicolons
- Single quotes for strings
- 2-space indentation
- Prettier formatting
Naming
- Files: kebab-case (
sync-protocol.ts) - Functions/variables: camelCase (
getUserId) - Classes: PascalCase (
GraphBridge) - Types: PascalCase (
WireRow)
Testing
- Unit tests for all new features
- Integration tests for adapters
- E2E tests for examples
- Maintain 80%+ coverage
Pull Request Process
1. Create Issue First
Discuss feature/fix before coding (saves time!).
2. Write Tests
Tests required for:
- New features
- Bug fixes
- Adapter implementations
3. Update Docs
Documentation required for:
- New APIs
- Configuration changes
- Breaking changes
4. Commit Messages
Follow conventional commits:
feat: add caching adapter
fix: resolve WebSocket reconnection issue
docs: improve quick start guide
test: add integration tests for Prisma adapter
chore: update dependencies5. Submit PR
Include in PR description:
- What changed
- Why (link to issue)
- How to test
- Screenshots (if UI)
Community Guidelines
Be Respectful
- Assume good intent
- Be patient with beginners
- Provide constructive feedback
- Welcome diverse perspectives
Be Helpful
- Answer questions
- Review PRs
- Share knowledge
- Help onboard new contributors
Recognition
Contributors are recognized:
- Listed in CONTRIBUTORS.md
- Mentioned in release notes
- Highlighted in Discord
- Invited to maintainer team (if regular contributor)
License
By contributing, you agree that your contributions will be licensed under Apache 2.0.
Questions?
- Ask in GitHub Discussions
- Join Discord
- Email: contribute@gluonic.dev
Thank you for contributing! 🙏
Last updated on