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
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
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
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
Initial submission
- Ensure PR follows all guidelines above
- Include tests and documentation
- Link related issues
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
Changes requested
If changes are requested:
- Make the requested changes
- Push to the same branch
- Request re-review
- Respond to all review comments
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