{"id":"cmqa1cesq003blqdoukfc5klf","slug":"react-vs-vue-vs-angular","title":"React vs Vue vs Angular: Which JavaScript Framework Is Best in 2026?","shortAnswer":"There's no universal winner. React dominates on ecosystem breadth and developer availability, making it the default for SaaS startups and full-stack applications, while Vue excels with its approachable learning curve and excellent documentation—ideal for teams prioritizing developer experience and rapid prototyping. Angular remains the enterprise choice for large organizations with existing TypeScript investments and long-term maintenance requirements. Your decision should center on team expertise, project complexity, and hiring market conditions in your region.","keyDifferences":[{"label":"Ecosystem & job market","values":["~25M weekly downloads, ~47% of projects — deepest ecosystem & hiring pool","~5M weekly downloads — smaller but cohesive official stack","~3M weekly downloads — self-contained, enterprise-concentrated hiring"],"winnerIndex":0,"entityAValue":"~25M weekly downloads, ~47% of projects — deepest ecosystem & hiring pool","entityBValue":"~5M weekly downloads — smaller but cohesive official stack"},{"label":"Learning curve & adoption model","values":["Medium — JSX and hooks have a ramp; richest learning resources","Low — progressive, drop-in, best-documented; easiest to start","High — DI, RxJS, decorators, and mandatory TypeScript up front"],"winnerIndex":1,"entityAValue":"Medium — JSX and hooks have a ramp; richest learning resources","entityBValue":"Low — progressive, drop-in, best-documented; easiest to start"},{"label":"Architecture opinionation","values":["UI library — bring-your-own routing, state, and data-fetching","Progressive framework — official packages, adopt incrementally","Batteries-included framework — opinions about everything, built in"],"winnerIndex":"tie","entityAValue":"UI library — bring-your-own routing, state, and data-fetching","entityBValue":"Progressive framework — official packages, adopt incrementally"}],"verdict":"There's no single winner — the right pick depends on team background and project scale. Choose React for the deepest ecosystem, the most liquid hiring pool, Next.js full-stack SSR/RSC, and React Native mobile crossover; it's the safe default for most SaaS startups. Choose Vue for the lowest learning curve, the best documentation, a cohesive official stack (Pinia, Vue Router, Vite), the smallest runtime, and the highest developer satisfaction — ideal for incremental adoption and design-led teams. Choose Angular for large enterprise applications, mandatory TypeScript, batteries-included routing/forms/HTTP, and teams with Java/.NET backgrounds maintaining 5–10 year codebases. The load-bearing decision is library-vs-progressive-vs-batteries-included matched to your team: React maximizes flexibility and candidates, Vue minimizes ramp-up friction, and Angular minimizes architecture debates on large teams.","category":"technology","entities":[{"id":"cmmxr8zeu01vmlh9elk3qckmk","slug":"react","name":"React","shortDesc":"JavaScript library for building user interfaces with component-based architecture and virtual DOM","imageUrl":null,"entityType":"software","position":1,"pros":["Largest ecosystem — ~25M weekly npm downloads; most new libraries target React first","Deepest, most liquid hiring pool (~40% of professional devs) — fastest time-to-hire","React Native lets web React developers build native mobile apps","Next.js is the dominant full-stack meta-framework (SSR, SSG, API routes, Server Components)","React 19 Server Components ship 0 KB JS for static subtrees; strong real-world INP"],"cons":["JSX and useEffect re-render mechanics are a real learning curve for newcomers","\"Just a library\" — routing, state, and data-fetching are all third-party decisions","Larger base bundle (~130 KB) than Vue","Ecosystem churn — recommended tooling and best practices shift frequently"],"bestFor":"Best for ecosystem & hiring"},{"id":"cmnf294ha00ke2s3jg2n4v2oj","slug":"vue","name":"Vue","shortDesc":"Progressive JavaScript framework for building user interfaces with reactive data binding and component architecture.","imageUrl":null,"entityType":"framework","position":2,"pros":["Lowest barrier to entry; documentation widely cited as the best in any JS framework","Cohesive official stack — Pinia, Vue Router, Vite, and VueUse are tightly integrated","Smallest base runtime (~70 KB); Vue Vapor drops to ~20 KB by skipping the virtual DOM","Highest developer satisfaction (82% in State of JS 2025)","Progressive — drop in via a CDN script tag with no build step, or scale up with Nuxt"],"cons":["Smaller ecosystem (~5M weekly downloads) and hiring pool (~7–9% of US listings)","Fewer third-party component libraries target Vue first","Vapor mode is still maturing through 2026","Less corporate backing than React (Meta) or Angular (Google)"],"bestFor":"Best for gradual adoption"},{"id":"cmmxr8zja01volh9eupdga7xi","slug":"angular","name":"Angular","shortDesc":"Full-featured TypeScript-first framework by Google for building scalable enterprise applications.","imageUrl":null,"entityType":"software","position":3,"pros":["Batteries-included — routing, HTTP client, forms, animations, and testing built in","TypeScript-first by design; CLI generates consistent, well-typed boilerplate","Strong fit for Java/.NET enterprise teams and 5–10 year application lifecycles","Google-backed and stable in enterprise, finance, healthcare, and government accounts","Angular Signals (v19 default) modernized reactivity; Zoneless mode cuts ~40 KB"],"cons":["Steepest learning curve — DI, RxJS, decorators, and modules to learn up front","Largest base bundle (~180 KB with Zone.js)","Lowest developer satisfaction of the three (54% in State of JS 2025)","Smaller hiring pool outside enterprise verticals","Not recommended as a first JavaScript framework due to its complexity"],"bestFor":"Best for enterprise apps"}],"attributes":[{"id":"cmnf296hy00kv2s3jky33v5lm","slug":"initial-bundle-size","name":"Initial Bundle Size","unit":"KB (gzipped)","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"40KB","valueNumber":40,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:44.423Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"33KB","valueNumber":33,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:44.793Z","winner":true}]},{"id":"cmnf297b400l12s3jp2ts5e3h","slug":"render-time","name":"Render Time","unit":"milliseconds","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2.5ms (React 19)","valueNumber":2.5,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:45.463Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"1.8ms (Vue 3.6)","valueNumber":1.8,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:45.841Z","winner":true}]},{"id":"cmnf2984a00l72s3jv1md8uju","slug":"learning-curve","name":"Learning Curve","unit":"months to proficiency","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"3-4 months","valueNumber":3.5,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:46.512Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"1-2 months","valueNumber":1.5,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:46.889Z","winner":true}]},{"id":"cmnf298xd00ld2s3j2gsvvx4h","slug":"developer-satisfaction","name":"Developer Satisfaction","unit":"%","category":"Developer Experience","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"85%","valueNumber":85,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:47.560Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"92%","valueNumber":92,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:47.939Z","winner":true}]},{"id":"cmnf299qi00lj2s3j87r4tbal","slug":"market-adoption","name":"Market Adoption","unit":"% of developers","category":"Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"38%","valueNumber":38,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:48.608Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"14%","valueNumber":14,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:48.987Z","winner":false}]},{"id":"cmnf29ajn00lp2s3j1k4h1x4o","slug":"active-job-postings","name":"Active Job Postings","unit":"positions","category":"Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"~45,000","valueNumber":45000,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:49.660Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"~8,500","valueNumber":8500,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:50.035Z","winner":false}]},{"id":"cmnf29bcs00lv2s3j6bx734nb","slug":"npm-package-ecosystem","name":"NPM Package Ecosystem","unit":"curated packages","category":"Ecosystem","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"1M+ third-party libraries","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:50.707Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"50K+ specialized packages","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:51.085Z"}]},{"id":"cmnf29c6b00m12s3jvmo2auix","slug":"meta-framework-maturity","name":"Meta Framework Maturity","unit":"rating","category":"Ecosystem","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Next.js 15, Remix mature","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:51.756Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Nuxt 4.4, industry-leading","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:52.132Z"}]},{"id":"cmnf29czg00m72s3jc4zw7k4g","slug":"documentation-quality","name":"Documentation Quality","unit":"rating","category":"Developer Experience","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Comprehensive but scattered","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:52.855Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Official, intuitive, unified","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:53.186Z"}]},{"id":"cmnf29dsh00md2s3j156q6bgx","slug":"reactivity-system","name":"Reactivity System","unit":"implementation","category":"Architecture","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Hook-based with closure complexity","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:53.861Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Proxy-based, transparent reactivity","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:54.230Z"}]},{"id":"cmnf29el800mj2s3jd9aj3aj5","slug":"state-management-complexity","name":"State Management Complexity","unit":"boilerplate lines","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"150-300 lines","valueNumber":225,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:54.903Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"30-80 lines","valueNumber":55,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:55.280Z","winner":true}]},{"id":"cmnf29fkr00mp2s3jwmy5f1me","slug":"enterprise-readiness","name":"Enterprise Readiness","unit":"maturity score","category":"Enterprise","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Gold standard, Fortune 500 adoption","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:56.109Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Mature and reliable, growing adoption","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-03-31T20:19:56.476Z"}]},{"id":"cmq70v3yb000i13kyyo9bj74t","slug":"time-to-first-contentful-paint","name":"Time to First Contentful Paint","unit":"milliseconds (average)","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"3,500-4,200 ms (CSR)","valueNumber":3850,"valueBoolean":null,"updatedAt":"2026-06-09T19:17:45.543Z"}]},{"id":"cmq70v3ym000o13kyifuf8ksk","slug":"seo-friendliness-score","name":"SEO-Friendliness Score","unit":"out of 100","category":"Features","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"35 (requires workarounds)","valueNumber":35,"valueBoolean":null,"updatedAt":"2026-06-09T19:17:45.554Z"}]},{"id":"cmq4u8mk1002p41ewyff5s7mc","slug":"built-in-routing","name":"Built-in Routing","unit":null,"category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"No (requires React Router)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-09T19:17:45.565Z"}]},{"id":"cmq70v3z8001013ky46z8vt2b","slug":"api-routes-support","name":"API Routes Support","unit":null,"category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"No (requires separate backend)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-09T19:17:45.575Z"}]},{"id":"cmmxr90aj01vvlh9en2wgumc3","slug":"github-stars","name":"GitHub Stars","unit":"stars","category":"Community","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"~230K","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.333Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"~210K","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.402Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~95K","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.471Z"}]},{"id":"cmmxr8dwg01q3lh9ey93t7h6q","slug":"setup-time","name":"Setup Time","unit":"minutes","category":"Implementation","dataType":"text","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"5-10 minutes (CRA)","valueNumber":7,"valueBoolean":null,"updatedAt":"2026-06-09T19:17:45.596Z"}]},{"id":"cmoyckjet000h136n1ek8c9pa","slug":"minimum-bundle-size-hello-world-","name":"Minimum Bundle Size (Hello World)","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42 KB","valueNumber":42,"valueBoolean":null,"updatedAt":"2026-05-09T12:55:49.834Z"}]},{"id":"cmoyckjf6000n136nvdkda9jq","slug":"learning-curve-to-proficiency","name":"Learning Curve to Proficiency","unit":"hours","category":"Educational","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"80-120 hours","valueNumber":100,"valueBoolean":null,"updatedAt":"2026-05-09T12:55:49.847Z"}]},{"id":"cmoyckjfk000t136n08ie4fdy","slug":"fortune-500-production-adoptions","name":"Fortune 500 Production Adoptions","unit":"companies","category":"Enterprise Adoption","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"300+","valueNumber":300,"valueBoolean":null,"updatedAt":"2026-05-09T12:55:49.861Z"}]},{"id":"cmoyckjfy000z136npj9vyq74","slug":"job-postings-2026-global-market-","name":"Job Postings (2026 Global Market)","unit":"postings","category":"Career Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"85,000+","valueNumber":85000,"valueBoolean":null,"updatedAt":"2026-05-09T12:55:49.874Z"}]},{"id":"cmoyckjgb0015136nhwutdq7y","slug":"npm-ecosystem-packages","name":"NPM Ecosystem Packages","unit":"packages","category":"Ecosystem Maturity","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2M+","valueNumber":2000000,"valueBoolean":null,"updatedAt":"2026-05-09T12:55:49.888Z"}]},{"id":"cmoyckjgo001b136nu0g4z558","slug":"state-management-out-of-box-","name":"State Management (Out-of-Box)","unit":"built-in","category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"None (requires Redux, Zustand)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-09T12:55:49.901Z"}]},{"id":"cmoyckjh1001h136nv5vtknl5","slug":"dependency-array-tracking","name":"Dependency Array Tracking","unit":"automatic","category":"Developer Experience","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Manual via useEffect dependency arrays","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-09T12:55:49.914Z"}]},{"id":"cmq4e2xqa004ty9xb5dl66cs4","slug":"job-postings-2025-","name":"Job Postings (2025)","unit":"postings","category":"Job Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"125,000+ positions","valueNumber":125000,"valueBoolean":null,"updatedAt":"2026-06-09T19:17:45.606Z"}]},{"id":"cmp0yf6zr0047tdnchf0bkg1x","slug":"dom-update-speed","name":"DOM Update Speed","unit":"relative multiplier","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"1x baseline (virtual DOM diffing)","valueNumber":1,"valueBoolean":null,"updatedAt":"2026-05-11T08:43:04.363Z"}]},{"id":"cmp0yf70c004jtdncxe5uoa6q","slug":"available-npm-packages","name":"Available NPM Packages","unit":"packages","category":"Ecosystem","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"1,000,000+","valueNumber":1000000,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.933Z"}]},{"id":"cmp0yf70m004ptdnczgd4gl63","slug":"active-job-listings","name":"Active Job Listings","unit":"listings","category":"Job Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"300,000+","valueNumber":300000,"valueBoolean":null,"updatedAt":"2026-05-11T08:43:04.394Z"}]},{"id":"cmp0yf70x004vtdnchcpii1ke","slug":"community-tutorials-resources","name":"Community Tutorials & Resources","unit":"relative scale","category":"Learning","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Largest frontend community with millions of tutorials","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-11T08:43:04.404Z"}]},{"id":"cmp0yf71c0051tdncuyemaf2a","slug":"virtual-dom-architecture","name":"Virtual DOM Architecture","unit":null,"category":"Architecture","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Yes—batch re-renders via virtual tree diffing","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-11T08:43:04.420Z"}]},{"id":"cmotl0000001hgvzswimo01jf","slug":"current-stable-version","name":"Current Stable Version","unit":null,"category":"Release","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"React 19 (2026) with server components and new hooks","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-11T08:43:04.431Z"}]},{"id":"cmp0yf71y005dtdncp648kmw4","slug":"jsx-support","name":"JSX Support","unit":null,"category":"Developer Experience","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Yes—standard JSX with hooks paradigm","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-11T08:43:04.442Z"}]},{"id":"cmqa1cetq003rlqdo3ldwdn59","slug":"job-market-share-2026-","name":"Job Market Share (2026)","unit":"percent of frontend positions","category":"Career & Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"45% of job postings","valueNumber":45,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.313Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"15% of job postings","valueNumber":15,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.316Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"25% of job postings","valueNumber":25,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.320Z"}]},{"id":"cmq70v3xx000c13kys76v35nt","slug":"minimum-bundle-size","name":"Minimum Bundle Size","unit":"KB minified+gzipped","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42 KB","valueNumber":42,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.327Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"33 KB","valueNumber":33,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.332Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"130 KB","valueNumber":130,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.335Z"}]},{"id":"cmqa1ceui0047lqdo8d9ypfw9","slug":"learning-difficulty-rating","name":"Learning Difficulty Rating","unit":"scale 1-10","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"6/10 - moderate complexity","valueNumber":6,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.342Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"4/10 - gentle progression","valueNumber":4,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.345Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"8/10 - steep requirements","valueNumber":8,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.348Z"}]},{"id":"cmqa1ceuv004flqdojqee7aop","slug":"enterprise-readiness-score","name":"Enterprise Readiness Score","unit":"scale 1-10","category":"Enterprise Features","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"7/10 - needs proper patterns","valueNumber":7,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.355Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"6/10 - moderate capability","valueNumber":6,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.358Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"10/10 - designed for enterprise","valueNumber":10,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.362Z"}]},{"id":"cmqa1cev9004nlqdokx9ir5vl","slug":"development-speed-relative-","name":"Development Speed (relative)","unit":"time to build feature","category":"Productivity","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Baseline speed","valueNumber":1,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.369Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"25% faster than React","valueNumber":0.75,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.372Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"30% slower than React","valueNumber":1.3,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.376Z"}]},{"id":"cmqa1cevn004vlqdog88gv3ty","slug":"typescript-integration","name":"TypeScript Integration","unit":"scale 1-10","category":"Language Features","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"8/10 - excellent support","valueNumber":8,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.383Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"9/10 - excellent support","valueNumber":9,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.386Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"10/10 - core requirement","valueNumber":10,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.390Z"}]},{"id":"cmoznl8dt000t5jyfr6ko2erk","slug":"ecosystem-size","name":"Ecosystem Size","unit":"major framework subprojects","category":"Ecosystem","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"145k+ related packages","valueNumber":145,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.396Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"28k+ related packages","valueNumber":28,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.400Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"32k+ related packages","valueNumber":32,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.404Z"}]},{"id":"cmqa1cewf005blqdoxpp4dz7s","slug":"community-forum-activity","name":"Community Forum Activity","unit":"annual posts on Stack Overflow","category":"Community Support","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"125k+ posts yearly","valueNumber":125000,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.412Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"35k+ posts yearly","valueNumber":35000,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.415Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"48k+ posts yearly","valueNumber":48000,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.419Z"}]},{"id":"cmqa1cewt005jlqdo5csvs9dr","slug":"long-term-maintenance-risk","name":"Long-term Maintenance Risk","unit":"scale 1-10","category":"Sustainability","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"3/10 - backed by Meta, stable","valueNumber":3,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.425Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"4/10 - community-driven but stable","valueNumber":4,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.428Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2/10 - backed by Google, enterprise-grade","valueNumber":2,"valueBoolean":null,"updatedAt":"2026-06-11T21:54:31.431Z"}]},{"id":"cmozav5im000b3ugopkxmmaab","slug":"bundle-size-hello-world-","name":"Bundle Size (Hello World)","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42.3 KB","valueNumber":42.3,"valueBoolean":null,"updatedAt":"2026-06-08T11:41:00.669Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"33 KB","valueNumber":33,"valueBoolean":null,"updatedAt":"2026-06-08T06:33:02.353Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"130 KB","valueNumber":130,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:27.975Z"}]},{"id":"cmqach6x4000f12ffzd5i6rai","slug":"type","name":"Type","unit":null,"category":"Architecture","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"UI library (not a full framework)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.258Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Progressive framework","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.396Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Full MVC framework","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.465Z"}]},{"id":"cmqach78m000n12ffnuorjwvd","slug":"maintained-by","name":"Maintained by","unit":null,"category":"Architecture","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Meta (open-source)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.604Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Community (Evan You / core team)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.674Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Google","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.743Z"}]},{"id":"cmqach7gc000v12ffdaarhrzz","slug":"first-release","name":"First Release","unit":"year","category":"History","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2013","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.881Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"2014","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:10.951Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2016 (Angular 2+)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.020Z"}]},{"id":"cmnbmq4hz0129slg45hkkas0q","slug":"current-version","name":"Current Version","unit":null,"category":"Release Cycle","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"React 19 (2026)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.158Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Vue 3 (Composition API)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.232Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Angular 19","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.303Z"}]},{"id":"cmqach7vv001b12ff8i7ftb2b","slug":"language-default","name":"Language default","unit":null,"category":"Language & types","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"JavaScript / JSX","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.442Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"HTML templates + <script setup>","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.511Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"TypeScript (mandatory)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.580Z"}]},{"id":"cmotyv9kh001bihkffz9v6a8u","slug":"typescript-support","name":"TypeScript Support","unit":null,"category":"Language","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Excellent (optional)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.718Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Excellent (optional)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.788Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Required","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:22.015Z"}]},{"id":"cmngdxiu000ev9t3skwthpjny","slug":"learning-curve","name":"Learning Curve","unit":"difficulty rating","category":"Usability","dataType":"text","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Medium","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:11.995Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Low–Medium","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.065Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"High","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.134Z"}]},{"id":"cmqach8j0001z12ff6bhd1rx7","slug":"bundle-size","name":"Bundle size (base)","unit":null,"category":"Performance","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"~130 KB","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.273Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"~70 KB","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.343Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~180 KB (with Zone.js)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.412Z"}]},{"id":"cmq2d1u08001cfjwhy4yze69r","slug":"state-management","name":"State management","unit":null,"category":"Ecosystem","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Zustand / Redux / Context","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.551Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Pinia (official)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.620Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"NgRx / Services","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.691Z"}]},{"id":"cmqach8yg002f12ffqo0pv0yl","slug":"routing","name":"Routing","unit":null,"category":"Ecosystem","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"React Router","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.830Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Vue Router (official)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.899Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Angular Router (built-in)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:12.968Z"}]},{"id":"cmqach969002n12ffbdndfmxw","slug":"form-handling","name":"Form handling","unit":null,"category":"Ecosystem","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"React Hook Form / Formik","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.111Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"VeeValidate / built-in","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.180Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Reactive Forms (built-in)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.249Z"}]},{"id":"cmqach9dy002v12ff372waytx","slug":"data-fetching","name":"Data fetching","unit":null,"category":"Ecosystem","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"TanStack Query / SWR","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.388Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"TanStack Query / ofetch","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.457Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"HttpClient (built-in)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.526Z"}]},{"id":"cmqach9lo003312ffrwwkmcqy","slug":"ssr-ssg","name":"SSR / SSG meta-framework","unit":null,"category":"Ecosystem","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Next.js (dominant)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.665Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Nuxt","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.734Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Angular Universal","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.808Z"}]},{"id":"cmqach9th003b12ffk2gooho7","slug":"mobile","name":"Mobile app framework","unit":null,"category":"Ecosystem","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"React Native","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:13.947Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"—","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.016Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"NativeScript (unofficial)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.085Z"}]},{"id":"cmqacha16003j12fftjbipljd","slug":"cli-tooling","name":"CLI / build tooling","unit":null,"category":"Tooling","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Vite / CRA (deprecated)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.223Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Vite (default)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.292Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Angular CLI","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.362Z"}]},{"id":"cmqacha8v003r12ff8szf9mkp","slug":"testing","name":"Testing (default)","unit":null,"category":"Tooling","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"React Testing Library + Vitest","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.501Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Vitest (official)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.570Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Jasmine + Karma (built-in)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.639Z"}]},{"id":"cmqachagk003z12fftdhj4v2m","slug":"licensing","name":"Licensing","unit":null,"category":"Licensing","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"MIT","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.777Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"MIT","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.848Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"MIT","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:14.917Z"}]},{"id":"cmqachaoa004712ffqmmmrzxw","slug":"npm-downloads","name":"npm weekly downloads","unit":null,"category":"Adoption","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"~25M","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.056Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"~5M","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.125Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~3M","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.194Z"}]},{"id":"cmqachb3o004n12ff4w7ly264","slug":"satisfaction","name":"State of JS satisfaction (2025)","unit":null,"category":"Adoption","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"71%","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.609Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"82%","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.679Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"54%","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-12T03:06:15.748Z"}]},{"id":"cmqpiz9cf00cvsmlfiygwuh0v","slug":"core-library-bundle-size","name":"Core Library Bundle Size","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42 KB","valueNumber":42,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.412Z","winner":true},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"147 KB","valueNumber":147,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.416Z","winner":false}]},{"id":"cmqpiz9d400d7smlfdjwooo8c","slug":"job-market-demand-us-2025-","name":"Job Market Demand (US 2025)","unit":"job postings","category":"Career Prospects","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"8,234 postings","valueNumber":8234,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.437Z","winner":true},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"3,156 postings","valueNumber":3156,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.441Z","winner":false}]},{"id":"cmone5ahr000bz1rs1yb5cdom","slug":"developer-satisfaction-rating","name":"Developer Satisfaction Rating","unit":"out of 10","category":"Developer Experience","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"92%","valueNumber":92,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.449Z","winner":true},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"73%","valueNumber":73,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.453Z","winner":false}]},{"id":"cmqpiz9ds00djsmlfo5kihibt","slug":"time-to-first-production-app","name":"Time to First Production App","unit":"days","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2-3 weeks","valueNumber":2.5,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.461Z","winner":true},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"5-8 weeks","valueNumber":6.5,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.466Z","winner":false}]},{"id":"cmqpiz9e600dpsmlfuflx51az","slug":"built-in-feature-completeness","name":"Built-in Feature Completeness","unit":"features included","category":"Framework Capabilities","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Routing, HTTP (via add-ons), state (via add-ons), testing (via add-ons)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.474Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Routing, HTTP, forms, validation, testing, DI all included","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.479Z"}]},{"id":"cmqpiz9ej00dvsmlfbksc47ck","slug":"typescript-requirement","name":"TypeScript Requirement","unit":"mandatory","category":"Language Requirements","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Optional—can write pure JavaScript","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.487Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Required—all code is TypeScript","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.491Z"}]},{"id":"cmqpiz9ev00e1smlfhg2jhf5t","slug":"popular-ecosystem-packages","name":"Popular Ecosystem Packages","unit":"mature packages","category":"Ecosystem Size","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"4,200+ packages","valueNumber":4200,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.500Z","winner":true},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"1,800+ packages","valueNumber":1800,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.504Z","winner":false}]},{"id":"cmqwdh8j5000h2hjvy4uwaeoh","slug":"time-to-interactive-tti-","name":"Time to Interactive (TTI)","unit":"milliseconds","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2.8s average","valueNumber":2.8,"valueBoolean":null,"updatedAt":"2026-06-27T13:05:07.703Z","winner":true},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"3.5-4.2s","valueNumber":3.9,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:21.958Z","winner":false}]},{"id":"cmqwdh8jj000n2hjvyxpm1w37","slug":"hello-world-bundle-size","name":"Hello World Bundle Size","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42 KB","valueNumber":42,"valueBoolean":null,"updatedAt":"2026-06-27T13:05:07.716Z"}]},{"id":"cmoymahwn000h54s0c4gljv0m","slug":"global-job-postings-2026-","name":"Global Job Postings (2026)","unit":"listings","category":"Career & Market Demand","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"~18,500","valueNumber":18500,"valueBoolean":null,"updatedAt":"2026-06-27T13:05:07.727Z"}]},{"id":"cmqwdh8k5000z2hjvwawd4q63","slug":"compatible-npm-packages","name":"Compatible npm Packages","unit":"packages","category":"Ecosystem","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2.1 million","valueNumber":2100000,"valueBoolean":null,"updatedAt":"2026-06-27T13:05:07.736Z"}]},{"id":"cmqwdh8kh00152hjv816thox4","slug":"production-applications-documented-","name":"Production Applications (Documented)","unit":"applications","category":"Maturity","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2.5+ million","valueNumber":2500000,"valueBoolean":null,"updatedAt":"2026-06-27T13:05:07.756Z"}]},{"id":"cmqs3ua6k00d7szup883buqax","slug":"framework-age","name":"Framework Age","unit":"years","category":"Maturity","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"11 years (2013-2026)","valueNumber":11,"valueBoolean":null,"updatedAt":"2026-06-27T13:05:07.779Z"}]},{"id":"cmq4e2xp1004by9xb6o6bqjxg","slug":"developer-market-share","name":"Developer Market Share","unit":"percent","category":"Adoption","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42.8%","valueNumber":42.8,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.797Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"17.3%","valueNumber":17.3,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.799Z","winner":false}]},{"id":"cmow6l864000h4n56ale1mtbu","slug":"learning-curve-hours-to-proficiency-","name":"Learning Curve (hours to proficiency)","unit":"hours","category":"Usability","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"60-80 hours","valueNumber":70,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.803Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"30-40 hours","valueNumber":35,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.805Z","winner":true}]},{"id":"cmr83mk0f006jipz5j2sbcvnw","slug":"production-bundle-size-hello-world-","name":"Production Bundle Size (Hello World)","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42.8 KB (minified+gzipped)","valueNumber":42.8,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.810Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"34.5 KB (minified+gzipped)","valueNumber":34.5,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.812Z","winner":true}]},{"id":"cmr83mk0m006pipz5rn81sb0m","slug":"npm-ecosystem-package-count","name":"NPM Ecosystem Package Count","unit":"packages","category":"Ecosystem","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2.8M+ packages","valueNumber":2800000,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.816Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"1.2M+ packages","valueNumber":1200000,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.818Z","winner":false}]},{"id":"cmr83mk0s006vipz5xh44a2ug","slug":"us-job-market-openings-2025-","name":"US Job Market Openings (2025)","unit":"listings","category":"Career Prospects","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"18,400+ active listings","valueNumber":18400,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.822Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"3,200+ active listings","valueNumber":3200,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.824Z","winner":false}]},{"id":"cmr83mk0y0071ipz53yu1xos7","slug":"fortune-500-enterprise-adoption","name":"Fortune 500 Enterprise Adoption","unit":"percent","category":"Enterprise","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"89% of top 500","valueNumber":89,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.829Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"12% of top 500","valueNumber":12,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.831Z","winner":false}]},{"id":"cmr83mk150077ipz59nbdai4c","slug":"official-documentation-satisfaction","name":"Official Documentation Satisfaction","unit":"%","category":"Learning Resources","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"82% developer satisfaction","valueNumber":82,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.835Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"94% developer satisfaction","valueNumber":94,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.838Z","winner":true}]},{"id":"cmouquuep001bsuus3n7lws3f","slug":"typescript-support-level","name":"TypeScript Support Level","unit":null,"category":"Developer Experience","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Excellent (first-class support, community-driven type definitions)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.842Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Very Good (strong built-in TypeScript support, official types)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-05T18:02:33.844Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"First-class (required)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-14T08:56:56.269Z"}]},{"id":"cmoyckje4000b136nl3uvnb8m","slug":"weekly-npm-downloads","name":"Weekly npm Downloads","unit":"downloads","category":"Adoption & Community","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"2.3 million","valueNumber":2300000,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.177Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"890 thousand","valueNumber":890000,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.184Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2.8M","valueNumber":2.8,"valueBoolean":null,"updatedAt":"2026-06-22T18:04:43.429Z"}]},{"id":"cmrbphjos01gdalj4i64g0a3l","slug":"job-market-positions-2026-","name":"Job Market Positions (2026)","unit":"open positions","category":"Career Opportunities","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"12,500+","valueNumber":12500,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.193Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"2,800+","valueNumber":2800,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.198Z","winner":false}]},{"id":"cmqb777t40041onv2qxziqwmf","slug":"developer-adoption-rate","name":"Developer Adoption Rate","unit":"%","category":"Adoption","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"73%","valueNumber":73,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.207Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"28%","valueNumber":28,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.212Z","winner":false}]},{"id":"cmp0yf702004dtdnc8vubjpwr","slug":"minified-bundle-size","name":"Minified Bundle Size","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42.3 KB","valueNumber":42.3,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.221Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"33.5 KB","valueNumber":33.5,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.225Z","winner":true}]},{"id":"cmouquudj000hsuus9rz9ppiy","slug":"first-contentful-paint","name":"First Contentful Paint","unit":"seconds","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"1.2 seconds","valueNumber":1.2,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.236Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"0.95 seconds","valueNumber":0.95,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.245Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2.5s (typical SPA)","valueNumber":2.5,"valueBoolean":null,"updatedAt":"2026-05-07T00:24:40.522Z"}]},{"id":"cmrbphjqh01h1alj4mghvxu8s","slug":"learning-curve-beginner-","name":"Learning Curve (Beginner)","unit":"weeks","category":"Ease of Use","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"80-120 hours","valueNumber":100,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.254Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"40-60 hours","valueNumber":50,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.259Z","winner":true}]},{"id":"cmq4u8mka002t41ew9du9opmp","slug":"corporate-backing","name":"Corporate Backing","unit":"null","category":"Sustainability","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Meta (Facebook) - dedicated engineering team","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.268Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Community-driven open source","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.272Z"}]},{"id":"cmrbphjr801hdalj4per9dmdx","slug":"third-party-ecosystem-size","name":"Third-Party Ecosystem Size","unit":"estimated packages","category":"Ecosystem","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"45,000+ compatible packages","valueNumber":45000,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.281Z","winner":true},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"12,000+ compatible packages","valueNumber":12000,"valueBoolean":null,"updatedAt":"2026-07-08T06:37:50.285Z","winner":false}]},{"id":"cmqdjvzj8000uxqy53bn9e77u","slug":"github-stars-as-of-2026-","name":"GitHub Stars (as of 2026)","unit":"stars","category":"Community Adoption","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"220,000+","valueNumber":220000,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:16.926Z","winner":true},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~96,000","valueNumber":96000,"valueBoolean":null,"updatedAt":"2026-06-14T08:56:56.232Z","winner":false}]},{"id":"cmrb1lgep00bl13r4fca5kzjk","slug":"time-to-hello-world","name":"Time to Hello World","unit":"minutes","category":"Development Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"45-120 (with tooling)","valueNumber":120,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:16.937Z"}]},{"id":"cmrdju8k1008hddbyrnw7lgqp","slug":"default-rendering-strategy","name":"Default Rendering Strategy","unit":null,"category":"Technical Architecture","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Client-side only (CSR)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:16.948Z"}]},{"id":"cmrb5zksm006btwdxjvgypg2y","slug":"built-in-routing-system","name":"Built-in Routing System","unit":null,"category":"Feature Set","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"None (requires React Router or equivalent)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:16.958Z"}]},{"id":"cmrdju8km008tddby6ywwrj0l","slug":"api-routes-backend-support","name":"API Routes/Backend Support","unit":null,"category":"Feature Set","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"Not included (separate backend needed)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:16.971Z"}]},{"id":"cmrdju8ky008zddbyl0dzyi11","slug":"typical-bundle-size-hello-world-","name":"Typical Bundle Size (Hello World)","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42 KB (gzipped)","valueNumber":42,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:16.982Z"}]},{"id":"cmrdju8l70095ddbyx511d0hr","slug":"npm-weekly-downloads-2026-","name":"npm Weekly Downloads (2026)","unit":"millions","category":"Community & Adoption","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"18.5 million","valueNumber":18500000,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:16.990Z"}]},{"id":"cmrdju8lg009bddbyoqu99xxt","slug":"lighthouse-seo-score-default-config-","name":"Lighthouse SEO Score (default config)","unit":"score out of 100","category":"Performance","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"40-60 (without optimization)","valueNumber":60,"valueBoolean":null,"updatedAt":"2026-07-09T13:35:17.000Z"}]},{"id":"cmoznl8cz000b5jyf3sw9ltuy","slug":"bundle-size-minified-gzipped-","name":"Bundle Size (Minified + Gzipped)","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"42 KB","valueNumber":42,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.860Z","winner":false},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"33.4 KB","valueNumber":33.4,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.604Z","winner":true}]},{"id":"cmmxr90r201w1lh9erbsoamiz","slug":"npm-weekly-downloads","name":"npm Weekly Downloads","unit":"downloads","category":"Adoption","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"3.2M","valueNumber":3200000,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.872Z"},{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"2,400,000","valueNumber":2400000,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.623Z"},{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2.8M","valueNumber":2800000,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:28.003Z"}]},{"id":"cmrdqnoxb009hke6cweas3q36","slug":"job-market-share","name":"Job Market Share","unit":"%","category":"Career","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"67%","valueNumber":67,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.883Z"}]},{"id":"cmoyucvq4000hvawtz48nule7","slug":"learning-curve-duration","name":"Learning Curve Duration","unit":"hours","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"80-120 hours","valueNumber":100,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.898Z"}]},{"id":"cmrdqnoy1009tke6cn1shns4f","slug":"developer-satisfaction","name":"Developer Satisfaction","unit":"%","category":"Developer Experience","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"72%","valueNumber":72,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.910Z"}]},{"id":"cmodmsbbv0095nv6ukr7fsplc","slug":"fortune-500-adoption","name":"Fortune 500 Adoption","unit":"%","category":"Enterprise","dataType":"numeric","higherIsBetter":true,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"91%","valueNumber":91,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.921Z"}]},{"id":"cmrdqnoz100abke6c67wfu00z","slug":"initial-render-performance","name":"Initial Render Performance","unit":"ms","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zeu01vmlh9elk3qckmk","valueText":"28 ms","valueNumber":28,"valueBoolean":null,"updatedAt":"2026-07-09T16:46:08.945Z"}]},{"id":"cmozav5j0000f3ugowuw6ruyi","slug":"component-mount-speed","name":"Component Mount Speed","unit":"components per 100ms","category":"Performance","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"100,000 components in 100ms","valueNumber":100000,"valueBoolean":null,"updatedAt":"2026-05-10T04:55:52.001Z"}]},{"id":"cmozav5ji000n3ugo4ewyh1nz","slug":"built-in-features","name":"Built-in Features","unit":null,"category":"Feature Set","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Core library only; routing/state via third-party packages","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-10T04:55:52.018Z"}]},{"id":"cmou6cqol001hybooelqt3ov2","slug":"enterprise-adoption-rate","name":"Enterprise Adoption Rate","unit":"percent of enterprises","category":"Enterprise","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Growing adoption but smaller enterprise footprint","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-10T04:55:52.027Z"}]},{"id":"cmngdxgir00ef9t3sk105itqi","slug":"community-size","name":"Community Size","unit":"Discord members","category":"Community","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Growing community with strong support and plugins","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-10T04:55:52.035Z"}]},{"id":"cmozav5k7000z3ugo32e9urt2","slug":"development-speed-for-prototypes","name":"Development Speed for Prototypes","unit":"relative scale","category":"Developer Experience","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Faster with minimal setup and flexible architecture","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-10T04:55:52.043Z"}]},{"id":"cmozav5kf00133ugoj3m6jthk","slug":"2026-major-release-features","name":"2026 Major Release Features","unit":"count","category":"Roadmap","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Vue 3.6+: ecosystem maturity, Vuetify 4.0 with MD3 design system","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-10T04:55:52.051Z"}]},{"id":"cmq4is2ea00a73saowjwfngwa","slug":"runtime-performance-95th-percentile-","name":"Runtime Performance (95th Percentile)","unit":"ms","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"18 ms","valueNumber":18,"valueBoolean":null,"updatedAt":"2026-06-08T01:15:58.122Z"}]},{"id":"cmq4is2f500ap3saoqgn6w8yv","slug":"active-job-postings","name":"Active Job Postings","unit":"postings","category":"Job Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"8,500+","valueNumber":8500,"valueBoolean":null,"updatedAt":"2026-06-08T01:15:58.152Z"}]},{"id":"cmq4is2ff00av3saoa3e8rpco","slug":"official-documentation-pages","name":"Official Documentation Pages","unit":"count","category":"Support & Learning","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"47 comprehensive guides","valueNumber":47,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.632Z"}]},{"id":"cmq4is2fu00b13sao3fwkhbf4","slug":"native-state-management","name":"Native State Management","unit":null,"category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"No (requires Pinia)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-08T01:15:58.178Z"}]},{"id":"cmq4is2g500b73saoiu8l6wfi","slug":"time-to-first-interactive-tti-","name":"Time to First Interactive (TTI)","unit":"ms","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"156 ms","valueNumber":156,"valueBoolean":null,"updatedAt":"2026-06-08T01:15:58.189Z"}]},{"id":"cmq4u3tlo000j41ew7d4jxvzj","slug":"time-to-first-contentful-paint-avg-spa-","name":"Time to First Contentful Paint (avg SPA)","unit":"milliseconds","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"1,200 ms","valueNumber":1200,"valueBoolean":null,"updatedAt":"2026-06-08T06:33:02.368Z"}]},{"id":"cmq4u3tm0000p41ewniuwoa5d","slug":"configuration-required-for-ssr","name":"Configuration Required for SSR","unit":"hours","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"4-8 hours","valueNumber":6,"valueBoolean":null,"updatedAt":"2026-06-08T06:33:02.381Z"}]},{"id":"cmq4u3tmd000v41ewfltfn4yw","slug":"monthly-npm-downloads","name":"Monthly NPM Downloads","unit":"millions","category":"Adoption","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"2.5 million","valueNumber":2500000,"valueBoolean":null,"updatedAt":"2026-06-08T06:33:02.394Z"}]},{"id":"cmq4u3tn2001741ewmmsx1tj0","slug":"built-in-file-based-routing","name":"Built-in File-Based Routing","unit":null,"category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"No (requires Vue Router)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-08T06:33:02.418Z"}]},{"id":"cmq4u3tne001d41ewcj3b02iz","slug":"native-ssr-support","name":"Native SSR Support","unit":null,"category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"No (manual setup)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-06-08T06:33:02.431Z"}]},{"id":"cmq4u3tnr001j41ew4ase5yym","slug":"project-setup-time","name":"Project Setup Time","unit":"minutes","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"45 minutes","valueNumber":45,"valueBoolean":null,"updatedAt":"2026-06-08T06:33:02.443Z"}]},{"id":"cmrd9da2y02hr5xvx5eehkoj9","slug":"time-to-production-ready-hours-","name":"Time to Production Ready (Hours)","unit":"hours","category":"Development Speed","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"40-60 hours with full setup and tooling","valueNumber":50,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.613Z"}]},{"id":"cmrd9da3q02i95xvx0vxnlv6w","slug":"third-party-plugin-ecosystem","name":"Third-Party Plugin Ecosystem","unit":"plugins","category":"Ecosystem","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"1,200+ community packages","valueNumber":1200,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.641Z"}]},{"id":"cmqo80faq000p3f45aaixc6i5","slug":"learning-curve-steepness","name":"Learning Curve Steepness","unit":null,"category":"Ease of Use","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Moderate-to-Steep (concepts: reactivity, watchers, lifecycle hooks)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.650Z"}]},{"id":"cmrd9da4802il5xvxq1wgtfzu","slug":"job-openings-global-2026-","name":"Job Openings (Global, 2026)","unit":"positions","category":"Career Opportunity","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"85,000+ positions requiring Vue","valueNumber":85000,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.659Z"}]},{"id":"cmq4s1yrp004ak269jljtfbig","slug":"build-tool-requirement","name":"Build Tool Requirement","unit":"yes/no","category":"Setup Complexity","dataType":"text","higherIsBetter":false,"values":[{"entityId":"cmnf294ha00ke2s3jg2n4v2oj","valueText":"Required (Vite/Webpack minimum)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T08:42:09.667Z"}]},{"id":"cmouquud6000bsuus1czkhb5p","slug":"initial-bundle-size-minified-","name":"Initial Bundle Size (minified)","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"150-180 KB","valueNumber":165,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:21.936Z"}]},{"id":"cmouquudr000nsuuswr8nkb00","slug":"learning-time-to-productivity","name":"Learning Time to Productivity","unit":"weeks","category":"Usability","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"6-8 weeks","valueNumber":7,"valueBoolean":null,"updatedAt":"2026-05-07T00:24:40.530Z"}]},{"id":"cmouquudz000tsuus9ck7udfb","slug":"job-market-size-2026-","name":"Job Market Size (2026)","unit":"estimated positions","category":"Career","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"35,000+","valueNumber":35000,"valueBoolean":null,"updatedAt":"2026-05-07T00:24:40.538Z"}]},{"id":"cmouquue7000zsuus3cqooi9a","slug":"community-size-github-stars-","name":"Community Size (GitHub Stars)","unit":"stars","category":"Community","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"93,000+","valueNumber":93000,"valueBoolean":null,"updatedAt":"2026-05-07T00:24:40.547Z"}]},{"id":"cmouquueg0015suusuu1cuejr","slug":"enterprise-market-share","name":"Enterprise Market Share","unit":"%","category":"Market Position","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"60%+ of enterprises","valueNumber":60,"valueBoolean":null,"updatedAt":"2026-05-07T00:24:40.555Z"}]},{"id":"cmouquuf0001hsuuskb74bwcx","slug":"server-side-rendering-support","name":"Server-Side Rendering Support","unit":null,"category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Via Universal (community-maintained)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-07T00:24:40.575Z"}]},{"id":"cmp1d45yn000bcccnrwuq99f5","slug":"build-startup-speed","name":"Build Startup Speed","unit":"% faster","category":"Performance","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Baseline (100%)","valueNumber":100,"valueBoolean":null,"updatedAt":"2026-05-11T15:34:24.056Z"}]},{"id":"cmp1d45z9000hcccnmbop9alx","slug":"bundle-size-average-spa-","name":"Bundle Size (Average SPA)","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~250 KB (with tree-shaking)","valueNumber":250,"valueBoolean":null,"updatedAt":"2026-05-11T15:34:24.078Z"}]},{"id":"cmp1d4607000tcccnp4q9xq0f","slug":"learning-curve-1-10-scale-","name":"Learning Curve (1-10 scale)","unit":"difficulty","category":"Usability","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"8/10 (high, opinionated)","valueNumber":8,"valueBoolean":null,"updatedAt":"2026-05-11T15:34:24.112Z"}]},{"id":"cmp1d460q000zcccnmefaplk6","slug":"built-in-api-routes","name":"Built-in API Routes","unit":null,"category":"Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"No, requires separate backend","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-11T15:34:24.126Z"}]},{"id":"cmp1d46130015cccnh0tukg09","slug":"react-server-components-support","name":"React Server Components Support","unit":"null","category":"Modern Features","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"No, uses signals and zones","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-11T15:34:24.140Z"}]},{"id":"cmp1d461i001bcccnpkf7mt5h","slug":"developer-preference-rate-2026-","name":"Developer Preference Rate (2026)","unit":"%","category":"Community","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"32% prefer Angular","valueNumber":32,"valueBoolean":null,"updatedAt":"2026-05-11T15:34:24.154Z"}]},{"id":"cmp1d461w001hcccn59p9wyip","slug":"enterprise-adoption-rank","name":"Enterprise Adoption Rank","unit":"null","category":"Enterprise","dataType":"text","higherIsBetter":null,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"#1 in Fortune 500 companies","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-05-11T15:34:24.169Z"}]},{"id":"cmqdjvziq000ixqy541w76bbr","slug":"time-to-first-meaningful-paint","name":"Time to First Meaningful Paint","unit":"seconds (typical mid-size app)","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~3.0s","valueNumber":3,"valueBoolean":null,"updatedAt":"2026-06-14T08:56:56.214Z"}]},{"id":"cmqdjvzj0000oxqy5vgkn6q6z","slug":"enterprise-adoption-rate-2025-","name":"Enterprise Adoption Rate (2025)","unit":"% of enterprise teams","category":"Market Position","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"8.9%","valueNumber":8.9,"valueBoolean":null,"updatedAt":"2026-06-14T08:56:56.223Z"}]},{"id":"cmoxt302h000t60p3cc9zz1jr","slug":"average-setup-time","name":"Average Setup Time","unit":"days","category":"Usability","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~25-35 minutes","valueNumber":30,"valueBoolean":null,"updatedAt":"2026-06-14T08:56:56.240Z"}]},{"id":"cmqdjvzjr0016xqy588m6qk9n","slug":"built-in-ssr-support","name":"Built-in SSR Support","unit":null,"category":"Features","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Supported via Angular Universal (requires additional setup)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T03:27:46.127Z"}]},{"id":"cmqdjvzk0001cxqy5g3cyf3i4","slug":"hot-module-replacement-speed","name":"Hot Module Replacement Speed","unit":"milliseconds","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~500-800ms (ng serve)","valueNumber":650,"valueBoolean":null,"updatedAt":"2026-06-14T08:56:56.259Z"}]},{"id":"cmrcv4fdk002fhlev84ijfbd4","slug":"first-contentful-paint-3g-","name":"First Contentful Paint (3G)","unit":"seconds","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2.8-3.5s","valueNumber":3.2,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:21.948Z"}]},{"id":"cmoubylxb000t8z8ywip53xe7","slug":"active-developer-community","name":"Active Developer Community","unit":"developers","category":"Community","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2.1 million","valueNumber":2100000,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:21.968Z"}]},{"id":"cmqpgddjr01kjw8edea9jq74r","slug":"npm-package-ecosystem-size","name":"npm Package Ecosystem Size","unit":"packages","category":"Ecosystem","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"15,000+","valueNumber":15000,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:21.979Z"}]},{"id":"cmrcv4fep0033hlev93lx505j","slug":"enterprise-job-market-openings-2025-","name":"Enterprise Job Market Openings (2025)","unit":"positions","category":"Job Market","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"45,000+","valueNumber":45000,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:21.993Z"}]},{"id":"cmrcv4ff60039hlevnxqyzoav","slug":"learning-curve-time-to-first-app-","name":"Learning Curve (Time to First App)","unit":"weeks","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"6-8 weeks","valueNumber":7,"valueBoolean":null,"updatedAt":"2026-07-09T02:03:22.006Z"}]},{"id":"cmrcy4yvv00ybyn3yr3axuo3w","slug":"initial-bundle-size","name":"Initial Bundle Size","unit":"KB","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"~500 KB","valueNumber":500,"valueBoolean":null,"updatedAt":"2026-07-09T03:27:46.080Z"}]},{"id":"cmrcy4yw700yhyn3yadl25vx6","slug":"time-to-learn-average-","name":"Time to Learn (Average)","unit":"hours","category":"Developer Experience","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"40 hours","valueNumber":40,"valueBoolean":null,"updatedAt":"2026-07-09T03:27:46.091Z"}]},{"id":"cmq4u8mjn002j41ew06lwhkvv","slug":"job-market-openings-us-2024-","name":"Job Market Openings (US, 2024)","unit":"postings","category":"Career Opportunity","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"18,200","valueNumber":18200,"valueBoolean":null,"updatedAt":"2026-07-09T03:27:46.115Z"}]},{"id":"cmrcy4yxi00z5yn3yo3h3o80d","slug":"typescript-default-support","name":"TypeScript Default Support","unit":null,"category":"Features","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Optional, requires manual configuration","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T03:27:46.138Z"}]},{"id":"cmrcy4yxt00zbyn3y4t2n6ncb","slug":"built-in-routing-library","name":"Built-in Routing Library","unit":null,"category":"Features","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Yes, @angular/router included","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T03:27:46.149Z"}]},{"id":"cmq5cqknh004gi6zc7ljff1rq","slug":"typical-project-setup-time","name":"Typical Project Setup Time","unit":"days","category":"Development Speed","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"30 minutes","valueNumber":30,"valueBoolean":null,"updatedAt":"2026-07-09T03:27:46.160Z"}]},{"id":"cmq553vl50020cfwmw5m66ydi","slug":"time-to-interactive","name":"Time to Interactive","unit":"ms","category":"Performance","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"2,800 ms","valueNumber":2800,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:27.981Z"}]},{"id":"cmnbmoy7o00xvslg4jz7ponnn","slug":"learning-curve-rating","name":"Learning Curve Rating","unit":"scale 1-10","category":"Usability","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"8.2 (Difficult)","valueNumber":8.2,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:27.988Z"}]},{"id":"cmrduizo9002rqnul6rmadcrh","slug":"job-market-openings","name":"Job Market Openings","unit":"roles","category":"Employment","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"12,500+","valueNumber":12500,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:27.995Z"}]},{"id":"cmqnf0n83001ccdp7p7tdrdb4","slug":"github-community-stars","name":"GitHub Community Stars","unit":"stars","category":"Community","dataType":"number","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"96,200","valueNumber":96200,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:28.012Z"}]},{"id":"cmospl6xj000nr1eh8pwygdid","slug":"initial-setup-time","name":"Initial Setup Time","unit":"minutes","category":"Usability","dataType":"number","higherIsBetter":false,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"17.5 minutes","valueNumber":17.5,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:28.019Z"}]},{"id":"cmp1d45zs000ncccncqap7fl5","slug":"typescript-first-class-support","name":"TypeScript First-Class Support","unit":"support level","category":"Language Features","dataType":"text","higherIsBetter":true,"values":[{"entityId":"cmmxr8zja01volh9eupdga7xi","valueText":"Native (required)","valueNumber":null,"valueBoolean":null,"updatedAt":"2026-07-09T18:34:28.025Z"}]}],"faqs":[{"question":"Which is better — React or Angular or Vue?","answer":"React is the best choice for most new projects in 2026 — it has the largest job market, the broadest ecosystem, and is backed by Meta with a massive community. React 19 and its compiler reduce boilerplate significantly. Angular is the best choice for large enterprise teams standardizing complex applications — its opinionated structure, TypeScript-first approach, and Angular 20's zoneless rendering make it suited for Fortune 500-scale codebases. Vue is the best choice if developer ergonomics and a gentle learning curve are the priority — its HTML-like templates and progressive adoption model make it accessible for teams coming from traditional web backgrounds. Performance is similar across all three in production."},{"question":"Is React still popular in 2026?","answer":"Yes — React is more popular than ever in 2026. According to W3Techs, React powers approximately 4.3% of all websites globally as of March 2026, significantly more than Angular (0.4%) or Vue. The npm download statistics for React are also substantially higher than the alternatives. React 19's production compiler, server components, and the Actions API have addressed historical pain points. React Native extends React's value to mobile development. Job postings for React developers remain the highest of any JavaScript framework. React's ecosystem (Next.js, TanStack, Radix UI, shadcn/ui, Zustand) continues to compound its lead."},{"question":"Should I learn React, Vue, or Angular in 2026?","answer":"Learn React if your goal is maximizing job opportunities — React has more open job postings than Vue and Angular combined, and React skills transfer to Next.js, React Native, and the broader ecosystem. Learn Angular if you are targeting enterprise software development roles at large companies or government agencies — Angular's TypeScript-first, batteries-included approach is preferred in those contexts. Learn Vue if you are starting from a strong HTML/CSS background and want the gentlest entry into component-based JavaScript development — Vue's learning curve is the most forgiving. In terms of career investment, React is the safest choice for 2026 and the foreseeable future."},{"question":"What is Angular used for?","answer":"Angular is used primarily for large-scale enterprise web applications where code consistency, strict typing, and maintainability across large teams are priorities. Fortune 500 companies, financial institutions, healthcare systems, and government agencies disproportionately use Angular because its opinionated structure — mandatory TypeScript, dependency injection, formal module system, built-in Angular CLI — enforces consistency across hundreds of developers. Angular's built-in HTTP client, routing, reactive forms, and internationalization tools reduce the decisions teams must make, which lowers risk in regulated or compliance-heavy environments. Angular 20's zoneless rendering has also addressed historical performance concerns for high-performance dashboards and data-heavy applications."}],"relatedComparisons":[{"slug":"iphone-17-vs-samsung-s26","title":"iPhone 17 vs Samsung Galaxy S26","category":"technology"},{"slug":"mac-vs-windows","title":"Mac vs Windows","category":"technology"},{"slug":"android-vs-ios","title":"Android vs iOS","category":"technology"},{"slug":"nvidia-vs-amd","title":"NVIDIA vs AMD","category":"technology"},{"slug":"signal-vs-telegram","title":"Signal vs Telegram (2026): Privacy, Groups & Which to Use","category":"technology"},{"slug":"whatsapp-vs-telegram","title":"WhatsApp vs Telegram (2026): Privacy, Groups & Which to Use","category":"technology"},{"slug":"google-maps-vs-waze","title":"Google Maps vs Waze: Which Should You Use?","category":"technology"},{"slug":"brave-vs-chrome","title":"Brave vs Chrome: It Depends on Use","category":"technology"},{"slug":"m4-pro-vs-m4-max","title":"M4 Pro vs M4 Max","category":"technology"},{"slug":"iphone-17-pro-vs-samsung-galaxy-s25-ultra-vs-samsung-galaxy-s26-ultra","title":"iPhone 17 Pro vs Galaxy S25 Ultra vs Galaxy S26 Ultra","category":"technology"},{"slug":"macbook-vs-surface","title":"MacBook vs Surface","category":"technology"},{"slug":"notion-vs-obsidian-vs-logseq","title":"Notion vs Obsidian vs Logseq: Which Knowledge Management App Is Best in 2026?","category":"technology"}],"relatedBlogPosts":[{"slug":"should-you-learn-react-vue-or-angular-in-2026-developer-career-guide","title":"Should You Learn React, Vue, or Angular in 2026? Developer Career Guide","excerpt":"Learn React in 2026 if your goal is maximum job opportunities — it appears in ~130,000 US job listings vs ~35,000 for Angular and ~18,000 for Vue. Start with Next.js (the production-standard React framework) rather than raw React. Vue is the better learning experience for beginners but has a significantly smaller US job market. Angular is the right choice for enterprise developers with Java or .NET backgrounds, and for organizations needing the most prescriptive structure. The framework you choose matters less than mastering JavaScript fundamentals and TypeScript first.","category":"technology"},{"slug":"best-streaming-services-in-2026-top-picks-for-every-budget-interest","title":"Best Streaming Services in 2026: Top Picks for Every Budget & Interest","excerpt":"Navigating the crowded streaming landscape in 2026 can be overwhelming. We've tested and ranked the best streaming services that offer the most value, from Netflix's massive library to budget-friendly options like Tubi, helping you cut cable and find your perfect entertainment solution.","category":"technology"},{"slug":"best-live-tv-streaming-services-plans-for-spring-2026-complete-buyers-guide","title":"Best Live TV Streaming Services & Plans for Spring 2026: Complete Buyer's Guide","excerpt":"Tired of overpaying for cable? Discover the best live TV streaming services and plans for Spring 2026, including YouTube TV's new genre-based packages starting at $55/month. Our comprehensive guide breaks down pricing, channels, and features to help you cut the cord.","category":"technology"},{"slug":"philo-in-2026-streaming-tv-service-review-pricing-reddit-community-insights","title":"Philo in 2026: Streaming TV Service Review, Pricing & Reddit Community Insights","excerpt":"Explore Philo's evolution heading into 2026, including pricing tiers, channel lineup, and how it compares to competitors like Sling TV. Discover what the r/PhiloTV Reddit community thinks about the service's current offerings and future prospects.","category":"technology"},{"slug":"philo-in-2026-pricing-lineup-how-it-compares-to-sling-tv","title":"Philo in 2026: Pricing, Lineup & How It Compares to Sling TV","excerpt":"As we head into 2026, Philo continues to position itself as an affordable streaming alternative for cable TV lovers. Discover what Philo offers, how its pricing stacks up against competitors like Sling TV, and what the Reddit community thinks about its future.","category":"technology"}],"metadata":{"metaTitle":"React vs Vue vs Angular: Which Wins in 2026?","metaDescription":"React vs Vue vs Angular compared — ecosystem size, learning curve, performance (INP), TypeScript, mobile, and the 2026 hiring market. Pick the right JS…","publishedAt":"2026-06-11T21:54:31.217Z","updatedAt":"2026-07-21T10:13:19.697Z","isAutoGenerated":false,"isHumanReviewed":true,"viewCount":0,"status":"published","visitorTableSaved":false},"schemaMarkup":{"@graph":[{"url":"https://www.aversusb.net/compare/react-vs-vue-vs-angular","@type":"Article","author":{"url":"https://www.aversusb.net","name":"A Versus B","@type":"Organization"},"headline":"React vs Vue vs Angular: Which JavaScript Framework Is Best in 2026?","publisher":{"url":"https://www.aversusb.net","logo":{"url":"https://www.aversusb.net/images/logo.png","@type":"ImageObject"},"name":"A Versus B","@type":"Organization"},"mainEntity":{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#comparison"},"description":"There's no universal winner. React wins on ecosystem breadth and hiring liquidity (~25M weekly npm downloads, ~47% of projects) and is the safe default for SaaS startups, full-stack Next.js apps, and React Native crossover. Vue has the lowest learning curve, the best-written docs, and the highest developer satisfaction (82% in State of JS 2025) — ideal for gradual adoption and design-led teams. Angular is the batteries-included, TypeScript-first enterprise pick for large teams with Java/.NET backgrounds and 5–10 year maintenance horizons. The deciding factors are your team's background, project scale, and how much hiring liquidity you need.","dateModified":"2026-05-29T07:40:11Z","datePublished":"2026-06-11T21:54:31.217Z","mainEntityOfPage":{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular","@type":"WebPage"}},{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#comparison","name":"React vs Vue vs Angular: Which JavaScript Framework Is Best in 2026?","@type":"ItemList","description":"Comparison between React, Vue, Angular","itemListOrder":"https://schema.org/ItemListUnordered","numberOfItems":3,"itemListElement":[{"item":{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#item-a"},"@type":"ListItem","position":1},{"item":{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#item-b"},"@type":"ListItem","position":2},{"item":{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#item-c"},"@type":"ListItem","position":3}]},{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#item-a","url":"https://www.aversusb.net/entity/react","name":"React","@type":"SoftwareApplication","license":"https://opensource.org/licenses/MIT","publisher":{"name":"Meta","@type":"Organization"},"description":"UI library (not a full framework) that composes into a framework via community packages; maintained by Meta.","operatingSystem":"Web","applicationCategory":"DeveloperApplication"},{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#item-b","url":"https://www.aversusb.net/entity/vue","name":"Vue","@type":"SoftwareApplication","license":"https://opensource.org/licenses/MIT","publisher":{"name":"Vue.js","@type":"Organization"},"description":"Progressive framework designed for incremental adoption; community-maintained (Evan You / core team).","operatingSystem":"Web","applicationCategory":"DeveloperApplication"},{"@id":"https://www.aversusb.net/compare/react-vs-vue-vs-angular#item-c","url":"https://www.aversusb.net/entity/angular","name":"Angular","@type":"SoftwareApplication","license":"https://opensource.org/licenses/MIT","publisher":{"name":"Google","@type":"Organization"},"description":"Batteries-included, TypeScript-first enterprise framework from Google with opinions about everything.","operatingSystem":"Web","applicationCategory":"DeveloperApplication"},{"@type":"BreadcrumbList","itemListElement":[{"item":"https://www.aversusb.net","name":"Home","@type":"ListItem","position":1},{"item":"https://www.aversusb.net/category/technology","name":"technology","@type":"ListItem","position":2},{"item":"https://www.aversusb.net/compare/react-vs-vue-vs-angular","name":"React vs Vue vs Angular: Which JavaScript Framework Is Best in 2026?","@type":"ListItem","position":3}]},{"@type":"FAQPage","mainEntity":[{"name":"Is React or Angular better in 2026?","@type":"Question","acceptedAnswer":{"text":"React leads on ecosystem breadth, hiring pool, and flexibility for small-to-medium teams. Angular leads on enterprise structure, TypeScript-first conventions, and teams with Java/.NET backgrounds. At scale, both work — Angular imposes more convention, which is a feature for large teams and a cost for small ones.","@type":"Answer"}},{"name":"Should I learn React or Vue first?","@type":"Question","acceptedAnswer":{"text":"Vue has a slightly lower barrier to entry and better documentation for beginners. React has more tutorials, job listings, and community resources, making it easier to find help. Either is a solid first framework — React's market dominance means React skills transfer to more job opportunities.","@type":"Answer"}},{"name":"Is Angular still relevant in 2026?","@type":"Question","acceptedAnswer":{"text":"Yes — Angular remains widely used in enterprise environments and has a strong Google backing. Angular's adoption of Signals (replacing Zone.js) and standalone components has modernized the framework significantly. Angular's market share is smaller than React's but stable in enterprise accounts.","@type":"Answer"}},{"name":"Why does React have more downloads than Vue or Angular?","@type":"Question","acceptedAnswer":{"text":"React's download advantage is partly real (more projects) and partly artificial — many React npm packages are downloaded as transitive dependencies of other tools. Vue and Angular download counts don't inflate the same way. React's real-world project share (~47%) is substantial but smaller than download counts imply.","@type":"Answer"}},{"name":"Which framework has the best performance?","@type":"Question","acceptedAnswer":{"text":"All three are fast enough for production applications. Vue 3 Vapor has the smallest runtime; React Server Components reduce client bundle size for content-heavy apps; Angular Signals modernized Angular's reactivity. Performance differences between them are less significant than implementation choices within any framework.","@type":"Answer"}},{"name":"Which is best for beginners?","@type":"Question","acceptedAnswer":{"text":"Vue and React are both beginner-friendly. Vue's single-file component format and progressive adoption model give it a slight edge for beginners. React has more learning resources, tutorials, and courses. Angular is not recommended as a first JavaScript framework due to its complexity and mandatory TypeScript.","@type":"Answer"}},{"name":"Can I use TypeScript with React and Vue?","@type":"Question","acceptedAnswer":{"text":"Yes — both support TypeScript excellently. React with TypeScript is standard in most new production projects. Vue 3's <script setup lang=\"ts\"> provides clean TypeScript inference. Angular requires TypeScript — it has no JavaScript mode.","@type":"Answer"}}]}],"@context":"https://schema.org"},"expertAnalysis":"React, Vue, and Angular are the three most popular JavaScript frameworks for building modern web applications — each representing a distinct philosophy: React is a flexible UI library that lets you compose your own stack, Angular is a full-featured opinionated framework for enterprise applications, and Vue is a progressive framework designed to be approachable at any scale. In 2026, React maintains clear dominance in job market and ecosystem, but all three are actively developed and suitable for production.\n\nReact (Meta/Facebook, first released 2013; React 19, released late 2024; React 19.2 in 2025): React is the world's most widely adopted JavaScript UI library, powering approximately 4.3% of all websites globally (W3Techs, March 2026). React is not a full framework — it is a UI library for building component trees, leaving routing (React Router, Next.js, TanStack Router), state management (Redux Toolkit, Zustand, Jotai, TanStack Query), and other concerns to the developer's choice. This flexibility is both React's greatest strength (choose exactly what you need) and its steepest learning curve for beginners (many choices to make). React 19's key additions include the use() hook (promises in components), server components (via Next.js/Remix), React Compiler (automatic memoization, reducing boilerplate), and Actions API (simplified form handling). React supports React Native for building iOS and Android mobile apps from largely the same component knowledge, significantly extending its ecosystem value. Job market: React has substantially more open job postings than Vue and Angular combined.\n\nAngular (Google, first released 2016 as Angular 2+; Angular 19 in 2024, Angular 20 in 2026): Angular is a complete, opinionated framework — it includes routing, HTTP client, reactive forms, internationalization, and testing utilities as built-in features, with TypeScript as a first-class requirement. Angular 20 in 2026 introduced zoneless rendering (replacing Zone.js with signals for change detection, significantly improving performance) and signal-based reactive forms. Angular's strengths are enterprise suitability: strict TypeScript enforcement, dependency injection, a formal module system, and Angular CLI tooling make it the framework of choice for large Fortune 500 applications and teams that value consistency over flexibility. Angular holds approximately 0.4% of all websites in W3Techs data — far below React — but dominates certain enterprise verticals. Angular's weaknesses for smaller teams: steeper learning curve, more boilerplate, slower initial development velocity vs React or Vue.\n\nVue (Evan You, community-driven, first released 2014; Vue 3.5 in 2024): Vue is the most approachable of the three frameworks — its template syntax is familiar HTML-like, the component structure is explicit, and the Options API (beginners) and Composition API (advanced users) offer a learning progression. Vue has the gentlest learning curve for developers coming from HTML/CSS backgrounds. Vue 3.5 refined reactivity performance and improved server-side rendering capabilities. Vue's ecosystem (Nuxt.js for SSR/SSG, Pinia for state management) is mature. Vue's weakness is a smaller job market than React — companies hiring for Vue-specific roles are fewer, though React skills often transfer to Vue development.\n\nKey differences: React wins on job market, ecosystem breadth, mobile (React Native), and Meta/community backing. Angular wins on enterprise structure, TypeScript-first development, and teams needing a batteries-included framework. Vue wins on learning curve and developer experience for teams that prioritize ergonomics. Performance differences between the three are minimal in production — all are fast enough for virtually all applications.\n\nThe 2026 verdict: React is the strongest career investment and the default for new projects without specific framework requirements. Angular is the right choice for enterprise teams standardizing a large application. Vue is an excellent choice for smaller teams or developers who value ergonomics and a gentler learning curve."}