# React vs Vue: source lines of code compared

As of 2026-09-12, facebook/react contains 460,163 total lines (364,527 code) across 2,133 files, while vuejs/core contains 80,821 total lines (60,310 code) across 413 files as of 2026-09-10. facebook/react is about 6.0x the size of vuejs/core by code lines. Code size is not code quality: a larger count only means more source material, not a better or worse project.

| Metric | [facebook/react](https://octocounts.com/github/facebook/react) | [vuejs/core](https://octocounts.com/github/vuejs/core) |
| --- | ---: | ---: |
| Files | 2,133 | 413 |
| Total lines | 460,163 | 80,821 |
| Code lines | 364,527 | 60,310 |
| Comment lines | 59,277 | 11,933 |
| Blank lines | 36,359 | 8,578 |
| Languages counted | 11 | 11 |

Top languages in facebook/react: JavaScript (63.5% of code), Rust (17.6% of code), TypeScript (16.5% of code). Top languages in vuejs/core: TypeScript (82.6% of code), YAML (7.7% of code), TSX (3.6% of code). JavaScript, TypeScript, JSON appear in both top language lists; Rust, CSS appear only in facebook/react's top languages; YAML, TSX appear only in vuejs/core's top languages.

Methodology: both counts come from cached OctoCounts reports generated with tokei. facebook/react was counted at ref main (commit 019019be403c) on 2026-09-12; vuejs/core was counted at ref main (commit 54097087a091) on 2026-09-10. See the [counting methodology](https://octocounts.com/docs/methodology) for ignored directories and analysis options.
## About this comparison

facebook/react is a monorepo: the counted archive includes the React packages plus fixtures, documentation site content, and test infrastructure, not just the react package that ships to apps. vuejs/core is the Vue core repository — the runtime, compiler, and reactivity packages — with its own tests and docs. Both counts therefore measure framework source trees, not applications built with them, and the two archives were counted on the dates shown in the methodology line above.

In the counted archives, the language mix differs in kind, not just degree: Vue core is predominantly TypeScript, while React's counted code is majority JavaScript with a substantial TypeScript share — a direct consequence of each project's chosen implementation language, visible in the per-language table of each report.

Both repositories carry a large test and fixture footprint relative to their runtime code, so a meaningful share of each count exists to keep the framework correct rather than to ship to production.

_Neither number predicts the size, performance, or quality of an app built with the framework: a bundled application includes a compiled subset of the framework, application code, and dependencies. Use these counts to gauge how much framework source exists to read and maintain._

Sources: [facebook/react repository structure (packages/ monorepo)](https://github.com/facebook/react) · [vuejs/core repository](https://github.com/vuejs/core). Statements verified 2026-09-08.

Evidence and next steps:

- [facebook/react SLOC report](https://octocounts.com/github/facebook/react)
- [vuejs/core SLOC report](https://octocounts.com/github/vuejs/core)
- [Compare facebook/react and vuejs/core interactively](https://octocounts.com/compare?left=https%3A%2F%2Fgithub.com%2Ffacebook%2Freact&right=https%3A%2F%2Fgithub.com%2Fvuejs%2Fcore)

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, facebook/react or vuejs/core?

facebook/react has more code: 364,527 code lines versus 60,310 for vuejs/core, about 6.0x as much, based on cached OctoCounts reports as of 2026-09-12.

### 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 facebook/react, vuejs/core, or any repository.

### How is this comparison calculated?

Methodology: both counts come from cached OctoCounts reports generated with tokei. facebook/react was counted at ref main (commit 019019be403c) on 2026-09-12; vuejs/core was counted at ref main (commit 54097087a091) on 2026-09-10. 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)
- [GitHub SLOC counter guide](https://octocounts.com/docs/github-sloc-counter)
- [Counting methodology](https://octocounts.com/docs/methodology)
- [OctoCounts API docs](https://octocounts.com/docs/api)
