The Next.js vs React Router comparison on OctoCounts shows side-by-side source line counts for vercel/next.js and remix-run/react-router, counted under the rules and on the dates stated below: files, total lines, code lines, comment lines, blank lines, and per-language totals, pinned to the exact commits listed below.
This page compares the source lines of code (SLOC) of vercel/next.js and remix-run/react-router using cached OctoCounts reports. Code size is not code quality: a larger count only means more source material, not a better or worse project.
As of 2026-11-05, vercel/next.js contains 977,149 total lines (789,610 code) across 8,624 files, while remix-run/react-router contains 156,902 total lines (111,614 code) across 703 files as of 2026-11-02. vercel/next.js has about 7.1x the counted code lines of remix-run/react-router under the same engine and counting rules. Code size is not code quality: a larger count only means more source material, not a better or worse project.
| Metric | vercel/next.js | remix-run/react-router |
|---|---|---|
| Files | 8,624 | 703 |
| Total lines | 977,149 | 156,902 |
| Code lines | 789,610 | 111,614 |
| Comment lines | 91,862 | 25,741 |
| Blank lines | 95,677 | 19,547 |
| Languages counted | 29 | 12 |
Top languages in vercel/next.js: Rust (34.9% of code), TypeScript (30.7% of code), TSX (11.0% of code). Top languages in remix-run/react-router: TypeScript (73.2% of code), YAML (13.7% of code), TSX (9.6% of code). TypeScript, TSX, JSON, JavaScript appear in both top language lists; Rust appears only in vercel/next.js's top languages; YAML appears only in remix-run/react-router's top languages.
Methodology: both counts come from cached OctoCounts reports generated with tokei. vercel/next.js was counted at ref canary (commit d768085563d5) on 2026-11-05; remix-run/react-router was counted at ref main (commit db80dda076ec) on 2026-11-02. See the counting methodology for ignored directories and analysis options.
Both reports use the same engine and effective counting rules. Repository declarations, when enabled, are specific to each repository. vercel/next.js: tokei-15.0.0, policy directories-v1; docs excluded, tests excluded, generated excluded. Excluded directory names: .cache, .generated, .git, .next, __tests__, build, dist, doc, docs, documentation, fixtures, gen, generated, node_modules, target, test, tests, vendor. Ignored languages: none. Repository declarations: off. Exclusions are rule-based; they do not prove that every test, document or generated file was removed. remix-run/react-router: tokei-15.0.0, policy directories-v1; docs excluded, tests excluded, generated excluded. Excluded directory names: .cache, .generated, .git, .next, __tests__, build, dist, doc, docs, documentation, fixtures, gen, generated, node_modules, target, test, tests, vendor. Ignored languages: none. Repository declarations: off. Exclusions are rule-based; they do not prove that every test, document or generated file was removed.
Background observations recorded on 2026-09-16; language descriptions here are historical context, not claims about the current filtered shares. Use this page's measured language breakdown for current counts. Repository layout before counting filters: vercel/next.js is the Next.js monorepo — framework packages, documentation site, examples, and test suites. remix-run/react-router is the React Router repository: the routing library packages, docs, and tests. This is a framework-repository vs library-repository comparison: related layers of the same stack, but not the same kind of software, counted on the dates shown in the methodology line above.
This is not framework-vs-framework: React Router supplies routing and is typically paired with a separate data and build layer, while Next.js bundles those concerns. Neither number indicates which fits an application better.
Sources: vercel/next.js repository structure (monorepo with examples and docs) · remix-run/react-router repository. Statements verified 2026-09-16.
Evidence and next steps:
Saved reports remain subject to cache cleanup and replacement. Export their JSON for durable citation; live report URLs can change.
Note: code size is not code quality. OctoCounts only reports reproducible line counts and makes no claim that either project is better.
As of 2026-11-05, vercel/next.js contains 977,149 total lines (789,610 code) across 8,624 files, while remix-run/react-router contains 156,902 total lines (111,614 code) across 703 files as of 2026-11-02. vercel/next.js has about 7.1x the counted code lines of remix-run/react-router under the same engine and counting rules. Code size is not code quality: a larger count only means more source material, not a better or worse project.
Not necessarily. SLOC measures size, not complexity, quality, or maintainability. A larger codebase can mean more features, more generated or vendored code, more verbose language idioms, or more tests — none of which imply the code is harder to work with. Use SLOC to gauge the scale of what you'd be reading or maintaining, not as a quality signal for vercel/next.js, remix-run/react-router, or any repository.
Methodology: both counts come from cached OctoCounts reports generated with tokei. vercel/next.js was counted at ref canary (commit d768085563d5) on 2026-11-05; remix-run/react-router was counted at ref main (commit db80dda076ec) on 2026-11-02. See the counting methodology for ignored directories and analysis options.
Yes. This page shows the default branch for each repository. Use the interactive comparison tool to pick any public GitHub repository, branch, tag, or commit SHA for both sides and get a fresh side-by-side report.