Why we love Filament

By Derek Goetz

Introduction

It may seem trite, but it’s worth reiterating all of the good things that can be said about the Laravel community as a whole. It’s been welcoming to so many people, myself included, and provides developers with a bounty of great resources, great people, and great tools that positively impact the development experience on a daily basis.

One of those tools that you’ve likely encountered, or at least heard about, is Filament. If it’s new to you, welcome to the party! At this point, you can’t venture into too many corners of the Laravel community without finding it. And for good reason.

Let’s take a high-level look into Filament, what it is, its benefits, why we use it here at Kirschbaum, and how it can be helpful to you.

The Importance of Tools That Aid in Development

If you’re reading this, you’re likely a developer in the Laravel world, or someone interested in exploring how Filament can potentially aid your business or enhance your application. If you’re already using Laravel as your framework of choice, you’re doing so for a reason; creating good applications is difficult and good tools help make it easier.

When developers use good tools (and the right tools), the resulting applications become even better. Filament is an extremely versatile tool, much like a Swiss army knife, making it ideal to use in a wide range of situations.

What Is Filament?

Filament is a full-stack UI framework for Laravel that accelerates development by providing features and functionality that usually requires multiple packages. From rendering tables to creating forms, Filament is packed with essential features that almost every application needs.

Filament also offers a few additional benefits, such as:

  • Thorough documentation that quickly directs you to a solution.

  • Friendly and expected conventions that we’ve come to love in the Laravel community.

  • A robust and supportive community of developers and plugin authors for when your solution might be beyond the framework’s bounds.

Filament’s Key Features

Filament provides a robust baseline of key features that we see in almost every application we interact with. You’ll find a great deal of quality content related to Filament’s features in its documentation, but here are a few of the features you’d likely be reaching for frequently:

Form Builder

Forms can be quite complex, and creating and maintaining them across a large codebase can be challenging. Filament offers a robust and flexible form builder that simplifies this process, enabling developers to effortlessly create and maintain high-quality forms.

Filament supports a wide variety of input fields, validation options, helpers, and lifecycle action hooks, ensuring the forms you build fulfill all of your specific needs. Perhaps best of all, Filament allows you to do all of this in a single place, without having to jump between backend controllers, form requests, and a frontend view, providing a full stack feel to the form building experience.

Table Builder

Tables are another common and potentially complex feature in most applications. The tables Filament provides not only look great, but are also incredibly functional and flexible, offering a wide range of features right out of the box.

With built-in support for filtering, searching, inline actions, and responsive layouts, Filament tables are designed to enhance both the end user experience, as well as developer efficiency (and happiness too).

Filament tables have a wide variety of practical applications, such as listing your application’s users, books in a library that aren’t currently checked out, or complex monthly financial reports.

Actions

“Action” is a fairly loaded word in the development world. In Filament, actions are components that bundle a function with the means to trigger that function in the user interface. Actions can also include any supplementary steps that a function requires, such as opening a modal window for confirmation or collecting data through a form.

Filament ships with prebuilt actions that give developers the ability to create, edit, view, delete, and replicate Eloquent models, among other features. It also includes import and export actions to handle every aspect of these generally tedious tasks, from the user interface to the queued jobs that can process large amounts of data effectively. Prebuilt actions are customizable and extensible, but if that still isn’t enough to meet the requirements of what you’re trying to achieve, Filament also provides the ability to easily create custom actions.

Custom actions can extend your application’s functionality beyond what prebuilt actions offer. For example, you can enable an admin user to preview a blog post before publication or trigger an email notification to inform a user that their document is ready for review. The possibilities are endless. This level of customization empowers you to tailor actions specifically to your application’s business domain, ensuring that your unique requirements are met with precision.

Custom Components

Beyond providing the amazing core features already mentioned, Filament doesn’t limit the potential of your applications by these features. In addition to a robust and ever growing plugin library, implementing custom pages is extremely straightforward and can be done with a simple command:

php artisan make:filament-page CustomPage

Filament is built on top of Livewire and AlpineJS, so the limitations of what you can build with the framework are the bounds of what you can develop with the underlying technologies themselves. Filament provides you the means to create custom and extensible Livewire components, and do exactly what you need to do in order to make your application great.

This means it’s not only easy to get your project going with Filament, it’s easy to keep going, even when the project requirements stretch beyond what you previously thought was possible within the framework.

Perhaps best of all, Filament core components and functionality can still be integrated into the custom Livewire and AlpineJS pages you build. This makes it extremely easy to maintain consistency between out-of-the-box and custom functionality. Filament also provides a library of Blade components that will ensure custom built pages feel native to the rest of the application.

You can go out on your own to build whatever functionality your application needs, but you won’t be alone.

When and Why We Choose Filament

Every project requires potentially different tools and technology to succeed. At Kirschbaum, we don’t just throw a stack of technology at a problem because it’s been the solution before. Instead, we carefully consider the project requirements and the outcomes we’re aiming for to determine the most suitable tools.

In many cases, Filament provides part of the answer to the question: What tools do we need to build this application well?

While Filament’s core functionality seems tailor-made for implementations like admin dashboards, its flexibility and versatility allow it to be used for so much more. Adding Filament to our toolbelt has been a game changer for us and can be for you as well.

More Than an Admin Dashboard

Although Filament does excel at creating admin dashboard-like interfaces, it can also serve as the core of applications themselves. Filament supports the concept of multiple panels within a single Laravel application, allowing for separation between various parts of the application that may require different functionality.

This makes Filament well suited for applications requiring multi-tenancy, different user groups, or distinct functional layers. Each panel can be adapted to meet the specific needs of its users, groups, or teams, showcasing Filament’s ability to tackle a wide range of project requirements with confidence.

Rapid Development, Faster Iterations

Building applications with Filament is fast. Its robust feature set, intuitive conventions, and well-designed components enable developers to quickly build applications without compromising on quality.

This results in a faster development feedback loop, and more efficient use of development resources. Developers and clients alike appreciate focusing more time and energy on solving real business challenges rather than reinventing the foundational components of applications.

A Strong Core Team and a Supportive Community

The Filament core team, along with countless community contributors, work tirelessly to ensure that Filament is a great tool today, and will continue to be in the future. This support is a crucial component when deciding to incorporate a piece of technology into your stack, reassuring you that you won’t be left stranded.

You can have confidence and trust that Filament will continue to grow its feature set and stay up to date as technology evolves. Additionally, the existing support network ensures that developers can easily find solutions to any challenges they encounter, reducing developmental setbacks and keeping projects on track.

Summary

Filament is a robust, powerful, and versatile framework that can be used to solve a wide range of business challenges. At Kirschbaum, we were thrilled to add Filament to our toolkit, and we love using it when the situation calls for it. Not every situation does, but when a project shines the Filament bat signal and it’s thrust into action, it’s an indispensable tool that helps us deliver high-quality, enterprise-level applications.

I hope this article provided you a bit of insight into what Filament is, why a team like Kirschbaum and developers like myself are turning to it to solve problems, and how it might be able to help you solve some challenges you might be facing with your own projects.

So now that you know why we use Filament, if you don’t already, why not give it a try?

Derek Goetz
Software Developer
Author Image

Interested in speaking with a developer?

Connect with us.
©2024 Kirschbaum Development Group LLC Privacy Policy Terms of Service