惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
B
Blog
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
T
Threatpost
博客园 - 聂微东
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
C
Check Point Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
爱范儿
爱范儿
IT之家
IT之家
S
Secure Thoughts
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Schneier on Security
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
雷峰网
雷峰网
Project Zero
Project Zero
博客园 - Franky
H
Heimdal Security Blog
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Nx Blog

Sharing Tailwind CSS Styles Across Apps in a Monorepo | Nx Blog How SiriusXM Stays Competitive by Iterating and Getting to Market Fast | Nx Blog Agentic Experience Is the New Developer Experience | Nx Blog Nx Joins the Linux Foundation and the Agentic AI Foundation | Nx Blog A Monorepo Is NOT a Monolith | Nx Blog Why we deleted (most of) our MCP tools | Nx Blog Teach Your AI Agent How to Work in a Monorepo | Nx Blog How Broadcom stays efficient and nimble with monorepos | Nx Blog Why Monorepos are King in the Age of AI | Nx Blog Nx 2026 Roadmap: Expanding Agent Autonomy, Improving Performance, Better Polyglot and More | Nx Blog End to End Autonomous AI Agent Workflows with Nx | Nx Blog Autonomous Agents at Scale | Nx Blog Scaling 700+ Projects: How Nx Became a 'No-Brainer' for Caseware | Nx Blog Configure Tailwind v4 with Angular in an Nx Monorepo | Nx Blog The Missing Multiplier for AI Agent Productivity | Nx Blog A Year of Nx Webinars | Nx Blog Wrapping Up 2025 | Nx Blog Nx 22.3 Release: Angular 21 Support, tsgo Compiler, and Prettier v3 | Nx Blog Nx Cloud Release: Agent Resource Usage | Nx Blog Nx Platform Outperforms DIY Cache by 5x | Nx Blog An Nx Carol: Past, Present, and Future of Your Monorepo | Nx Blog Nx 22.1 Release: Terminal UI on Windows, Storybook 10, Vitest 4, and more! | Nx Blog The Compounding Effect: How Nx Features Multiply Performance Gains | Nx Blog 10 Monorepo Myths Debunked: Separating Fact from Fiction | Nx Blog Nx Cloud Release: Enterprise Task Analytics | Nx Blog Watch and Rebuild Storybook Dependencies with Nx | Nx Blog Book - React for Enterprise: Timeless Architecture for Enterprise Apps | Nx Blog Beyond Remote Cache: Unlock 70% More CI Performance | Nx Blog Nx 22 Release: Expanding the build platform | Nx Blog What's the Point of Generating All This Code If You Can't Merge It? | Nx Blog What's New in Nx Self-Healing CI | Nx Blog Nx Highlights: Smarter AI integration, all-new graph UI, and big new versions of your favorite tools | Nx Blog Making the Case for Smarter Monorepos, and How to Not Get Fooled by Myths | Nx Blog Integrating Biome in 20 Minutes | Nx Blog S1ngularity - What Happened, How We Responded, What We Learned | Nx Blog Stop Babysitting Your PRs: Self-Healing CI Cuts Time to Green by 50% | Nx Blog UKG Unifies Their Codebase and Eliminates CI Overhead to Focus on Customer Value | Nx Blog How Git Worktrees Changed My AI Agent Workflow | Nx Blog Nx Cloud Workspace Graph: See Your Organization's Code Structure Like Never Before | Nx Blog Seamless Java Deployment in Nx Using Docker | Nx Blog Getting Mobile Into Your Monorepo: Android + Nx | Nx Blog Polyglot Projects Made Easy: Integrating Spring Boot into an Nx Workspace | Nx Blog The Journey of the Nx Plugin for Gradle: From Prototype to Production | Nx Blog Combining Predictability and Intelligence With Nx Generators and AI | Nx Blog A New UI For The Humble Terminal | Nx Blog Continuous tasks are a huge DX improvement | Nx Blog New and Improved Module Federation Experience with Nx | Nx Blog A New UI for Nx Migration | Nx Blog Custom Task Runners and Self-Hosted Caching Changes | Nx Blog Enterprise Angular Monorepo Patterns | Nx Blog Using Rspack with Angular | Nx Blog Angular Architecture Guide To Building Maintainable Applications at Scale | Nx Blog Modern Angular Testing with Nx | Nx Blog Nx Update: 20.5 | Nx Blog Are Monorepos the Answer to Better AI-Assisted Development? | Nx Blog Making Cursor Smarter with an MCP Server For Nx Monorepos | Nx Blog React Development for 2025 | Nx Blog Using Apollo GraphQL in an Nx Workspace | Nx Blog Angular State Management for 2025 | Nx Blog Tailoring Nx for Your Organization | Nx Blog Nx Cloud Pipelines Come To Nx Console | Nx Blog Define the relationship with monorepos | Nx Blog See your affected project graph in Nx Cloud | Nx Blog Handling CORS In Your Workspace | Nx Blog Improve your architecture and CI pipeline times with Nx projects | Nx Blog Announcing Nx 20 | Nx Blog Introducing Nx Powerpack | Nx Blog Nx 19.5 is here! Stackblitz, Bun, Incremental Builds for Vite, Gradle Test Atomizer | Nx Blog Introducing Explain with AI | Nx Blog Nx Enterprise Podcast Episode 2: Tine Kondo | Nx Blog Monorepos and CI can be a Mess - Here's How Nx and Nx Cloud Fixed It | Nx Blog Nx Enterprise Podcast Episode 1: Hicham El Hammouchi | Nx Blog Nx 19.0 Release!! | Nx Blog Manage Your Gradle Project using Nx | Nx Blog Making the Argument for Monorepos | Nx Blog Reliable CI. A new execution model fixing both flakiness and slowness | Nx Blog Monorepos - Why Speed Matters | Nx Blog Nx Agents Walkthrough: Effortlessly Fast CI Built for Monorepos | Nx Blog Launch Nx Week Recap | Nx Blog Versioning and Releasing Packages in a Monorepo | Nx Blog Fast, Effortless CI | Nx Blog Introducing @nx/nuxt Enhanced Nuxt.js Support in Nx | Nx Blog What if Nx Plugins Were More Like VSCode Extensions | Nx Blog Monorepos: the Benefits, Challenges, and Importance of Tooling Support | Nx Blog Nx — Highlights of 2023 | Nx Blog Nx 17.2 Update | Nx Blog Unit Testing Expo Apps With Jest | Nx Blog Nx Docs AI Assistant | Nx Blog State Management Nx React Native/Expo Apps with TanStack Query and Redux | Nx Blog Nx 17 has Landed | Nx Blog Nx Conf 2023 — Recap | Nx Blog Nx Raises $16M Series A | Nx Blog Introducing Playwright Support for Nx | Nx Blog Nx 16.8 Release!!! | Nx Blog Step-by-Step Guide to Creating an Expo Monorepo with Nx | Nx Blog Qwikify your Development with Nx | Nx Blog Create Your Own create-react-app CLI | Nx Blog Storybook Interaction Tests in Nx | Nx Blog Evergreen Tooling — More than Just CodeMods | Nx Blog A Practical Guide on Effective AI Use - AI as Your Peer Programmer | Nx Blog
Nx Cloud Conformance: Automate Consistency Across Your Organization | Nx Blog
Philip Fulcher · 2025-07-18 · via Nx Blog

If you've got consistency problems in your organization, we've got the solution for you. Conformance is a powerful new tool within Nx Cloud's Polygraph suite that brings automated consistency and maintainability to your entire organization—regardless of what technology stack you're using.

Say goodbye to spreadsheets for tracking compliance. Get those maintenance items out of your backlog. It's time to solve everything with one tool.

The Problem: Manual Compliance Is Killing Your Productivity

Picture this: Your director of engineering asks, "Why does it take so long to get a PR merged around here?" Sound familiar?

After some investigation, you discover that developers are struggling to get code reviews because not every PR gets assigned to someone. Most of the time, developers are pinging colleagues in Slack, hoping someone can review their code that day. This creates bottlenecks, delays releases, and frustrates your team.

A CODEOWNERS file can solve this problem by automatically assigning reviewers based on directory ownership. But here's the catch: even good solutions need to be used consistently across your organization.

How do you enforce the use of CODEOWNERS files across different teams, different repositories, and different technology stacks? How do you ensure they follow your organization's standards without manually checking each repository?

This is where Conformance comes in.

What Is Conformance?

Conformance is part of Nx Cloud's Polygraph suite: a collection of features that extend the benefits of Nx workspaces to your entire organization. Conformance allows you to write technology-agnostic rules that you can enforce across your organization, no matter what technology you're using.

Think of it as automated governance for your entire codebase. Platform teams can now:

  • Eliminate manual compliance tracking - No more spreadsheets or manual audits
  • Enforce standards at scale - Write rules once, apply them everywhere
  • Schedule future enforcement - Set deadlines for compliance transitions

Real-World Example: Enforcing CODEOWNERS Standards

Let's solve this code review problem. We'll create a Conformance rule that ensures every repository has a properly configured CODEOWNERS file.

First, we need to define our requirements:

  1. A CODEOWNERS file must exist at the root of the repository
  2. It should start with a catch-all rule so unassigned directories get reviewers
  3. Every rule should include at least one team so PRs are assigned to groups of people to ensure coverage

Setting Up Your Conformance Rules

You have two options for storing Conformance rules:

Create a new workspace from the @nx/conformance preset

  1. Create a new example workspace with the @nx/conformance preset: npx create-nx-workspace WORKSPACE_NAME --preset=@nx/conformance
  2. Connect your new example workspace to Nx Cloud by following the instructions during create-nx-workspace.
  3. Run npx nx login in your new example workspace.
  4. Publish your rules using the publish-conformance-rules target on the conformance-rules project: npx nx publish-conformance-rules

Add Conformance rules to an existing workspace

You can check out the full details in our docs, but here's an overview of adding Conformance rules to an existing workspace.

  1. Open your existing Nx workspace.
  2. Add the @nx/conformance plugin: npx nx add @nx/conformance.
  3. Set up a new library project for your conformance rules.
  4. Run npx nx login in your workspace.
  5. Be sure to bundle your rules using the @nx/conformance:bundle-rules executor (covered in the above docs).
  6. Publish the rules using the nx-cloud CLI: npx nx-cloud publish-conformance-rules /path/to/rule-outputs.

For our example today, we'll create a new workspace named stellar-conformance:

npx create-nx-workspace@latest stellar-conformance --preset=@nx/conformance

This creates a new Nx workspace specifically for managing your organization's Conformance rules. The preset includes example rules and the structure you need to get started.

Writing Your First Conformance Rule

We'll use the @nx/conformance:conformance-rule generator to create our CODEOWNERS rule:

 NX  Generating @nx/conformance:create-rule

✔ Which directory do you want to create the rule directory in? · packages/conformance-rules/src
✔ What category does this rule belong to? · consistency
✔ What is the description of the rule? · Enforce existence and style of CODEOWNERS file
CREATE packages/conformance-rules/src/codeowners-lint/index.ts
CREATE packages/conformance-rules/src/codeowners-lint/schema.json

You'll be asked for the name, description, and directory for your new rule. You'll also be asked for a category. Choose from:

  • Consistency - Enforcing uniform standards across workspaces
  • Maintainability - Making code easier to maintain and modify
  • Reliability - Ensuring dependable and stable code behavior
  • Security - Protecting against vulnerabilities and risks

For our CODEOWNERS rule, we'll choose consistency since it helps make the code review process more consistent.

Implementing the Rule Logic

Here's what our CODEOWNERS Conformance rule looks like:

import {
  createConformanceRule,
  ConformanceViolation,
  ConformanceRuleResultSeverity,
} from '@nx/conformance';
import { workspaceRoot } from '@nx/devkit';
import { join } from 'path';
import { readFileSync } from 'fs';

export default createConformanceRule({
  name: 'codeowners-lint',
  category: 'consistency',
  description: 'Check for existence and format of CODEOWNERS file',
  implementation: async (context) => {
    // Check if CODEOWNERS file exists

    let codeowners;

    try {
      // try to read CODEOWNERS file from the root of the repo
      codeowners = readFileSync(join(workspaceRoot, 'CODEOWNERS'), 'utf-8');
    } catch (error) {
      // if not found, return high severity violation
      return {
        severity: 'high',
        details: {
          violations: [
            {
              workspaceViolation: true,
              message: 'CODEOWNERS file is missing',
            },
          ],
        },
      };
    }

    // Check if CODEOWNERS file is empty

    const violations: ConformanceViolation[] = [];

    // iterate through CODEOWNERS file and remove blank or commented lines
    const codeownersLines = codeowners
      .split('\n')
      .filter(
        (line: string) => line.trim().length > 0 && !line.startsWith('#')
      );

    if (codeownersLines.length === 0) {
      // if there are no lines left, return high severity violation
      return {
        severity: 'high',
        details: {
          violations: [
            {
              workspaceViolation: true,
              message: 'CODEOWNERS file is empty',
            },
          ],
        },
      };
    }

    // Check if CODEOWNERS file has valid format

    const severity: ConformanceRuleResultSeverity = 'medium';

    // check that first rule starts with a wildcard
    if (!codeownersLines.at(0)?.startsWith('*')) {
      // if it doesn't, add medium severity violation to report
      violations.push({
        workspaceViolation: true,
        message: 'CODEOWNERS file should start with a wildcard (*) pattern',
      });
    }

    // check that each rule contains the org name, indicating a team assignment
    if (
      codeownersLines.some(
        (line: string) => !line.includes('@stellar-dynamics')
      )
    ) {
      // if it doesn't, add low severity violation to report
      violations.push({
        workspaceViolation: true,
        message:
          'CODEOWNERS rules should contain at least one @stellar-dynamics team',
      });
    }

    return {
      severity,
      details: {
        violations,
      },
    };
  },
});

Testing Your Rule Locally

Before publishing, test your rule locally by adding it to your nx.json:

{
  "conformance": {
    "rules": [
      {
        "rule": "./packages/conformance-rules/src/codeowners-lint"
      }
    ]
  }
}

Run the rule:

Screenshot of result of running the rule

Retrieve a personal access token

Because publishing Conformance rules is a privileged action, you'll need to have a personal access token. Run npx nx login to retrieve this.

Publishing Rules to Nx Cloud

Once you're satisfied with your rule, publish it to Nx Cloud:

nx publish-conformance-rules conformance-rules

This makes your rule available to your entire organization through Nx Cloud.

Applying Rules Organization-Wide

After publishing, head to your Nx Cloud dashboard and navigate to the Conformance section. You'll see your newly published rule ready to be configured.

Rule Configuration Options

Screenshot of scheduling status

When configuring a rule, you have three status options:

  • Enforced - Rule runs and fails builds when violations are found
  • Evaluated - Rule runs and reports violations but won't fail builds (perfect for gradual rollout)
  • Disabled - Rule is turned off completely

You can start with "evaluated" mode to see current compliance levels, then schedule automatic transition to "enforced" mode with a specific deadline.

Running Rules with Custom Workflows

Screenshot of custom workflows

Here's where Conformance really shines. Instead of requiring every team to add Conformance checks to their CI pipelines, you can use Custom Workflows to run these checks automatically.

Custom Workflows allow you to:

  • Run Conformance checks on any repository without requiring local configuration changes
  • Schedule recurring checks (daily, weekly, etc.) to maintain compliance
  • Apply rules to non-Nx repositories through metadata-only workspaces
  • Collect compliance data without impacting individual team workflows

Supporting Non-Nx Repositories

One of the most powerful aspects of Conformance is that it works with any repository, even those that don't use Nx. You can connect legacy repositories as metadata-only workspaces and apply the same Conformance rules.

This means your platform team can enforce standards across your entire organization's codebase, regardless of the underlying technology or build system.

The Platform Engineering Superpower

Screenshot of results of Conformance rule across multiple workspaces

Conformance transforms how platform teams operate. Instead of manually tracking compliance across dozens or hundreds of repositories, a single platform engineer can:

  1. Write a rule once in TypeScript (but apply it to any technology)
  2. Publish it to Nx Cloud with a single command
  3. Apply it organization-wide through the dashboard
  4. Get automated compliance reporting without any work from development teams

No more spreadsheets. No more manual audits. No more begging developers to add something to their backlog.

Beyond CODEOWNERS: Endless Possibilities

While we've focused on CODEOWNERS files, Conformance can enforce any organizational standard:

  • Security standards - Ensure all repos run security audits and address vulnerabilities
  • Dependency management - Keep third-party libraries up to date across your entire tech stack
  • Tool standardization - Enforce consistent linting rules, formatting, and build configurations
  • Architecture compliance - Ensure new projects follow established patterns and structures
  • Documentation requirements - Verify that READMEs, API docs, and other documentation exist

From Reactive to Proactive

Conformance represents a fundamental shift from reactive to proactive organizational management. Instead of discovering problems when they cause production issues, you can:

  • Prevent issues before they occur with automated compliance checking
  • Maintain consistency across all repositories without manual intervention
  • Scale your platform team's impact exponentially across your organization
  • Reduce the burden on development teams while improving overall code quality

Getting Started Today

Conformance is available now for all Nx Enterprise customers as part of the Polygraph suite. If you're an existing Enterprise customer, you can start using Conformance immediately in your Nx Cloud dashboard.

The combination of technology-agnostic rules, automated enforcement, and organization-wide visibility makes Conformance a game-changer for platform teams looking to scale their impact.

What's Next?

Conformance is just the beginning. As part of the Polygraph suite, it works alongside:

  • Workspace Graph - Visualize dependencies across all your repositories
  • Custom Workflows - Run scheduled tasks and automation beyond traditional CI
  • Metadata-Only Workspaces - Include non-Nx repositories in your organizational tooling

Together, these features bring the power of monorepo-level visibility and efficiency to your entire organization, regardless of how many repositories you have.

Learn more: