# Next.js vs Vite: source lines of code compared

The Next.js vs Vite comparison on OctoCounts shows side-by-side source line counts for vercel/next.js and vitejs/vite, counted with the same engine and analysis options on the dates shown in the methodology line: files, total lines, code lines, comment lines, blank lines, and per-language totals, pinned to the exact commits listed below.

As of 2026-09-21, vercel/next.js contains 910,832 total lines (735,550 code) across 8,331 files, while vitejs/vite contains 106,858 total lines (81,024 code) across 2,013 files as of 2026-09-21. vercel/next.js is about 9.1x the size of vitejs/vite by code lines. Code size is not code quality: a larger count only means more source material, not a better or worse project.

| Metric | [vercel/next.js](https://octocounts.com/github/vercel/next.js) | [vitejs/vite](https://octocounts.com/github/vitejs/vite) |
| --- | ---: | ---: |
| Files | 8,331 | 2,013 |
| Total lines | 910,832 | 106,858 |
| Code lines | 735,550 | 81,024 |
| Comment lines | 85,162 | 13,244 |
| Blank lines | 90,120 | 12,590 |
| Languages counted | 12 | 12 |

Top languages in vercel/next.js: Rust (33.5% of code), TypeScript (30.6% of code), TSX (11.3% of code). Top languages in vitejs/vite: TypeScript (57.8% of code), YAML (14.5% of code), JavaScript (11.1% of code). TypeScript, JSON, JavaScript appear in both top language lists; Rust, TSX appear only in vercel/next.js's top languages; YAML, CSS appear only in vitejs/vite's top languages.

Methodology: both counts come from cached OctoCounts reports generated with tokei. vercel/next.js was counted at ref canary (commit c20c1d4125b5) on 2026-09-21; vitejs/vite was counted at ref main (commit 9abd99bfdd31) on 2026-09-21. See the [counting methodology](https://octocounts.com/docs/methodology) for ignored directories and analysis options.
## About this comparison

vercel/next.js counts the Next.js monorepo — the framework packages, examples, documentation site, and test suites — while vitejs/vite counts the Vite core repository only. The comparison is framework-repository vs build-tool-repository: related layers of the stack, but not the same kind of software, and the counts were taken on the dates shown above.

Next.js's count includes documentation-site content and a large examples directory as part of its monorepo, so a substantial part of what is counted exists to teach and demonstrate rather than to ship as framework code.

The two counts describe different layers: Next.js is a framework that orchestrates rendering, routing, and data loading (and uses build tooling underneath), while Vite is that build tooling layer. Reading the numbers side by side is most useful as a sense of each project's reading and maintenance surface.

_This is not a framework-vs-build-tool performance or popularity comparison. Source-tree size says nothing about which to choose; the decision depends on the application's rendering and build requirements._

Sources: [vercel/next.js repository structure (monorepo with examples and docs)](https://github.com/vercel/next.js) · [vitejs/vite repository](https://github.com/vitejs/vite). Statements verified 2026-09-08.

Evidence and next steps:

- [vercel/next.js SLOC report](https://octocounts.com/github/vercel/next.js)
- [vitejs/vite SLOC report](https://octocounts.com/github/vitejs/vite)
- [Compare vercel/next.js and vitejs/vite interactively](https://octocounts.com/compare?left=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js&right=https%3A%2F%2Fgithub.com%2Fvitejs%2Fvite)

Note: code size is not code quality. OctoCounts only reports reproducible line counts and makes no claim that either project is better.

## Compare FAQ

### Which has more lines of code, vercel/next.js or vitejs/vite?

vercel/next.js has more code: 735,550 code lines versus 81,024 for vitejs/vite, about 9.1x as much, based on cached OctoCounts reports as of 2026-09-21.

### Does more source lines of code mean more complexity?

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, vitejs/vite, or any repository.

### How is this comparison calculated?

Methodology: both counts come from cached OctoCounts reports generated with tokei. vercel/next.js was counted at ref canary (commit c20c1d4125b5) on 2026-09-21; vitejs/vite was counted at ref main (commit 9abd99bfdd31) on 2026-09-21. See the counting methodology for ignored directories and analysis options.

### Can I compare a different branch, tag, or commit?

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.

## Related OctoCounts pages

- [Interactive repository comparison](https://octocounts.com/compare)
- [Recently analyzed repositories](https://octocounts.com/recent)
- [Popular SLOC reports](https://octocounts.com/popular)
- [Trending GitHub repositories](https://octocounts.com/trending)
- [Hall of Monoliths](https://octocounts.com/hall-of-monoliths)
- [Original research: how filtering changes SLOC counts](https://octocounts.com/research)
- [GitHub SLOC counter guide](https://octocounts.com/docs/github-sloc-counter)
- [Counting methodology](https://octocounts.com/docs/methodology)
- [SLOC and code metrics glossary](https://octocounts.com/docs/glossary)
- [OctoCounts API docs](https://octocounts.com/docs/api)
