Skip to content
PN Scripts

Open source

Filament or a custom admin panel: how Laravel teams should choose

  • PN Scripts Team
  • 7 min read

A Laravel team should use Filament when its admin area is mostly lists, forms, filters and record-level actions on its own data, used by staff who can learn a standard admin layout. Build a custom admin panel when the core of the work is a workflow Filament's patterns do not fit, when the users need an interface designed around their daily tasks, or when the admin is itself a product you sell. Many projects land in between: Filament for the bulk of the screens, with custom pages where the standard patterns stop fitting.

Below are the criteria and the questions to ask before you commit.

#What Filament gives a Laravel team

Filament is an admin framework for Laravel built on Livewire. You describe a resource for an Eloquent model, with a form schema and a table schema, and Filament renders the list, create, edit and view screens. Tables come with sorting, search, filters, pagination, row actions and bulk actions. Forms come with validation, relationship fields, file uploads and conditional fields. Access follows Laravel's own authorization, so the policies you already write for a model decide who can view, create, edit or delete it.

The practical effect is speed. A team that would spend weeks building and testing a dozen CRUD screens by hand can have them working far sooner, and the screens behave consistently because they share one framework. That consistency also helps staff: once someone learns one list and one form, they know how the rest of the admin works.

#When Filament is the right choice

Filament fits best when these statements are mostly true:

  • The work is data-heavy CRUD. Staff create, find, edit and approve records: products, orders, posts, customers, bookings, support tickets.
  • Your team already writes Laravel. Filament code is PHP next to your models and policies, so there is no second front-end stack to hire for or maintain.
  • Permissions map to models and actions. "Editors can publish posts, only admins can delete users" is exactly the kind of rule Laravel policies and a roles package handle well.
  • The users are internal. Staff accept a standard admin layout if it is clear and fast. They rarely need a bespoke visual design.
  • You want to ship the admin early. A working back office in the first milestone lets the client start entering real content and data while the public side is still being built.

#When a custom admin panel is worth it

Filament becomes the wrong base when the admin stops being a set of screens over tables. Signs to watch for:

  • The main task is a workflow. A dispatcher planning routes on a map, a producer arranging a schedule on a timeline, or a warehouse operator scanning items in sequence does not think in "list, then edit form". Forcing that work into resources produces an admin people fight with.
  • Non-technical staff need a guided interface. If the people using it make mistakes a generic form cannot prevent, a screen designed around their task, with fewer choices and clearer steps, pays for itself.
  • Heavy real-time or offline behavior. Live collaboration, rich drag and drop, or working without a connection push you toward a JavaScript front end with its own state.
  • The admin is part of the product. If customers log in to it, it carries your brand and your UX decisions, and it will likely need its own design system and front-end stack.
  • Your team is stronger in React or Vue than in Livewire. A panel your team cannot extend confidently becomes a bottleneck.

A custom admin in Laravel usually means Inertia with React or Vue, or Blade with your own components. You gain full control of every screen and interaction. You also take on everything Filament did for you: tables, filters, validation display, file handling, authorization checks in the UI, and the tests for all of it.

#Comparing the two on the criteria that matter

CriterionFilamentCustom admin
Time to first working screensShort, especially for CRUDLonger, every screen is built
Data-heavy lists and formsStrong out of the boxBuilt and tested by your team
PermissionsLaravel policies, plus a roles package if neededSame back end rules, UI checks written by hand
Custom workflowsCustom pages and Livewire components, within the framework's layoutNo limits beyond your own design
UX for non-technical staffConsistent and learnable, generic by designCan be shaped around each task
Upgrade pathFollow Filament's major releases alongside Laravel'sYou own every dependency and every upgrade

Permissions

Whichever route you take, keep authorization in the back end. In Laravel that means policies and gates, often backed by a roles and permissions package such as Spatie Permission. Filament reads those policies to hide or block actions. A custom admin should call the same policies, and the API endpoints behind it must enforce them too, because hiding a button is not access control. Write automated tests that sign in as each role and try the actions that role must not perform.

Upgrade path

Filament's major versions have introduced breaking changes, and each major upgrade is work to plan, test and schedule. A custom admin has no framework release to follow, but its JavaScript dependencies, build tools and UI libraries age just the same, and nobody publishes an upgrade guide for code you wrote. Before choosing, check how often the project will need upgrades, who will do them, and whether the chosen Filament version supports the Laravel version you run. When you inherit an admin built by someone else, our article on taking over a codebase another team built covers how to review it before you change it.

#Questions to answer before you decide

  1. List the ten screens staff will use most. How many are a table plus a form?
  2. Who uses the admin: trained staff, occasional editors, or paying customers?
  3. Which actions does each role need, and which must each role be blocked from?
  4. Is there a task that needs a map, a calendar, a board or a multi-step guided flow?
  5. Which front-end stack does the team that will maintain this already know?
  6. How will the admin be upgraded over the next few years, and by whom?

If most answers point to tables and forms for trained staff, start with Filament and add custom pages where you need them. If the key screens are workflows or the admin faces customers, plan a custom front end and budget for it in the written scope. The admin is one of the cost drivers covered in how much a custom web application costs.

#A worked example: PN Press

PN Press is an open-source blog and content CMS from PN Scripts, built on Laravel 13 and Filament 5 and published under the MIT license on GitHub. It shows the Filament side of this decision on a small scale:

  • Posts and categories are Filament resources at /admin. Title, URL slug, excerpt, body, status, publish date and featured image sit on one screen.
  • Access uses Spatie Permission. Only users with the admin or editor role can open the panel, so having an account is not enough.
  • The public blog pages are server-rendered Blade with Tailwind CSS, separate from the admin, and show only published posts.
  • PHPUnit tests cover the public pages and admin access.

Content management is a good fit for Filament because the editor's job is exactly lists and forms. The public site, where design matters to readers, stays custom.

#How PN Scripts can help

PN Scripts builds Laravel applications with Filament admin areas and with custom admin front ends, depending on what the project needs. If you want to see a working Filament setup with roles and drafts before deciding, PN Press is free to clone and read.

Keep reading

Keep reading

Comments

Comments

Be the first to leave a comment.

Leave a comment

Next step

pnscripts.com/contact

Talk to the team

Ask about an article, or tell us about a project you want built. We reply within one business day.

Write to us

The PN Scripts family

Other PN Scripts sites

Hosting, games and the blog each have their own site, run by the same company.

  • pnscripts.com

    PN Scripts

    Software engineering

    Custom web, mobile, API and game development, plus our open-source products and plugins.

  • games.pnscripts.com

    Games

    Games and game servers

    The home for PN Scripts games and game servers. The catalog is empty for now and fills up as titles and servers go live.

  • hosting.pnscripts.com

    Hosting

    Hosting and infrastructure

    Shared hosting, KVM VPS, dedicated servers and domains, from the same company that builds your project.

  • blog.pnscripts.com

    Blog

    Articles and field notes

    Plain articles on hosting, servers, domains and security, written by the people who work with them.

    You are here