DocsContributing
Back to docs

Contributing to OpenPay

OpenPay is built by the community, for the community. Whether you're fixing a bug, adding a feature, improving documentation, or just asking a question — every contribution matters.

How to Contribute

1

Find or Create an Issue

Start by browsing existing issues on GitHub. Look for labels like good first issue or help wanted. If you're adding something new, create an issue first to discuss the approach with maintainers.

Browse 'good first issue' label
2

Fork & Clone

Fork the repository to your GitHub account, then clone it locally. Set up your development environment following the Quickstart guide.

Quickstart Guide
3

Create a Branch

Create a feature branch with a descriptive name. Use the format feat/your-feature-name, fix/your-bug-fix, or docs/your-doc-change.

4

Make Changes

Write your code following the project's conventions. Keep changes focused on a single issue — one PR per feature or fix. Add comments for complex logic and update documentation when relevant.

5

Test Your Changes

Run the existing test suite. For dashboard changes: cd apps/merchant-dashboard && pnpm lint && pnpm build. For infrastructure changes, verify with make up && make test-flow.

6

Submit a Pull Request

Push your branch and open a PR against the main branch. Fill out the PR template with a clear description of what you changed and why. Reference the issue number if applicable.

Code Style Guidelines

TypeScript

  • Use strict TypeScript — avoid any types
  • Use named exports over default exports
  • Prefer const over let; never use var
  • Use optional chaining (?.) and nullish coalescing (??)
  • Format with Prettier (default config)

React / Next.js

  • Use 'use client' directive only when needed (interactivity)
  • Keep server components as the default
  • Extract reusable components to /components
  • Use Tailwind CSS classes; avoid inline styles
  • Use the project's design tokens from globals.css

Commits

  • Follow Conventional Commits specification
  • Format: type(scope): description
  • Types: feat, fix, docs, refactor, test, chore
  • Example: feat(dashboard): add Stripe connector support

Pull Requests

  • One PR per issue — keep focused and small
  • Fill out the PR template completely
  • PRs require at least 1 approval before merging
  • Address all review comments
  • Squash and merge into main

Community Guidelines

Be Respectful

Use welcoming and inclusive language. Respect different viewpoints and experiences. Accept constructive criticism gracefully.

Help Others

Answer questions in GitHub Discussions. Review PRs when you can. Share your knowledge and experience with the community.

Give Credit

Acknowledge the work of others. Cite sources when sharing code or ideas. Contribute back improvements to the project.

MIT License

OpenPay is released under the MIT License. By contributing, you agree that your contributions will be licensed under the same license.

View the full license