Packages play a big role in the scene. How big and which packages? To find it out we took the data from the API and filtered out the Laravel packages. Laravel Packagist.org How did we identify the Laravel packages? By looking at . We classified a package as belonging to the Laravel ecosystem if , , or fields contained the string . We also considered it to be a package if it has or any of the subtree splits as a dependancy. And finally — the key in field is also a trigger. composer.json name description keywords type laravel Laravel laravel/framework illuminate/* laravel extra While these criteria do not guarantee a package to be Laravel-only, they do show that the package was made with Laravel in mind. The most popular packages By naively looking at the , we see quite a bit of unexciting results — core packages and packages with a plenty of uses outside Laravel projects. list of the most downloaded packages | Package | Monthly downloads | |-------------------------|-------------------| | nesbot/carbon | | | laravel/framework | | | laravel/tinker | | | fideloper/proxy | | | nunomaduro/collision | | | intervention/image | | | facade/ignition | | | facade/flare-client-php | | | composer/installers | | | illuminate/support | | 4084214 2987907 2455355 2376631 1510258 1099989 966800 934651 803222 756189 Perhaps a more interesting toplist would be one with these "false positives" removed. We manually filtered out the top 30 packages that are made for Laravel projects and are installed deliberately. We also loosely classified the purposes of those packages. | | Package | Monthly | Total | Purpose | |----|------------------------------------|---------|----------|---------| | | maatwebsite/excel | | | port | | | laravelcollective/html | | | helper | | | barryvdh/laravel-ide-helper | | | dev | | | barryvdh/laravel-debugbar | | | dev | | | laravel/passport | | | auth | | | beyondcode/laravel-dump-server | | | dev | | | sentry/sentry-laravel | | | integ | | | laravel/ui | | | auth | | | barryvdh/laravel-cors | | | helper | | | laravel/socialite | | | auth | | | laravel/slack-notification-channel | | | integ | | | tymon/jwt-auth | | | auth | | | barryvdh/laravel-dompdf | | | port | | | laravel/helpers | | | helper | | | spatie/laravel-permission | | | auth | | | laravel/horizon | | | integ | | | laravel/dusk | | | dev | | | laravel/nexmo-notification-channel | | | integ | | | laravel/telescope | | | dev | | | bugsnag/bugsnag-laravel | | | dev | | | yajra/laravel-datatables-oracle | | | integ | | | aws/aws-sdk-php-laravel | | | integ | | | orchestra/testbench-core | | | dev | | | orchestra/testbench | | | dev | | | symplify/package-builder | | | dev | | | laravel/scout | | | integ | | | barryvdh/laravel-snappy | | | port | | | webpatser/laravel-uuid | | | helper | | | spatie/laravel-medialibrary | | | helper | | | spatie/laravel-activitylog | | | dev | 1 680466 17769696 2 678048 21785383 3 644297 18918427 4 625080 19404288 5 552633 10099903 6 530901 11035024 7 455879 8440070 8 433850 1599042 9 400920 10823255 10 394471 10166784 11 385921 7172937 12 359693 9107092 13 349572 8006731 14 337956 1692185 15 308453 5224001 16 304864 4599598 17 256261 4542482 18 238192 6080124 19 227966 2289576 20 223167 6544766 21 212985 5644721 22 212260 7070121 23 199780 1864659 24 195269 2279889 25 193661 1484783 26 177270 3391042 27 156741 3651684 28 153883 4774711 29 149290 2293823 30 148932 2387978 Explanation of purposes: — authentication and authorization auth — development and debugging tools dev — support and simplifaction of work helper — integration with other services integ — import and/or export in various forma port The development tools are most prevalent on this list followed by integration. We expeceted to see more of the packages at the very top, but it turns out that maatwebsite/excel and the tools by are more universally used. Spatie Barry vd. Heuvel Vendor overview In total there were 47337 Laravel packages identified from 23167 different developers. The distribution is quite even with lots and lots of small players. Half of packages (23668) were made by the top 3927 developers which is far more than would be if was obeyed here. 15042 of the developers have only one package published. Price's law If we sort package developers by number of packages, we get to see some quite unheard names. Here are the most prolific package developers along with the download numbers summed over their packages. | | Developer | Count | Daily | Monthly | Total | |----|-------------------------------|-------|-------|---------|----------| | | socialiteproviders | | | | | | | bantenprov | | | | | | | spatie | | | | | | | railken | | | | | | | laravel-enso | | | | | | | amethyst | | | | | | | faustbrian | | | | | | | artisanry | | | | | | | sukohi | | | | | | | anomaly | | | | | | | sanatorium | | | | | | | laravel-notification-channels | | | | | | | hnhdigital-os | | | | | | | arcanedev | | | | | | | inetstudio | | | | | | | larakit | | | | | | | orchestra | | | | | | | abuseio | | | | | | | genealabs | | | | | | | smorken | | | | | 1 159 10645 256409 5826725 2 132 0 5 3160 3 124 89124 2746665 43095685 4 119 0 11082 313129 5 95 1519 29456 879635 6 92 1232 8118 100819 7 85 152 2639 52698 8 78 129 1190 11938 9 75 58 1773 53805 10 59 198 6095 974489 11 59 0 0 20 12 54 3107 99536 1621420 13 54 38 1571 20304 14 53 3875 127702 3293360 15 53 241 3870 77009 16 49 1 410 18540 17 48 21569 544696 7606461 18 45 1 951 78289 19 43 3219 87234 1215349 20 41 36 985 14277 Apparently there are quite a few developers who make a lot of components and put them up without much advertisement. To see more of the better known names and how they compare, let us sort the list by total downloads. | | Developer | Count | Daily | Monthly | Total | |----|-------------------|-------|--------|---------|-----------| | | laravel | | | | | | | illuminate | | | | | | | nesbot | | | | | | | barryvdh | | | | | | | spatie | | | | | | | fideloper | | | | | | | intervention | | | | | | | composer | | | | | | | league | | | | | | | nunomaduro | | | | | | | laravelcollective | | | | | | | maatwebsite | | | | | | | cocur | | | | | | | jenssegers | | | | | | | beyondcode | | | | | | | laracasts | | | | | | | graham-campbell | | | | | | | facade | | | | | | | yajra | | | | | | | tymon | | | | | 1 39 364375 9832728 225867755 2 33 244509 7210832 197044965 3 1 179106 4084214 112631927 4 19 82289 2246578 63115434 5 124 89124 2746665 43095685 6 3 100748 2376631 41313378 7 7 46259 1260102 33891504 8 1 10603 803222 26065561 9 7 18996 731742 24433630 10 19 68333 1734552 23394056 11 6 32460 710099 23285426 12 6 27955 717140 18258360 13 1 19246 491761 16609476 14 15 24263 544700 16468485 15 29 14221 677724 12648233 16 11 10352 317232 12119703 17 36 11092 291114 10184667 18 5 67794 1915933 9860242 19 19 17794 446360 9792222 20 2 11437 359693 9107116 If one sorts this list by monthly dowloads instead, the picture is slightly different. | | Developer | Count | Daily | Monthly | Total | |----|-------------------|-------|--------|---------|-----------| | | laravel | | | | | | | illuminate | | | | | | | nesbot | | | | | | | spatie | | | | | | | fideloper | | | | | | | barryvdh | | | | | | | facade | | | | | | | nunomaduro | | | | | | | intervention | | | | | | | composer | | | | | 1 39 364375 9832728 225867755 2 33 244509 7210832 197044965 3 1 179106 4084214 112631927 4 124 89124 2746665 43095685 5 3 100748 2376631 41313378 6 19 82289 2246578 63115434 7 5 67794 1915933 9860242 8 19 68333 1734552 23394056 9 7 46259 1260102 33891504 10 1 10603 803222 26065561 These distributions are extremely top heavy. Regardless if you order by daily, monthly or total downloads, more than half of all downloads go to top 6 package developers. For example, out of 5.65 million daily package downloads, 2.85 million are split among , , , , and . laravel illuminate nesbot spatie fideloper barryvdh We can use something a kin to to assess the depth of the scene. There are only 317 developers that get 317 or more daily downloads. 1118 vendors get 1118 or more monthly downloads and the same number is 3003 for total numbers. Hirsch index Licensing choices Our licensing overview is not very precise as various strings are used for the same license, for example , , , , even and many more for the same license. gpl-3.0 gpl 3.0 gpl3 gplv3 gnu general public license version 3 Luckily, the main conclusions are clear as the string is the license of 37502 Laravel packages. 6304 packages are unlicensed, More than 500 packages are licensed under each of Apache 2.0 and GPL 3.0. And there are also few hundred packages with BSD 2, BSD 3 and GPL 2.0. mit 79% of Laravel packages are MIT-licensed, 14% are unlicensed and the other licenses are each used in used in 2% of projects or less. This is probably in part influenced by Laravel which itself is MIT licensed. Among all of the packages the prevalence of the MIT license is considerably smaller — 60%. Outside Laravel The number of packages for different frameworks shows the involvment of the community in the development of the framework tools and how much they are willing to share their code with others. We also counted the abandoned packages and their percentage to see which communities are thriving and which are limping. | | Framework | Packages | Abandoned | Aband. % | |----|---------------|----------|-----------|----------| | | Laravel | | | , % | | | Symfony | | | , % | | | Yii | | | , % | | | ZendFramework | | | , % | | | WordPress | | | , % | | | Nette | | | , % | | | CakePHP | | | , % | | | Slim | | | , % | | | Laminas | | | , % | | | Phalcon | | | , % | | | Codeigniter | | | , % | | | Aura | | | , % | | | Kohana | | | , % | | | FuelPHP | | | , % | | | PHPixie | | | , % | 1 47337 2618 5 5 2 39428 3362 8 5 3 15354 552 3 6 4 7459 790 10 6 5 6446 480 7 4 6 3460 342 9 9 7 2607 173 6 6 8 1411 64 4 5 9 811 17 2 0 10 726 40 5 5 11 663 91 13 7 12 450 32 7 1 13 341 43 12 6 14 148 12 8 1 15 73 1 1 4 On the other hand, the total download numbers are reflective of how much the packages are important in the development of everyday projects. Please keep in mind that these download numbers represent all of the packages related to a framework not just the core. It’s just like the number of packages listed above. The criteria for classifying a package as belonging to certain framework are . One package can belong to ecosystems of multiple frameworks. here | | Framework | Monthly | Total | |----|---------------|-----------|------------| | | Symfony | | | | | Laravel | | | | | ZendFramework | | | | | Nette | | | | | Laminas | | | | | Yii | | | | | CakePHP | | | | | WordPress | | | | | Slim | | | | | FuelPHP | | | | | Codeigniter | | | | | Kohana | | | | | Aura | | | | | Phalcon | | | | | PHPixie | | | 1 366029776 8945189030 2 56523199 1315681505 3 50789083 1460984224 4 14137793 295710951 5 9540512 134960483 6 5662063 200378585 7 4067892 112091915 8 3871828 96962490 9 2123558 46196613 10 930846 32043126 11 919926 30474042 12 912106 31918403 13 467771 18063339 14 137762 4322810 15 5353 572100 It should be noted that the top position doesn't mean Symfony projects download the most packages as some of the Symfony core is used by Laravel and many of the Symfony packages can also be used in Laravel projects. It is also noteworthy that Zend packages have almost as many monthly downloads as Laravel even though the project is no longer maintained. As a farewell we shall leave you with the list of most downloaded PHP packages overall. | | Package | Monthly | Total | |----|-----------------------------------|---------|-----------| | | symfony/polyfill-mbstring | | | | | psr/log | | | | | symfony/polyfill-ctype | | | | | psr/container | | | | | symfony/ | | | | | guzzlehttp/guzzle | | | | | symfony/finder | | | | | psr/http-message | | | | | guzzlehttp/promises | | | | | guzzlehttp/psr7 | | | | | doctrine/instantiator | | | | | symfony/process | | | | | phpdocumentor/reflection-docblock | | | | | monolog/monolog | | | | | symfony/event-dispatcher | | | | | webmozart/assert | | | | | doctrine/lexer | | | | | ralouphie/getallheaders | | | | | doctrine/inflector | | | | | phpdocumentor/type-resolver | | | 1 7943600 210645235 2 7768451 238663129 3 7284741 110601284 4 6847606 119345271 5 console 6713344 199367074 6 6607580 168514253 7 6486878 176261290 8 6384401 164860087 9 6372505 149984782 10 6350221 161806561 11 6199120 180684872 12 6167368 169254030 13 6140913 165150240 14 6109702 196673732 15 6098870 190433052 16 5905460 144395517 17 5895066 157678399 18 5861396 66293788 19 5743593 171588858 20 5706391 136101740 The data displayed in this article was compiled mainly by Gatis Šūpulnieks in April and May of 2020 as a part of his thesis "Laravel package development and usage". Relevant sources: Raw data https://github.com/Larzs/packagist-packages-data Related article by Jason McCreary https://jasonmccreary.me/articles/laravel-numbers/ Author of this article Juris Evertovskis Compiler of data Gatis Šūpulnieks The package made by Gatis https://github.com/GlaivePro/Invytr Our newest micropackage https://github.com/crudly/encrypted Our silliest and most popular package: https://github.com/GlaivePro/Hidevara Previously published at https://medium.com/@juris_9772/laravel-package-ecosystem-4afd53fad192