Skip to main content

About Contributions

How to contribute to ODE.

Overview

The OpenDataEnsemble (ODE) project welcomes contributions from everyone—whether you're interested in code, documentation, design, testing, or community building. We believe that diverse perspectives make our project stronger, and we're committed to creating an inclusive environment where contributors of all backgrounds and experience levels feel welcome.

You don't need to be an expert to contribute. Many of our most valuable contributions come from people who:

  • Found a bug while using ODE
  • Wanted to improve our documentation
  • Had an idea for a new feature
  • Wanted to help other users

Ways to Contribute

1. Report Bugs

Found an issue? Help us improve ODE by reporting it:

  • Check existing issues first to avoid duplicates
  • Create a new issue with:
    • Clear title describing the bug
    • Steps to reproduce the issue
    • Expected behavior vs. actual behavior
    • Your environment (OS, browser/app version, etc.)
    • Screenshots or error messages if applicable
    • Relevant logs or stack traces

2. Suggest Features

Have an idea? We'd love to hear it:

  • Check existing issues and GitHub Discussions to prevent duplicates
  • Start a discussion about your idea
  • Describe the feature and why it would be useful
  • Include examples of how you'd use it
  • Wait for community feedback before implementing

3. Improve Documentation

Love writing? Documentation is critical to ODE's success:

  • Fix typos and grammar errors
  • Clarify confusing sections
  • Add missing examples or code snippets
  • Create how-to guides for common tasks
  • Translate documentation to other languages
  • Add FAQs based on common questions

Documentation lives in the /docs folder and uses Markdown + Docusaurus.

4. Write Code

Ready to code? We welcome code contributions:

  • Bug fixes - Fix reported issues
  • Features - Implement new functionality
  • Refactoring - Improve code quality
  • Tests - Add missing test coverage
  • Performance - Optimize bottlenecks
  • Dependencies - Update libraries and frameworks

ODE is built with:

  • Frontend: TypeScript, React, React Native
  • Backend: Go, PostgreSQL
  • DevOps: Docker, GitHub Actions

5. Review Code

Experienced with ODE? Help review PRs:

  • Review pull requests from other contributors
  • Test changes locally
  • Provide constructive feedback
  • Help document design decisions
  • Verify that solutions address the root cause

6. Participate in Community

Like helping others? Build our community:

  • Answer questions in GitHub Discussions
  • Help troubleshoot issues
  • Share your ODE projects and use cases
  • Contribute to design discussions
  • Mentor new contributors
  • Organize community events or webinars

7. Improve Accessibility

Care about inclusion? Help make ODE accessible:

  • Report accessibility issues
  • Test with screen readers
  • Improve color contrast
  • Add missing alt-text to images
  • Ensure keyboard navigation works
  • Test with different browsers/devices

Contribution Process

Phase 1: Planning

  1. Check existing work - Browse issues and discussions to understand scope
  2. Discuss first - For major features, start a discussion to get feedback
  3. Claim the work - Comment on the issue: "I'd like to work on this"
  4. Understand requirements - Talk to maintainers about expectations

Phase 2: Development

  1. Set up environment - Follow setup guide for your component
  2. Create a branch - Use git checkout -b descriptive-branch-name
  3. Make changes - Write code or documentation
  4. Test thoroughly - Run tests and verify your changes work
  5. Commit with clear messages - Use conventional commit format
  6. Keep commits logical - One feature/fix per commit

For detailed instructions, see the First Time Contributors guide.

Phase 3: Pull Request

  1. Create PR - Push your branch and open a pull request on GitHub
  2. Fill out template - Describe your changes clearly
  3. Link the issue - Reference the issue you're fixing
  4. Wait for review - Maintainers will review your code
  5. Respond to feedback - Address comments and requests
  6. Iterate - Push new commits to update your PR

Phase 4: Merge

  1. Get approval - Usually 1-2 approvals required
  2. Pass checks - All automated tests must pass
  3. Merge! - Maintainers will merge your PR
  4. Celebrate! - Your code is now part of ODE!

Additional Resources

Getting Started

Development Guides

Community

Recognition

Contributors are the backbone of ODE. We recognize contributions by:

  • Mentioning you in release notes - Your work is highlighted in each release
  • Adding you to contributors list - Your name appears in the README and documentation
  • Inviting you to join the team - Major contributors may be invited to join maintainers
  • Sharing your work - We highlight great contributions on social media and in announcements

Questions?

Not sure where to start? Here are some options:

  1. Read this page - You might find your answer here
  2. Check existing discussions - Search GitHub Discussions
  3. Start a new discussion - Ask your question in GitHub Discussions
  4. Comment on an issue - Ask questions on related issues
  5. Email maintainers - Contact the project maintainers directly

We're here to help and want to make contributing as easy as possible!