Thank you for your interest in contributing to SuperDoc! We're excited to have you join our community. This document provides guidelines and information about contributing to the project.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Style Guidelines
- Community
This project and everyone participating in it are governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to support@harbourshare.com.
Before creating bug reports, please check existing issues as you might find that the issue has already been reported. When creating a bug report, include as many details as possible:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Screenshots if applicable
- Your environment (browser, OS, SuperDoc version)
- Code samples demonstrating the issue
- Any relevant error messages
Feature suggestions are tracked as GitHub issues. When creating a feature suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the proposed feature
- Explain why this feature would be useful
- Include mockups or examples if applicable
Documentation is crucial for our project. You can help by:
- Fixing typos and grammar
- Adding code examples
- Improving explanations
- Adding new sections
- Translating documentation
- Bug fixes: Resolve existing issues
- Features: Implement new functionality
- Performance improvements: Optimize existing code
- Tests: Add or improve test coverage
- Framework integrations: Create examples for different frameworks
- Documentation: Improve SuperDoc documentation
-
Fork and Clone:
git clone https://github.com/Harbour-Enterprises/SuperDoc.git cd SuperDoc -
Install Dependencies:
npm install
-
Set Up Development Environment:
npm run dev
-
Run Tests:
npm test
-
Branch Naming:
feature/descriptionfor new featuresfix/descriptionfor bug fixesdocs/descriptionfor documentation changesperf/descriptionfor performance improvements
-
Commit Messages:
- Use present tense ("add feature" not "added feature")
- Be descriptive but concise
- Reference issues and pull requests
feat: add real-time cursor sharing - Implement cursor position tracking - Add websocket connection for updates - Include user identification Closes #123 -
Before Submitting:
- Update documentation if needed
- Add or update tests
- Run the test suite
- Update the changelog if applicable
- Ensure CI passes
-
Pull Request Description:
- Describe the changes
- Link to related issues
- Include screenshots for UI changes
- List any breaking changes
- Mention dependencies added/removed
- Use JavaScript for all new code
- Follow the existing code style
- Use ES6+ features when appropriate
- Document public APIs using JSDoc
- Maximum line length of 100 characters
- Use meaningful variable names
- Use JSDoc
- Include code examples when relevant
- Keep explanations clear and concise
- Use proper Markdown formatting
- Write tests for new features
- Update tests for bug fixes
- Aim for high coverage of critical paths
- Include both unit and integration tests
- Test edge cases and error conditions
- Join our Discord server for discussions
- Participate in GitHub Discussions
- Attend our community meetings (schedule TBA)
We recognize contributions in several ways:
- Featured in our contributors page
- Mentioned in release notes
- Opportunities to join the core team
If you have questions, feel free to:
- Start a GitHub Discussion
- Join our Discord server
- Email us at support@harbourshare.com
Thank you for contributing to SuperDoc! Your efforts help make document editing on the web better for everyone.