https://miro.medium.com/v2/resize:fit:1200/1*ymSBE30c1ADTGwwvxFewGQ.png
The Ultimate Laravel Admin Panels Overview in 2024
Laravel is popular PHP framework, that allows rapid web app development. Many apps are built around CRUD operations (create, read, update, delete) on database entities. These operations typically involve a listing table, form for creating a record, data validation and other repetitive tasks and components. Admin panel packages have gained popularity in recent years, because they automate many of these repetitive tasks, saving programmers hours of work.
In this article, we will take a look at different approaches of admin panels and compare the most popular solutions, so you can choose the best admin panel for your project in 2024.
To generate or to configure — admin CRUD generators vs configurators
Admin panel packages can generally be classified into two groups: CRUD generators or CRUD configurators. Apart from their different approaches, they also differ in terms of the use case they are best suited for.
Generators, as their name implies, generate source files that can be directly manipulated. In the context of Laravel, this means that the package will generate routes, controllers, views, form requests, and more. This generated code is regular Laravel code that you would otherwise have to write manually. As a result, any developer familiar with Laravel (and potentially frontend technology like Vue.js) will be able to understand and customize the code without much effort.
Configurators offer a different approach to creating CRUD admin panels. Instead of directly generating files, they provide predefined concepts and an API for customizing the admin panel. This means, that you will write specific code (mostly PHP) to define resources, forms, tables and the tool will behind the scenes take care of routes, views and others. While this may be more challenging to get started, due to learning and understanding additional concepts and syntax, they tend to be faster in terms of simple customizations once you know what to do. However, this may not be true if your requirements exceed the capabilities of the tool.
Craftable PRO
Craftable PRO is the successor to the established Laravel CRUD generator, Craftable. It falls into the category of admin panel generators as it generates customizable Laravel source code and files. It utilizes the popular VILT stack (Vue, Inertia, Laravel, Tailwind) for development. Although it is a paid package, it offers many essential features out of the box, including user management, roles and permissions, media management, and translations.
The main and most powerful feature of Craftable PRO is probably the CRUD Generator. It is a command line tool that can generate a complete CRUD (Create, Read, Update, Delete) functionality for your predefined application model with just one command. This tool can be used to add an admin panel to an existing database or to quickly start a newly created project. After running the command, you will have the following generated:
- routes
- controllers
- form requests
- Vue files for pages (since it uses Inertia)
Since these files are regular Laravel files, you can directly edit them without the need of learning any new concepts or syntax. This automation will save you hours of repeating work for scaffholding the CRUDs so you can focus on the more important advanced tasks.
Customizability may be the biggest strength of the Craftable PRO, but for some people, it may be the exact opposite. After running the generator, you will have all the files for the CRUD generated and ready for direct editing, which means that you cannot run the generator for the specific module again without loosing your changes. This can be “fixed“ by using GIT history, but it is not as convenient.
Backpack
Backpack from the point of generator/configurator approach would fall somewhere in between. It generates some of the source files like you would normally do in Laravel, but you still use some of the tool specific API to create CRUD for your resource. It uses a different approach than typical configuration-based admin panels like Filament or Nova, which share some of the common principles. Another difference from the other admin panels is the tech stack. Backpack uses Bootstrap and jQuery. While you may entirely omit working with Tailwind or Bootstrap in some admin panels, it may be an important point if you plan to extend the panel with custom functionality.
Backpack provides all the core features you need to create a CRUD admin panel, as well as the official and community addons. You have also ability to create your custom addon, but the process feels a little bit more complicated then in Filament. The UI feels a little bit older, but that is more of a subjective opinion.
While Backpack core is open-source and free, it has its PRO version which is paid, and it will provide you with additional tools, like new fields, columns, charts and many more.
Filament
Filament is an open-source “collection of beautiful full-stack components” which are mainly used to create admin panels, but can be also used outside of admin panels for crafting standalone forms, tables and more. Filament is build on top of TALL stack (Tailwind, Alpine.js, Laravel, Livewire). It provides a simple API for managing resources, creating flexible tables, forms via classes that acts as configuration.
Like all configuration based admin panels, it requires an initial understanding of concepts and learning the syntax, but it is pretty simple to get up and running in a short time. If you can fit the needs of your administration within the provided features of Filament, all you have to touch are resources files and you do not have to deal with Livewire at all. Anyway, Filament provides a great developer experience when it comes to extending and creating plugins, which may be the reason behind community creating dozens of them.
On the other hand of simplicity, we found a few caveats after working with Filament for a while. Filament can sometimes feel a little bit “slow” or “laggy”, mainly if you do not optimize your queries and actions. This is mainly caused by Livewire doing AJAX requests behind the scenes. Since the Livewire v3 introduced some optimalizations, it may not happen as much, but some may still find Filament a little bit slower than competitors. Another problem is heavy customization, which may require advanced Livewire and Alpine skills together with some creative workarounds.
Laravel Nova
Another super popular package for creating admin panels in Laravel is Nova, which is a premium package from creators of Laravel. Based on VILT stack (Vue, Inertia, Laravel, Tailwind), Nova is configuration based admin panel solution, which provides a wide variety of tools to manage resources, menus, search, filters and many more. This way, you don’t directly create routes and views, but rather write classes that follow Nova conventions and syntax.
After the initial learning curve (which is in my opinion a little more steep than in Filament), one can pretty easily create and customize a lot of things. Everything can be found in extensive documentation.
A general problem of admin panel configurators is customization that is behind the predefined features. With Nova, this seems to be the most problematic part as it is harder to extend functionality and create custom components than it is for the competitors. There are, however, a plenty of open source packages available from the community.
Laravel News Links