Q1 2021 State Of JavaScript Libraries and Tools: Frameworks
2020-04-21 Update: Added Security information from Snyk. Made ThoughtWorks Technology Radar values clickable.
2020-04-20 Update: I've published reports for other categories as well and recommend checking them out: State Management Libraries, Testing Frameworks, Build Tools and Module Bundlers, Static Sites Generators (JAMStack), and End-to-End Testing Frameworks.
Intro
The first quarter of 2021 is already behind us and I thought why not to delight the public with the results of how JavaScript libraries performed in Q1 2021.
I used Moiva to collect all the interesting data and presented it in a table as well as in charts.
This is the first report I have prepared and it covers JavaScript Frameworks. I'm going to prepare a few more similar reports dedicated to other categories - State Management libraries, CSS Frameworks, End-to-End Testing Libraries, Node.js frameworks, Build Tools and Bundlers, Testing Frameworks and Static Site Generators.
Data Sources
Data for the report came from:
- NPM - libraries downloads, releases, types, and dependencies.
- Google - search interest data.
- GitHub - stars, commits, contributors, license, and age.
- Bundlephobia - bundle sizes.
- State of JavaScript Survey - libraries usage amongst developers.
- ThoughtWorks's Technology Radar data
- Snyk - security information.
Metrics
- Stars - the total number of GitHub stars as of April 1, 2021.
- New Stars - a number of new stars in Q1 2021.
- New Stars, % - (100 * New Stars) / (Stars - New Stars)
- NPM Downloads monthly - an average monthly npm downloads number in Q1 2021.
- NPM Downloads monthly % (incr.) - an increase of the average monthly npm downloads number compared to Q4 2020.
- Search Interest, % - Google search interest average number compared to other frameworks in the 01.10.2020-31.03.2021 period.
- Developer Usage, % - percentage of developers using a framework according to the latest StateOfJS 2020 survey.
- ThoughtWorks Tech Radar - a "ring" where a framework was put. ThoughtWorks distinguishes four rings - "Adopt", "Trial", "Assess", and "Hold". You can learn more about the Radar here.
- NPM Releases - a number of NPM releases in Q1 2021.
- Commits - a number of commits in Q1 2021.
- Contributors - a number of contributors in Q1 2021.
- Dependencies - a number of NPM packages a framework has in its dependencies list.
- Types - the way typings are provided, either bundled with the package (
BUNDLED
) or published to the @types organization on npm (SEPARATE
). - Bundle Size - gzipped bundle size of an npm package.
- Security - calculated by Snyk a level of security (from
A
toF
) of Npm packages based on the number of vulnerabilities and their severity.A
- no vulnerabilities,F
- the least secure level. - Age
- License
Awards
- Vue with 182K stars is a winner in "Stars" metric. React is lagging behind a bit with 167K stars.
- React is a winner in "New Stars" metric and got 5.5k stars in Q1 2021. Svelte with 5.3k stars stays close.
- Alpine.js got the biggest relative increase in stars - 21%.
- React was being downloaded 42M times on average every month. No one could compete with React here. The closest Angular has "only" 10M downloads.
- Solid got 205% increase in NPM downloads and is a winner in the category. Alpine.js and Inferno with 65% increase share 2nd and 3rd places.
- Angular is a certain leader in "Commits" and "Contributors" categories. Its repository got 709 commits from 30 contributors.
- Marko released 41 versions of its NPM package and became a winner in "Releases" category.
Report
Hint: scroll horizontally to see values for all the frameworks.
Each frameworks has two links - Moiva and GitHub links. Use Moiva link to see more data about a particular framework, to see historical data and trends.
Criteria | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Stars | 167K | 182K | 72K | 46K | 22K | 15K | 15K | 29K | 18K | 14K | 60K | 7.1K | 10K | 5.6K | 13K | 12K | 10K | 10K |
New Stars | 5.5K | 4.7K | 3.4K | 5.3K | 179 | 2.7K | 181 | 849 | 213 | 152 | 203 | 18 | 86 | 746 | 215 | 86 | 529 | 272 |
New Stars, % | 3.4% | 2.7% | 5% | 13% | 0.8% | 21% | 1.2% | 3% | 1.2% | 1.1% | 0.3% | 0.3% | 0.9% | 16% | 1.7% | 0.7% | 5.4% | 2.8% |
Monthly | 42M | 9.3M | 10M | 542K | 649K | 149K | 89K | 2.5M | 11K | 25K | 2.4M | 136K | 222K | 51K | 74K | 42K | 540K | 58K |
Monthly % (incr.) | 14% | 12% | 19% | 22% | 21% | 65% | 65% | 38% | 1% | -2% | 2% | -36% | 22% | 205% | 25% | 2% | 35% | 16% |
Search Interest, % | 63% | 25% | 41% | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
Developer Usage, % | 80% | 49% | 55.8% | 14.5% | 11.1% | 3.3% | - | 13.4% | - | - | - | - | - | - | - | - | 1.3% | - |
Tech Radar | - | - | - | - | - | - | - | - | - | - | - | |||||||
Releases | 1 | 5 | 15 | 11 | 10 | 2 | 3 | 5 | 4 | 5 | 0 | 0 | 0 | 22 | 0 | 0 | 0 | 41 |
Commits | 232 | 25 | 709 | 93 | 161 | 62 | 25 | 95 | 61 | 27 | 17 | 0 | 3 | 91 | 1 | 6 | 11 | 127 |
Contributors | 8 | 12 | 30 | 17 | 15 | 17 | 3 | 8 | 9 | 1 | 1 | 0 | 2 | 18 | 0 | 1 | 3 | 7 |
Dependencies | 2 | 0 | 1 | 0 | 25 | 0 | 3 | 0 | 0 | 7 | 0 | 1 | 0 | 0 | 0 | 9 | 2 | 13 |
Types | SEPARATE | BUNDLED | BUNDLED | BUNDLED | - | - | BUNDLED | BUNDLED | - | BUNDLED | SEPARATE | SEPARATE | BUNDLED | BUNDLED | SEPARATE | BUNDLED | - | SEPARATE |
Security | ||||||||||||||||||
Bundle Size | 42.3 kB * | 22.9 kB | 89.4 kB | 1.6 kB | 396.1 kB | 8.3 kB | 7.9 kB | 4 kB | 1.7 kB | 6.3 kB | 62.3 kB | 10.3 kB | 23.7 kB | 7.3 kB | 9.8 kB | 49.3 kB | 8.4 kB | |
Age | 8 years | 8 years | 7 years | 4 years | 10 years | 1 year | 6 years | 6 years | 4 years | 8 years | 11 years | 9 years | 11 years | 3 years | 7 years | 6 years | 4 years | 7 years |
License | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT |
* React's bundle size includes react-dom
package.