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.
View on GitHub
Star the repo, browse the code, fork your own copy
Read the Full CONTRIBUTING.md
Complete guidelines including commit messages, PR process, and code style
GitHub Discussions
Ask questions, share ideas, get help from the community
Browse Issues
Find something to work on — look for 'good first issue' labels
How to Contribute
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.
Fork & Clone
Fork the repository to your GitHub account, then clone it locally. Set up your development environment following the Quickstart guide.
Quickstart Guide →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.
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.
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.
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
anytypes - Use named exports over default exports
- Prefer
constoverlet; never usevar - 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