Skip to content
n8n-io/n8n (opens in a new tab)

A well-documented, actively maintained monorepo with clear onboarding paths, but complex setup and fair-code licensing create friction for first-time contributors.

TypeScript★ 192,6391,470 open issuesOther
Overall score: 72 out of 100
Holding

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.

Where the grip slips

  1. 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).

  2. 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.

  3. 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).

  4. 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.

  5. 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.

  6. 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

Latch badge
[![Latch score](https://latch.fyi/api/badge/eccdc714-a1d3-4cd1-ae21-f3981fb39602)](https://latch.fyi/n8n-io/n8n)

Share this analysis

https://latch.fyi/n8n-io/n8n

Fixed 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.

Was this verdict fair?

One tap helps — or tell us more.