Skip to main content
This guide walks you through the pull request process for contributing to Documenso.

Before Creating a PR

Before submitting a pull request, ensure you’ve completed these steps:
1

Search for existing PRs

Check existing PRs to avoid duplicating work.
2

Link to an issue

Make sure your PR is related to an issue. If one doesn’t exist, create one first to discuss the proposed changes.
3

Test your changes

Test your changes thoroughly in your local environment.
4

Run the build

Ensure a full production build succeeds:
npm run build
5

Run linting

Fix any linting issues:
npm run lint:fix
6

Accept the CLA

If you haven’t already, accept the Contributor License Agreement.

Creating a Pull Request

PR Template

When you create a pull request, you’ll see a template with the following sections:

Description

Describe the changes introduced by this pull request. Explain what problem it solves or what feature/fix it adds. Reference the issue this PR addresses:
Fixes #123
Or for issues that are addressed but not completely fixed:
Addresses #456

Changes Made

Provide a summary of the changes:
- Added bulk signing functionality
- Updated email templates for better mobile rendering
- Fixed recipient order bug in signing flow

Testing Performed

Describe how you tested these changes:
- Tested bulk signing with 10+ documents
- Verified email rendering on Gmail, Outlook, and Apple Mail
- Tested recipient ordering with various scenarios
- Ran unit tests for affected components

Checklist

Complete this checklist before submitting:
  • I have tested these changes locally and they work as expected
  • I have added/updated tests that prove the effectiveness of these changes
  • I have updated the documentation to reflect these changes, if applicable
  • I have followed the project’s code style guidelines
  • I have addressed code review feedback from the previous submission, if applicable

Additional Notes

Provide any additional context or notes for reviewers, such as:
  • Design decisions and rationale
  • Potential concerns or trade-offs
  • Future improvements or follow-up work
  • Breaking changes or migration notes

PR Requirements

Code Quality

All code must follow the Documenso code style guide.
  • Use TypeScript for all code
  • Prefer type over interface
  • Use functional components with arrow functions
  • Never use classes
  • Use descriptive variable names
Add or update tests for your changes:
  • Unit tests for new functionality
  • E2E tests for user-facing features
  • Update existing tests if behavior changes
Run tests with:
npm run test:e2e
Your code must pass all linting checks:
npm run lint
Auto-fix issues with:
npm run lint:fix
Ensure a full production build succeeds:
npm run build

Documentation

Update documentation if your changes affect:
  • Public APIs
  • User-facing features
  • Configuration options
  • Development setup or workflows

Commit Messages

Use Conventional Commits for commit messages:
feat: add bulk document signing
fix: resolve recipient ordering bug
docs: update API documentation
chore: update dependencies
If you’re using OpenCode, you can use the /commit command to automatically generate conventional commits.

PR Review Process

What to Expect

1

Automated checks

GitHub Actions will run automated checks including:
  • Linting
  • Type checking
  • Tests
  • Build verification
2

Code review

A maintainer will review your code and may:
  • Request changes
  • Ask questions for clarification
  • Suggest improvements
  • Approve the PR
3

Address feedback

Respond to review comments and push additional commits as needed.
4

Merge

Once approved and all checks pass, a maintainer will merge your PR.

Review Timeline

We aim to review PRs within:
  • Small bug fixes: 1-2 days
  • Feature additions: 3-5 days
  • Large refactors: 1-2 weeks
If you haven’t received a review within these timeframes, feel free to:
  • Comment on the PR asking for a review
  • Reach out on Discord
  • Mention @documenso/maintainers in a comment

Common Review Feedback

Code Style Issues

Issue: Not following code style guidelines Solution: Review the code style guide and apply consistent patterns.

Missing Tests

Issue: No tests for new functionality Solution: Add unit tests and/or E2E tests that cover your changes.

Incomplete Documentation

Issue: Public APIs or features not documented Solution: Add or update documentation to explain how to use the new functionality.

Type Safety

Issue: Using any or missing type definitions Solution: Add proper TypeScript types for all variables, parameters, and return values.

Performance Concerns

Issue: Inefficient queries or operations Solution: Optimize database queries, use proper indexing, and avoid N+1 queries.

Tips for Faster Reviews

Keep PRs small

Smaller PRs are easier to review and merge faster. Break large features into multiple PRs.

Write clear descriptions

Help reviewers understand your changes with clear descriptions and examples.

Add screenshots

For UI changes, include before/after screenshots or GIFs.

Respond promptly

Respond to review feedback quickly to keep the momentum going.

After Your PR is Merged

Once your PR is merged:
  1. Delete your branch (GitHub will prompt you)
  2. Update your local repository:
    git checkout main
    git pull origin main
    
  3. Celebrate! You’ve contributed to Documenso!

Handling Merge Conflicts

If your PR has merge conflicts:
1

Update your local main branch

git checkout main
git pull origin main
2

Merge main into your branch

git checkout your-branch-name
git merge main
3

Resolve conflicts

Open the conflicting files and resolve the conflicts manually.
4

Commit the merge

git add .
git commit -m "Merge main and resolve conflicts"
5

Push to your branch

git push origin your-branch-name

Need Help?

If you have questions about the PR process:

View PR Template

See the full pull request template on GitHub