Why FilamentPHP is a good solution for creating a CMS
Why do we need a CMS at all?
In the life of every PHP developer, sooner or later there comes a time when he is asked to write a corporate website, a news portal or another online store.
Of course, in this case you can use a ready-made solution like Bitrix. And I, with all my bias towards him, often advise doing so. However, sometimes these huge harvesters turn out to be really too huge, and it’s easier to write your own solution to manage three and a half plates.
Yes, but why Filament? After all, for PHP content management systems, at least put it in jars
Really. We have a lot of CMS juice – both for bare PHP and for Laravel. Why did we choose this one? There are several reasons.
First of all, he's handsome. Bootstrap, which is the most popular for building admin panels, has long been set on edge. Projects on it look like simple internal applications from the mid-10s. Filament uses components styled with Tailwind CSS.
Just take a look at this:
Secondly, Filament is very easy to learn. The documentation is sometimes so-so, but if you have a live demo and its sources, you can quickly find a suitable fragment and adapt it to your needs.
By “very accessible” I mean that it is downright very accessible. When I was doing some things for the first time, I caught myself thinking that I almost didn’t refer to the documentation, but simply used some solutions almost intuitively.
Third, Filament uses the TALL stack (TailwindCSS, AlpineJS, Laravel, Livewire). Livewire allows you to create a dynamic application. There is no need to write tons of code in JQuery, as Voyager requires. And, since this is Laravel, all its capabilities are always available to us.
Fourthly, there is a library of plugins for Filamentwhich have already solved almost all pressing problems.
Are there any downsides?
Alas, it’s impossible without them.
Filament uses a TALL stack. Yes, I considered this a plus, but Livewire sometimes seems like a rather dubious idea to me. Which, nevertheless, perfectly copes with the tasks assigned to it with the right application of hands.
Filament is quite power hungry and requires OPCache and caching of everything possible. And with laravel-debugbar enabled, you can experience an amazing experience that you will never want to experience again. Everything begins to slow down with brutal force. And if there are more than several hundred elements on a page, it is almost impossible to use at all.
Some plugins are paid. And the price is small, but everyone understands what problems there can be with payment from Russia.
Form code is sometimes enough… monstrous. But this can be solved by competently reusing the code and distributing it in different places.
How we use Filament
Let me give you a specific example.
A client came to us who wanted to see a CMS for a pack (almost 20 pieces!) of monotonous websites at once. But despite their monotony, it turned out that there will still be differences. Each of them contains some unique moments within one common feature.
No standard solution was suitable here, but Filament managed to put together an interface for managing this whole bacchanalia with little effort and in a short time, and in such a way that the client at the show said that he had no questions, everything here was intuitive.
What's the end result?
But in the end, if you have not yet chosen a default tool for writing admin messages and you do not have any standards in this regard, then I strongly recommend at least giving Filament a chance. Speed of development, simplicity, community, convenience and beauty – that’s the bottom line 🙂
We use Filament for a fairly large atypical project where ready-made content management systems would not be suitable. And so far its advantages outweigh the disadvantages.
Thank you for your attention!