Is Filament 3.x suitable for customer-facing public apps?
Hello!
I've been shily following the progress for Filament in the recent past, and it's awesome! I realized that it moved from being marketed as an Admin panel builder to a more generic library/collection of components that you can use to build anything.
Is Filament the right choice to build customer-facing public apps where performance and SEO are a real worry?
Let's consider an app that could be built using mostly the components that are being shipped with Filament 3.x:
1) How well it works at the scale of a few thousand daily users?
2)How would it handle some data-intensive pages with a lot of information?
3) What average page load times would be reasonable to expect for those pages?
4) What are the breaking points and edge cases that might make Filament not the best candidate for that kind of application?
3.x is super new, but are there any good examples of that being done already in 2.x for exmaple?
I believe it's a common opinion in the Laravel community that Livewire may not be the optimal choice for this type of application. However, I'm curious if the latest version, Livewire 3.x, and tools like Filament 3.x are changing those tides. Thanks!
2 Replies
There are not a ton of examples, but essentially what you would want to review is Livewire in general. Filament is super powerful and v3 is much lighter than v2 so from a google aspect it's not a great concern. You would have to build the frontend of the site that is SEO/Speed focused as a laravel livewire app really then provide access to any of the panels via logging in.
Depends what data intensive you are talking about, essentially you have to remember with Livewire you are sending the entire html back each time. So ideally less data is better.
Performance should be fine, My suggestion would be to build a test page with the most complex data you want and run some unit/feature tests at scale on it.
To answer 2, here's an example of one of my most data intense forms, which collects information about aerial fire fighting activity. This example is the user facing side of the site, using Filament tables/forms standalone, outside of a "panel", in a Jetstream based front end.
It's running on a staging server, which is just an AWS t2.medium, shared with several other apps.