The Filament demo app is a reference for admin panels, not a product to deploy
A full-featured demo app built with Filament.
At a glance
- What is it?
- The filamentphp/demo repository is a full-featured Laravel application built with Filament, split into a shop, a blog and an HR suite so each admin pattern has somewhere to live. Its value is as working code to read, since the setup runs on SQLite and the credentials are published.
- Who is it for?
- Adopt the Filament demo as a reference codebase when you are learning Filament or designing an admin panel, because each pattern is implemented in a module that resembles a real domain rather than in an isolated snippet. Do not adopt it as a starting point for a production application, since it ships with published credentials, debug mode on and a SQLite database.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Three modules so every pattern has a natural home
The demo is described as covering a realistic spread of admin panel patterns across three modules, an e-commerce shop, a blog and an HR suite, so you can see how Filament handles real-world use cases. The structure is the point. A pattern like a multi-step create form belongs in an order flow, a repeater belongs on line items, and a status workflow belongs on an expense. By putting each pattern in a domain that needs it, the demo avoids the abstraction that makes most sample apps useless, where a form is about a fictional widget rather than about the thing you are building. The shop module holds products, orders, customers, brands and categories, the blog module holds posts, authors and categories, and the HR module holds employees, departments, projects, tasks, timesheets, leave requests and expenses.
The order wizard is the pattern to read first
The README names specific things to poke at if you are learning Filament, and the order wizard is the first entry in that table. It is a multi-step create form with inline customer creation, so you can add a customer without leaving the form, and the location given is creating a new order. A wizard is the feature that separates a Filament application from a Laravel CRUD generator, because the steps are explicit states rather than a long scrolling form. Next on the list are reactive calculations, found by editing an expense's line items, where the totals update as you type because the repeater entries carry computed values, and builder blocks, found in a project's Plan tab, which is where milestone, task group and checkpoint blocks live. The pattern table then moves to interaction design: action groups with custom actions in the row menu, slide-over modals for shipping an order, and modal forms with actions for sending email to a customer.
Tables do more filtering and grouping than a list
The shop module's table features are where a lot of the value sits. There are query builder filters for advanced filtering with text, number, date and boolean constraints, which is a structured filter UI rather than a set of dropdowns. There are column summarizers, giving footer totals for prices and quantities, so a table can answer a question without a separate report. There is table grouping, so orders can be grouped by status, customer or date, and drag-and-drop reordering for a sortable brand list. Media uploads are handled with Spatie Media Library for multiple product images, and soft deletes are used on orders and customers with both restore and force-delete actions. The blog module adds the table patterns specific to content work, including split and stack column layouts on the authors table, and resources simple enough to be managed in modals with no separate pages at all for authors and categories.
The HR module is where complexity is allowed to show
The HR suite is described as a more complex module showing how Filament scales, and the list of features reflects that. Employee forms are tabbed, with Personal, Employment and Documents tabs, so a long record is split into sections that do not overwhelm. Fields are conditional, with salary versus hourly rate shown depending on employment type, and that same behaviour is listed separately in the patterns table as conditional field visibility. There is inline editing, changing a leave request status directly in the table rather than opening it, and status workflows for expense approval, rejection and reimbursement. Expense line items are repeatable entries rendered with a table layout in the infolist, and there is a key-value editor for freeform metadata on employees plus a checkbox list that renders as a multi-select skills grid. The dashboards are also described in the same detail, with headcount stats, leave overview, timesheet trends and budget charts for HR, and filterable stats, charts and a latest orders widget with live polling for the shop.
Getting it running takes two composer commands
The setup is short because the demo is meant to be run. You clone the repository and install, then start the dev server:
git clone https://github.com/filamentphp/demo.git filament-demo && cd filament-demo
composer install
composer setup
php artisan serveThe `composer setup` step is the one that does the work of preparing the environment, and `php artisan serve` prints the URL you then log into with the credentials `[email protected]` and the password `password`. The default environment is configured for local development, with `APP_ENV=local`, `APP_DEBUG=true`, `DB_CONNECTION=sqlite`, `CACHE_DRIVER=file`, `QUEUE_CONNECTION=sync` and `SESSION_DRIVER=file`, and the mail driver points at a local mailhog on port 1025. The frontend is Vite with Tailwind CSS 4, and the package manifest has a `dev` script running Vite and a `build` script running `vite build`, plus the Laravel Vite plugin, PostCSS with nesting support, and Alpine.js with the focus plugin and tippy.js for tooltips.
Global search, shortcuts and badges are the small touches
The patterns table ends with the features that make an admin panel usable day to day rather than merely complete. Global search is opened with Cmd+K from anywhere. Keyboard shortcuts include Cmd+Shift+P to quick-publish a post, which is a real editing action behind a shortcut rather than a decorative one. Navigation badges show sidebar counts on orders, leave requests and expenses, which is how a user knows something needs attention without visiting each page. The online version of the demo is published at demo.filamentphp.com, so you can browse the same screens without installing anything, which is the fastest way to decide whether the patterns are worth reading the code for.
What it is not
Two things to be clear about. First, this is a sample application, and the documentation of it is written as a tour rather than as a specification, so the code is where the detail lives, in the `app/` directory, the `resources/` views, the `database/` migrations and the `tests/`. Second, the repository carries the tooling of a real Laravel application rather than a minimal one, with `phpstan.neon` for static analysis, `pint.json` for code style, `rector.php` for automated refactoring, `phpunit.xml` for tests, a `boost.json` file and a `tools/` directory, plus AI agent configuration in `.agents/`, `.claude/`, `.amp/`, `CLAUDE.md` and `.mcp.json`. The default branch is 5.x, which is the Filament major version the demo targets, so code copied from it will be pinned to that generation of the API. The licence is MIT, with the licence text in the LICENSE.md file.
Editorial conclusion
Adopt the Filament demo as a reference codebase when you are learning Filament or designing an admin panel, because each pattern is implemented in a module that resembles a real domain rather than in an isolated snippet. Do not adopt it as a starting point for a production application, since it ships with published credentials, debug mode on and a SQLite database. Verify first which Filament version the 5.x branch targets before you copy code across, and read the `.env.example` file to see which services the demo expects, since mail, queue and cache are all pointed at local defaults.
Frequently asked questions
How do I run the Filament demo app locally?
Clone the repository, run `composer install` and `composer setup`, then `php artisan serve`. The terminal prints the URL to log into, with the credentials `[email protected]` and the password `password`.
Which Filament patterns does the demo show?
The README lists wizard forms, reactive calculations, builder blocks, action groups, slide-over modals, modal forms with actions, infolists with repeatable entries, sub-navigation, conditional field visibility, dashboard filters, global search, keyboard shortcuts and navigation badges, each with the screen where you can see it.
What database does the Filament demo use by default?
The `.env.example` file sets `DB_CONNECTION=sqlite`, with cache on the file driver, queues on the sync connection and sessions on the file driver, all configured for local development.
Can I see the Filament demo without installing it?
Yes, a hosted version of the same application is published at demo.filamentphp.com. The repository itself is the Filament demo app, with the shop, blog and HR modules.
Which Filament version does the demo target?
The default branch of the repository is 5.x, which is the Filament major version the demo code is written against. The repository has no GitHub releases, and the last push to the 5.x branch was on 2026-10-15.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/filamentphp-demo)Was this useful?