A well-documented, actively maintained monorepo with clear onboarding paths, but complex setup and fair-code licensing create friction for first-time contributors.
last scored 2026-06-15
Readiness lenses
The same repo, two ways: how ready it is for an AI coding agent, and for a human newcomer. Switch lenses to see each one's score and checks.
How ready the repo is for an AI coding agent to read, build, and operate it.
30 of 35 checks passed across 6 categories.
Machine Orientation
6 checks passed2 problems found
- lowAgent instructions stay lean
A bloated instructions file burns context and measurably hurts more than it helps.
Fix: Trim AGENTS.md to the load-bearing commands and conventions; link out to the rest.
- lowllms.txt present
An llms.txt is the emerging machine-orientation standard — a curated map for LLMs.
Fix: Add an llms.txt pointing at the key docs and entry points.
- README present — An agent reconstructs what the repo is and how to work in it from the README first.
- Agent instructions file — AGENTS.md / CLAUDE.md is the direct, machine-read channel for entry points and conventions.
- Repository description set — The one-line description is the fastest orientation signal an agent reads.
- Topics set — GitHub topics situate the repo's domain and stack for an agent at a glance.
- Architecture doc — An ARCHITECTURE doc hands an agent the module map instead of making it infer one.
- Contribution conventions are written down — A contributor guide is where an agent learns the branch, commit, and review conventions it must follow.
Reproducible Setup
6 checks passed0 problems found
- Lockfile committed — Without a lockfile two clones can resolve different dependency trees — the build isn't reproducible.
- Runtime / toolchain pinned — An unpinned runtime makes an agent guess the version a clean environment needs.
- Version pins are exact — A floating pin (a bare major, or a range) still drifts between installs.
- Env template present — A .env.example tells an agent which configuration keys it must supply to run.
- Container or dev-container — A Dockerfile / compose / devcontainer removes 'works on my machine' from setup.
- Dev container — A .devcontainer gives an agent a one-command, fully-declared environment.
Code Navigability
1 check passed1 problem found
- lowTypeScript strict mode on
Strict typing gives an agent typed signatures to anchor an edit on, not guesses.
Fix: Turn on `strict` in tsconfig.json.
- Conventional source layout — A recognised src/ · lib/ · app/ layout lets an agent localise code without spelunking.
Verification Surface
7 checks passed0 problems found
- Tests present — Runnable tests are the ground truth an agent checks its own edits against.
- Test command defined — A `test` script is the documented, discoverable way to run the suite.
- Lint command defined — A linter an agent can run catches a class of mistakes before they ship.
- CI configured — Readable CI is the feedback loop an agent reads to know what 'green' means here.
- Task runner present — A Makefile / Taskfile / justfile gives an agent a single index of the project's commands.
- Typecheck command — A typecheck script lets an agent catch type errors before they ship.
- Build command — A documented build command is the discoverable way for an agent to produce artifacts.
Agent Safety
8 checks passed0 problems found
- No committed .env — A tracked real .env hands secrets to anything — including an agent — that reads the repo.
- No exposed secrets — Secret-shaped literals in tracked files are a live credential leak.
- .gitignore covers env files — An ignore rule for .env is what keeps the next careless commit from leaking secrets.
- CODEOWNERS present — CODEOWNERS marks the 'don't touch without review' zones an agent should respect.
- Automated dependency updates — Dependabot / Renovate keeps dependencies patched without a human in the loop.
- .gitignore present — A .gitignore is the first guard against an agent committing secrets or build junk.
- Security policy — A SECURITY.md is where an autonomous security agent reads this repo's rules before acting on it.
- License makes the code reusable — Without a license an agent cannot safely copy, redistribute, or vendor any of this code.
Context Economy
2 checks passed2 problems found
- lowGenerated / vendored files marked
A .gitattributes linguist marker tells tools (and agents) what to skip.
Fix: Mark generated/vendored paths in .gitattributes (linguist-generated / linguist-vendored).
- lowNo oversized source file
A single file in the hundreds of KB blows past an agent's effective context window.
Fix: Split the largest files along their natural seams.
- Dependencies not vendored in — A committed node_modules / vendor tree drowns the real signal an agent needs.
- Build output not committed — Generated dist/ · build/ output is noise an agent has to read past.
How ready the repo is for a human newcomer to understand, set up, and contribute.
72 / 10022 of 25 checks passed across 6 categories.
First Impression
85Strong README with clear purpose, capabilities, and quick-start options that make the value obvious.
The README immediately conveys what n8n is (workflow automation), who it's for (technical teams), and why it matters (code + no-code, 400+ integrations, self-hosted). Multiple entry points (npx, Docker, cloud) are prominently featured, and banners/screenshots add visual context. The 'What does n8n mean?' section shows personality and care for user experience.
Getting Running
68Quick-start commands exist, but the development setup has steep prerequisites and unclear complexity for a monorepo.
End users get instant gratification with `npx n8n` or Docker, but the CONTRIBUTING.md reveals a heavy development setup: Node 22+, pnpm 10.22+, corepack, build tools, plus monorepo workspace management. The docs are thorough but assume familiarity with pnpm workspaces. No lockfile pinning is visible in the snapshot, and the package.json engine constraints are strict but without checksum verification.
Finding Your Way
76Monorepo is well-structured with clear module boundaries, but the breadth and internal complexity require sustained effort to navigate.
CONTRIBUTING.md explicitly maps key directories (/packages/cli, /packages/core, /packages/frontend, /packages/nodes-base, /packages/workflow) and their purposes. The monorepo uses pnpm workspaces, Turbo, and semantic package naming (@n8n/* prefix). However, 20,000+ files, 70+ workflows, and deep nesting mean a newcomer must invest time building a mental map; no single architecture diagram is referenced in the snapshot.
Path to Contribute
69Explicit PR workflow and test guidelines are provided, but heavyweight formal requirements and licensing agreements create barriers.
CONTRIBUTING.md includes a structured PR workflow (change request → general requirements → PR-specific requirements) and test coverage expectations (unit, integration, E2E). However, a Contributor License Agreement is mandatory (CLA sign-off required for PRs), which is a meaningful friction point. No issue templates mention difficulty level or beginner-friendly tags, and the fair-code license and enterprise licensing model may deter some contributors.
Signs of Life
82Highly active project with recent commits, 192k+ stars, engaged maintainers, and regular releases evident from CI/CD infrastructure.
Last push was 2026-06-15 (very recent), 1470 open issues suggest active triage, and the monorepo has 70+ GitHub workflows covering CI, releases, testing, and Docker automation. The presence of .github/scripts with ownership assignment, PR quality checks, and AI-driven issue triage (Claude plugins) shows active maintainer engagement. Contributors page and job postings suggest a healthy team.
Open Door
60Fair-code license is explicitly stated and legally clear, but the Sustainable Use License and CLA are less newcomer-friendly than standard permissive licenses.
The README and LICENSE.md clearly state n8n is under fair-code (Sustainable Use License + Enterprise License), which is legally open but commercially restrictive—some potential contributors may be deterred by uncertainty around commercial reuse. A CODE_OF_CONDUCT.md exists, and a community forum is mentioned for support. However, the mandatory CLA (CONTRIBUTOR_LICENSE_AGREEMENT.md) adds friction—not all projects require this—and the fair-code model is less universal than MIT or Apache 2.0, potentially creating hesitation around legal safety.
First Impression
3 checks passed0 problems found
- README present — The README is the first screen — with none, a newcomer has nothing to land on.
- Repository description set — The one-line description sets expectations before a newcomer even opens the README.
- Topics set — Topics situate the project's domain at a glance and help a newcomer find it.
Getting Running
6 checks passed0 problems found
- Lockfile committed — Without a lockfile a newcomer's install resolves differently and hits errors the docs don't mention.
- Prerequisite versions pinned — Unpinned prerequisites are the classic 'works on my machine' first-run failure.
- Env template present — A .env.example shows a newcomer exactly which settings they must fill in to run it.
- One-command environment — A Dockerfile / compose / devcontainer turns a fiddly setup into one command.
- One-click dev container — A .devcontainer lets a newcomer start in a cloud IDE with zero local setup.
- Versions pinned exactly — A floating version still drifts — a newcomer can hit a break the maintainer never saw.
Finding Your Way
2 checks passed1 problem found
- lowNo oversized source file
A single thousand-line file is a wall a newcomer bounces off.
Fix: Split the largest files along their natural seams.
- Conventional source layout — A familiar src/ · lib/ · app/ layout lets a newcomer guess where things live.
- Architecture / overview doc — An overview hands a newcomer the map instead of making them reconstruct it.
Path to Contribute
5 checks passed1 problem found
- lowPull-request template
A PR template tells a first-time contributor what a good change includes.
Fix: Add a PULL_REQUEST_TEMPLATE.md.
- CONTRIBUTING guide — A CONTRIBUTING guide is the difference between a guessed and a guided first PR.
- Issue templates — Issue templates show a newcomer how to file something useful — and that contributions are welcome.
- Test command defined — A documented test command lets a contributor check their change before opening a PR.
- Lint command — A linter lets a first-time contributor catch style issues before review.
- Task runner — A Makefile / Taskfile gives a contributor a single index of the project's commands.
Signs of Life
3 checks passed0 problems found
- Tests present — A test suite signals a project that's cared for, not abandoned.
- CI configured — Green CI on every change tells a newcomer the project is actively kept working.
- Automated dependency updates — Dependabot / Renovate activity is a visible heartbeat of ongoing maintenance.
Open Door
3 checks passed1 problem found
- lowLicense is a standard one
A non-standard or custom license is a legal question mark a newcomer won't resolve.
Fix: Use a recognised OSI license so reuse terms are unambiguous.
- License present — With no license the project isn't legally reusable — the door is shut however friendly the README.
- Code of conduct — A code of conduct states the social ground rules that make it safe to step in.
- Security policy — A SECURITY.md tells a newcomer how to report a problem responsibly.
Where the grip slips
- highGetting Running+15 pts if fixed
Development setup prerequisites are steep and under-scaffolded
The CONTRIBUTING.md requires Node 22+, pnpm 10.22+, corepack, and build tools, but does not provide a scripted setup or checksum verification for pnpm versions. No shell script exists to validate the environment before a clone-and-build cycle. A newcomer may spend 30 minutes installing dependencies only to discover a missing build tool or incompatible version.
Fix: Create a `scripts/verify-dev-environment.sh` (or `.mjs`) that checks Node version, pnpm version, build tools (gcc/clang, Python, etc.), and provides actionable error messages. Run it in the first step of the README's development setup section. Alternatively, provide a Docker Dev Container with all tooling pre-installed (see .devcontainer/devcontainer.json exists—ensure it is current and referenced in CONTRIBUTING.md as the recommended path for beginners).
- highOpen Door+12 pts if fixed
Fair-code license and mandatory CLA create contributor friction
While fair-code (Sustainable Use License) is legal and transparent, it is less recognizable and more commercially restrictive than permissive licenses. Combined with a mandatory Contributor License Agreement, this signals legal complexity that may cause newcomers to hesitate before investing time. No single document (e.g., in CONTRIBUTING.md) explains why the CLA is necessary or demystifies the fair-code model for first-time contributors.
Fix: Add a section to CONTRIBUTING.md explaining: (1) why the CLA is needed (e.g., 'to protect both n8n and contributors'), (2) a plain-English summary of what fair-code means for contributors (e.g., 'your code remains open-source; you are free to use, modify, and redistribute n8n'), and (3) a link to the full CLA with a 'questions?' contact. Consider tagging this prominently in the PR template.
- mediumPath To Contribute+10 pts if fixed
No beginner-friendly issue labels or contribution path
CONTRIBUTING.md outlines PR workflow and test expectations, but does not mention issue labels like 'good-first-issue', 'help-wanted', or 'beginner-friendly' that guide newcomers to low-risk starting points. The snapshot shows 1470 open issues with no visibility into their difficulty or suitability for new contributors.
Fix: Adopt standard GitHub issue labels ('good-first-issue', 'help wanted') and document in CONTRIBUTING.md where newcomers should start. Create a simple query (e.g., a link to filtered issues) and add a 'Starting Out' section to CONTRIBUTING.md that points to a curated list of 5–10 beginner-suitable tasks (e.g., adding missing JSDoc, fixing a lint warning, or writing a unit test for a small node).
- mediumFinding Your Way+9 pts if fixed
Monorepo structure lacks a top-level architecture diagram
While CONTRIBUTING.md lists key directories, a visual or text-based architecture diagram would help newcomers understand module relationships, data flow, and where to focus based on their interests. The snapshot shows 20,000+ files spread across /packages with unclear connections (e.g., how does n8n-core relate to n8n-nodes-base? What does n8n-editor-ui depend on?).
Fix: Add a markdown diagram (e.g., using Mermaid or ASCII art) to CONTRIBUTING.md or a new ARCHITECTURE.md that shows: (1) Core modules (cli, core, workflow, nodes-base) and their roles, (2) Frontend vs. backend split, (3) Key dependencies between packages. Include a sentence explaining the monorepo strategy (Turbo + pnpm workspaces) and why it was chosen.
- mediumGetting Running+8 pts if fixed
No explicit environment setup template or .env guide for development
The snapshot includes a `.env.local.example` file, but CONTRIBUTING.md does not explicitly reference it or guide newcomers through required env vars for local development (e.g., database URL, API keys for testing integrations). A developer may clone, install, and still be stuck at the 'how do I actually run this?' step.
Fix: Add a subsection in CONTRIBUTING.md titled 'Local Environment Setup' that: (1) references `.env.local.example` and explains how to copy/customize it, (2) lists any required env vars for a minimal dev setup (e.g., `N8N_DB_TYPE=sqlite` for local testing), (3) provides a minimal working example. Link this directly after the 'Actual n8n setup' step.
- mediumOpen Door+7 pts if fixed
Fair-code licensing model is non-standard and may deter some contributors
The project uses a Sustainable Use License + Enterprise License (fair-code), which is legally sound but less familiar than MIT, Apache 2.0, or GPL. Newcomers unfamiliar with fair-code may worry about legal constraints or unsuitability for their use case, creating passive attrition before they ever engage.
Fix: In the README's 'License' section, expand the fair-code explanation with a brief FAQ: 'What does this mean for me as a contributor?' (answer: your code remains open-source and usable), 'Can I use n8n for commercial purposes?' (answer: depends on Sustainable Use definition; link to faircode.io summary). Add a 'License Questions?' pointer to the community forum or license@n8n.io.
Show your score
[](https://latch.fyi/n8n-io/n8n)Share this analysis
https://latch.fyi/n8n-io/n8nFixed some issues? Re-analyze to measure your progress →
Copy the whole report
Grab the entire verdict in one go — a Markdown block for a README or an issue, plain text, or a prompt you can paste straight into an LLM.