Skip to main content

Contributing to DeepWikiOpen

Thank you for your interest in contributing to DeepWikiOpen! Weโ€™re excited to have you join our community. This guide will help you get started with contributing to our project.

๐Ÿค Code of Conduct

We are committed to providing a welcoming and inclusive environment for all contributors. By participating in this project, you agree to abide by our Code of Conduct:

Our Pledge

We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

Expected Behavior

  • Use welcoming and inclusive language
  • Be respectful of differing viewpoints and experiences
  • Gracefully accept constructive criticism
  • Focus on what is best for the community
  • Show empathy towards other community members

Unacceptable Behavior

  • Harassment, discrimination, or hate speech of any kind
  • Personal attacks or insults
  • Publishing othersโ€™ private information without consent
  • Any conduct that could reasonably be considered inappropriate

Enforcement

Violations of the Code of Conduct may result in temporary or permanent exclusion from the project. Please report any incidents to conduct@deepwikiopen.org.

๐Ÿ› How to Report Issues

We use GitHub Issues to track bugs, feature requests, and other project-related discussions.

Before Reporting an Issue

  1. Search existing issues to avoid duplicates
  2. Check the documentation to ensure itโ€™s not a known limitation
  3. Try the latest version to see if the issue has been fixed

Creating a Bug Report

When reporting a bug, please include:

๐Ÿ’ก Feature Request Process

We love hearing your ideas for improving DeepWikiOpen!

Submitting a Feature Request

  1. Check existing requests in Issues and Discussions
  2. Create a new issue with the โ€œfeature requestโ€ label
  3. Provide detailed information:
    • Clear description of the feature
    • Use cases and benefits
    • Potential implementation approach
    • Any relevant examples or mockups

Feature Request Template

๐Ÿš€ Development Setup

Follow these steps to set up your development environment:

Prerequisites

  • Node.js 18.0 or higher
  • npm or yarn package manager
  • Git
  • A code editor (we recommend VS Code)

Setup Instructions

Environment Configuration

Create a .env.local file in the root directory:

๐Ÿ“ Code Style Guidelines

We maintain consistent code style to ensure readability and maintainability.

General Guidelines

  • Use TypeScript for all new code
  • Follow ESLint and Prettier configurations
  • Write self-documenting code with clear variable and function names
  • Keep functions small and focused (single responsibility)
  • Use meaningful commit messages following conventional commits

TypeScript Style

React/Component Style

Running Code Quality Checks

๐Ÿงช Testing Requirements

All contributions must include appropriate tests.

Test Categories

  1. Unit Tests - Test individual functions and components
  2. Integration Tests - Test component interactions
  3. End-to-End Tests - Test complete user workflows

Writing Tests

Running Tests

Test Coverage Requirements

  • Maintain minimum 80% code coverage
  • All new features must include tests
  • Bug fixes should include regression tests

๐Ÿ“š Documentation Standards

Good documentation is crucial for project success.

Documentation Types

  1. Code Comments - Explain complex logic
  2. API Documentation - Document all public APIs
  3. User Guides - Help users understand features
  4. Developer Guides - Help contributors understand the codebase

Documentation Style

MDX Documentation

When writing MDX documentation:
  • Use clear, concise language
  • Include code examples
  • Add visual aids when helpful
  • Structure content with proper headings
  • Include a table of contents for long documents

๐Ÿ”„ Pull Request Process

Before Creating a PR

  1. Fork the repository and create a feature branch
  2. Make your changes following our guidelines
  3. Write/update tests for your changes
  4. Update documentation as needed
  5. Run all checks locally:

Creating a Pull Request

  1. Push your branch to your fork
  2. Create a PR from your fork to our main branch
  3. Fill out the PR template completely:

PR Review Process

  1. Automated checks run on all PRs
  2. Code review by maintainers
  3. Address feedback promptly
  4. Approval and merge by maintainers

Tips for Getting Your PR Merged

  • Keep PRs focused and small
  • Write clear commit messages
  • Respond to feedback constructively
  • Be patient and respectful
  • Update your PR if merge conflicts arise

๐Ÿ’ฌ Community Channels

Join our community to get help, share ideas, and connect with other contributors:

Official Channels

Community Guidelines

  • Be helpful and supportive
  • Share knowledge freely
  • Respect different skill levels
  • Keep discussions on-topic
  • Report inappropriate behavior

Getting Help

  • Documentation - Start with our docs
  • FAQ - Check frequently asked questions
  • Discord #help - Ask the community
  • GitHub Discussions - For deeper technical discussions

๐Ÿ† Recognition and Credits

We believe in recognizing all contributions to our project!

Types of Contributions We Recognize

  • Code contributions - Features, bug fixes, improvements
  • Documentation - Guides, API docs, examples
  • Design - UI/UX improvements, graphics
  • Testing - Test cases, bug reports
  • Community - Helping others, organizing events
  • Translations - Localizing content

How We Recognize Contributors

  1. Contributors File - All contributors listed in CONTRIBUTORS.md
  2. Release Notes - Contributors mentioned in releases
  3. Website Credits - Featured on our website
  4. Contributor Badge - Special Discord role
  5. Swag - Top contributors receive DeepWikiOpen swag

Becoming a Core Contributor

Consistent, high-quality contributions may lead to:
  • Write access to the repository
  • Invitation to maintainer meetings
  • Decision-making in project direction
  • Mentoring new contributors

All Contributors

We use the All Contributors specification to recognize all types of contributions. Your avatar will appear in our README!

๐ŸŽ‰ Thank You!

Every contribution, no matter how small, helps make DeepWikiOpen better. Weโ€™re grateful for your time and effort in improving our project. If you have any questions not covered in this guide, please donโ€™t hesitate to ask in our community channels. Weโ€™re here to help! Happy contributing! ๐Ÿš€