WhoBuilt

Structure Monorepo for Speed, Scale & Sanity With Nx

Jul 16, 2025· 49 min· 1.5K views·Watch on YouTube

Speaker

Jordan Powell, developer productivity engineer at Narwhal, discusses Nx and monorepo design with Mukashinski on Callstack’s React Universe On Air podcast.

Monorepos need structure and freedom

Powell describes monorepos as a middle ground between a single, unstructured codebase and many separate repositories. He says Nx’s founders drew on their experience on Google’s Angular team, where dedicated resources supported work across a very large repository. Poor developer experience can slow delivery, increase recovery time, and frustrate teams.

Use the project graph to target work

Unlike Yarn workspaces, which mainly link packages, Nx builds a graph of projects and the tasks they can run. It tracks what changed and which projects depend on it, so CI can focus builds and tests on affected targets. For example, a shared design library change can reach many products, while an unrelated change need not trigger their builds.

Configure ownership and guardrails

Nx can infer much of the project graph and task setup, while allowing teams to configure which file changes trigger builds or tests. Teams can assign owners and set rules that prevent inappropriate dependencies, such as front-end projects importing from the back end. Nx can also generate a Code Owners file from project ownership.

Scale CI and testing with Nx Cloud

Powell says some Nx customers manage graphs with thousands or tens of thousands of libraries. In his analysis, customers saved 90 to 95 percent of CI time on average after adopting Nx and Nx Cloud; he cites builds dropping from two hours to about 15 minutes, with caveats. Distributed task execution spreads dependency-aware tasks across machines, and Nx can shard end-to-end tests across targets.

Give AI agents workspace context

Powell says an Nx graph can give AI agents context across projects that would be hard to see in separate repositories. He describes an agent using pipeline failure details and workspace graph context to suggest a fix from an editor. He presents this as an early practical use of Nx with AI.

Takeaways

  • Use a project graph to run CI tasks only for changed projects and their dependents.
  • Treat monorepo structure as a way to combine shared work with clear team boundaries.
  • Assign project owners and automate ownership files to reduce manual upkeep.
  • Measure CI performance before and after adopting caching or distributed execution.
  • Give coding agents workspace-level dependency context when asking them to diagnose changes.

Mentioned in this talk

Search inside this talk

What was claimed 14

  • previously at
    Jordan Powell previously at Cypress
    developer experience engineer
    “Previously, I was a developer experience engineer at Cypress.”
    YouTube
    Unverified1 source· Talk
  • role at
    Jordan Powell is developer productivity engineer at Narwhal
    “I'm a developer productivity engineer for the company Narwhal.”
    YouTube
    Unverified1 source· Talk
  • built
    “We created the tool called Nx.”
    YouTube
    Unverified1 source· Talk
  • role at
    Victor is worked on the Angular team at Google
    “Our two founders, Jeff and Victor, used to work on the Angular team at Google.”
    YouTube
    Unverified1 source· Talk
  • role at
    Jeff is worked on the Angular team at Google
    “Our two founders, Jeff and Victor, used to work on the Angular team at Google.”
    YouTube
    Unverified1 source· Talk
  • feature
    Nx: Builds a project graph and tracks affected projects and targets
    “Because Nx has this graph, it can also track what was affected and what changed.”
    YouTube
    Unverified1 source· Talk
  • feature
    Nx: Supports configurable inputs and outputs to determine rebuilds and test invalidation
    “Nx is configurable. You can configure inputs and outputs.”
    YouTube
    Unverified1 source· Talk
  • feature
    Nx: Provides conformance rules for project boundaries and ownership
    “You can set rules, such as the front end never importing from the back end.”
    YouTube
    Unverified1 source· Talk
Show all 14 facts

Related talks