vercel/next.js

next.js is the first hybrid pnpm + Cargo dual-workspace win — alint surfaces 3 of 19 npm packages without license fields and 4 of 63 crates with non-canonical licenses, drift no per-language linter catches because each linter only sees half the tree.

Narrative
Polyglot wins
Rules
130
Last revalidated
Engineering reference
README on GitHub · .alint.yml

Why this matters

next.js is the most-watched JS / React framework on GitHub (~140k stars). It is a hybrid pnpm + Cargo monorepo: a pnpm workspace (packages/*, apps/*, bench/*, crates/*/js, turbopack/packages/*, turbopack/crates/*/js) running alongside a Cargo workspace (crates/* + turbopack/crates/*

This is a distinct shape from microsoft/typescript (which IS the TS compiler — flat src/+tests/), from facebook/react (Yarn classic single-language workspace), and from vercel/turbo (modern Rust+TS hybrid with smaller surface). next.js is the canonical hybrid pnpm + Cargo mega-monorepo — and the canonical demonstration that no per-language linter sees the whole tree.

Headline catch

next.js is the first hybrid pnpm + Cargo dual-workspace win. alint’s polyglot bundle composition (monorepo/cargo-workspace@v1

prettier sees formatting. eslint sees TS/JS AST. cargo clippy sees Rust AST. None of them sees the cross-language conventions — license uniformity, EOL pin, husky-hook content integrity, the 19 canary-pinned package versions, the [patch.crates-io][workspace] members consistency.

Where alint earns its keep here

Future story angles

The factual engineering writeup (tooling inventory, mapping table, gap catalogue, validation status footer) lives in the public alint repo at github.com/asamarts/alint/tree/main/examples/vercel-next.js/README.md.