Skip to Content
CommunityContributing

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:

  1. Fork the repository
  2. Create a feature branch
  3. Write tests for new features
  4. Update documentation
  5. Submit PR

Development Setup

Clone Repository

git clone https://github.com/gluonic/gluonic.git cd gluonic

Install Dependencies

pnpm install

Run Tests

# All tests pnpm test # Specific package pnpm test --filter @gluonic/client pnpm test --filter @gluonic/server

Run Examples

cd examples/blog-app pnpm install pnpm dev:server # Terminal 1 pnpm dev:client # Terminal 2

Code 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 dependencies

5. 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?

Thank you for contributing! 🙏

Last updated on