Laravel is the most popular and successful PHP framework. It offers a lot of great features out-of-the-box which makes a development process really fast and pleasant. This means that you spend less time on boilerplate and more time on business logic.

Laravel also has a great community and, as a result, a bunch of useful packages.

In this article, I'll show you the top 10 essential Laravel packages which I use almost in every project.

Laravel Media Library

Medialibrary is a Laravel package that can associate all sorts of files with Eloquent models. It provides a simple, fluent API to work with. The storage of the files is handled by Laravel's Filesystem, so you can use any filesystem you like. Additionally the package can create image manipulations on images and PDFs that have been added in the medialibrary.

Laraflash

Laraflash provides a handy way to work with the flash messages. It supports multiple messages, delaying, specifying amount of hops and skins. Laraflash can work both with MVC applications and API applications.

Laravel Shared Data

Laravel Shared Data provides an easy way to share the data from your backend to the JavaScript.

Laravel Query Builder

Laravel Query Builder allows you to filter, sort and include eloquent relations based on a request. The QueryBuilder used in this package extends Laravel's default Eloquent builder. This means all your favorite methods and macros are still available. Query parameter names follow the JSON API specification as closely as possible.

You can use JavaScript Query Builder on the frontend side in order to generate a query string compatible with Laravel Query Builder.

Laravel Initializer

This package adds app:install and app:update artisan commands, which runs predefined actions depending on the current environment to initialize your application. We all know that we have to document the installation process of the application in each project, and we also always write deploy scripts in Forge, Envoy.blade.php, bash scripts etc. With Initializer you have an ability to define these processes directly in application by simple commands chain and totally simplify your deploy script.

Laravel Socialite

Laravel Socialite provides a simple, convenient way to authenticate with OAuth providers. Socialite currently supports authentication with Facebook, Twitter, LinkedIn, Google, GitHub, GitLab and Bitbucket. Adapters for other platforms are listed at the community driven Socialite Providers website.

Laravel Populated Factory

Laravel Populated Factory provides an easy way to generate populated factories for models according to types & names of their columns. You no longer have to populate Eloquent factories manually. Laravel Populated Factory will make this work for you.

Laravel Enum

Laravel Enum is an elegant Enum implementation for Laravel. It provides a make:enum command, casting ability for Eloquent models and translation of labels via lang files.

Laravel Horizon

Horizon provides a beautiful dashboard and code-driven configuration for your Laravel powered Redis queues. Horizon allows you to easily monitor key metrics of your queue system such as job throughput, runtime, and job failures.

Laravel Backup

Laravel Backup creates a backup of your application. The backup is a zip file that contains all files in the directories you specify along with a dump of your database. The backup can be stored on any of the filesystems you have configured in Laravel.