Code of Conduct
This project is governed by the Code of Conduct. By participating, you agree to uphold this code. Report unacceptable behavior to jan@n8n.io.Before You Contribute
New Nodes
Typo-Only PRs
Typo-only PRs are not accepted. Combine typo fixes with meaningful code contributions.Large Changes
For significant architectural changes or new features, please open an issue or discussion first to align with project direction.Development Workflow
1. Create a Branch
1
Sync with upstream (external contributors)
2
Create a feature branch
For n8n team members, use the Linear ticket branch name:For external contributors:
2. Make Your Changes
Backend Development
Backend Development
- Navigate to the relevant package (e.g.,
packages/cli) - Start development mode:
- Make your changes
- Add or update tests
Frontend Development
Frontend Development
- Start backend:
- In a new terminal, start frontend:
- Make your changes
- Add or update tests
- Ensure all UI text uses i18n
Node Development
Node Development
- Watch nodes package:
- In a new terminal, start CLI with hot reload:
- Make your changes
- Add workflow tests (see examples in
packages/nodes-base/nodes/**/test)
3. Testing
1
Run tests locally
2
Run typecheck
3
Run linter
4
Test in production mode
4. Commit Your Changes
Follow Conventional Commits format:Commit messages should focus on why, not what. The diff shows what changed - explain why you made the change.
5. Push and Create PR
1
Push your branch
2
Create pull request
Go to GitHub and create a pull request from your branch to
n8n-io:master.3
Fill PR template
Follow the PR template and include:
- Clear description of changes
- Link to Linear ticket (team members)
- Link to related GitHub issues
- Screenshots/videos for UI changes
- Breaking change notes (if applicable)
PR Title Conventions
Follow n8n’s PR title conventions:feat(package): Description- New featurefix(package): Description- Bug fixrefactor(package): Description- Code refactoringperf(package): Description- Performance improvementtest(package): Description- Test additions/changesdocs(package): Description- Documentation changesci: Description- CI/CD changeschore: Description- Maintenance tasks
feat(cli): Add workflow template importfix(editor-ui): Resolve canvas zoom issuerefactor(core): Simplify execution context
Coding Standards
TypeScript
Never use
any type - use proper types or unknown:Avoid type casting with Exception: Type casting is acceptable in test code.
as - use type guards:Error Handling
Use modern error classes:Frontend Guidelines
All UI text must use i18n:Add translations to
packages/@n8n/i18n/locales/en/index.json.Use CSS variables - never hardcode values:
data-testid must be a single value:
Code Reusability
Avoid repetitive code - reuse existing components and logic:
Code Formatting
n8n uses Biome for formatting:Testing Requirements
Writing Tests
PR Review Process
Community PR Guidelines
1
Initial submission
- Ensure PR follows all guidelines above
- Include tests and documentation
- Link related issues
2
Review period
- Team reviews within 1-2 weeks
- Address requested changes within 14 days
- PRs with no response after 14 days will be auto-closed
3
Changes requested
If changes are requested:
- Make the requested changes
- Push to the same branch
- Request re-review
- Respond to all review comments
4
Approval and merge
- Once approved, team will merge
- Your contribution will be included in the next release
Small PRs Only
Contributor License Agreement
You must sign the Contributor License Agreement before your PR can be merged. An automated bot will comment on your PR with a link to sign. This uses Indie Open Source - a simple, plain-English CLA.Additional Resources
Documentation
The n8n documentation repository is at n8n-io/n8n-docs. Contribute documentation improvements there.Workflow Templates
Submit workflow templates to n8n’s template library. See the n8n Creator Hub for details.Custom Nodes
Learn about building custom nodes and publishing them to npm. Custom nodes allow you to extend n8n without modifying core.Getting Help
- Questions? Ask in n8n Community Forum
- Bugs? Open an issue on GitHub
- Feature Requests? Start a discussion on GitHub Discussions
PR Checklist
Before submitting your PR:- Code follows n8n coding standards
- All tests pass locally
- Added tests for new functionality
- Ran
pnpm typechecksuccessfully - Ran
pnpm lintand fixed all issues - Tested in production mode (
pnpm build && pnpm start) - Updated documentation if needed
- PR title follows conventions
- PR description is clear and complete
- Linked related issues/tickets
- No
ts-ignorecomments - No hardcoded strings (use i18n for UI text)
- No
anytypes - Small, focused PR (single feature/fix)
Next Steps
- Set up your development environment
- Learn about n8n’s architecture
- Understand testing practices