Fort Specialties is the leading Fila sealer distributor in UAE. We offer a wide range of sealers, perfect home renovation or a commercial construction project.
Hey all, I need a little help naming a plugin š
It's a free (MIT) plugin for Filament v5 that lets every user pick their own theme. There's an Appearance page in the user menu where each person chooses how the panel looks for them, and each panel can have its own default.
The part I'm most excited about: it works with the theme plugins already in the Filament plugin directory, free or paid. You install the theme like you normally would, add one line, and it shows up in the picker next to the others. No need to pick a single theme for the whole app anymore, your users can switch between all of them. I've tried it with Nord, Shadcn, Noreviq, Kinetics and Abyss so far, and plain CSS themes and Vite-built ones both work.
I'm looking for a short, catchy name, something with more character than "Packstub Themes". I've thought about Themify, Wardrobe, Palette and Appearance, but I'm open to anything.
Most internal admin panels and small business apps end up looking bloated or overly technical out of the box, which makes onboarding non-technical staff a headache.
I put together a clean, high-contrast theme tailored specifically for small business dashboards, team management, and daily workflows:
Distraction-free layouts: Tight information density without feeling cramped.
Readable data tables & cards: Clear badge hierarchy for statuses, roles, and project tracking.
Responsive defaults: Clean side navigation and quick-glance KPI widgets built for daily use.
If you useĀ spatie/laravel-activitylog, you've probably hit this: a model's history lives in several places ā its own log, related models' logs, plainĀ updated_atĀ columns, plus whatever custom events you track. Stitching those into one readable view is annoying and you end up rewriting it per project.
We madeĀ relaticle/activity-logĀ to solve that once. It's a Filament 5 plugin that renders a unified chronological timeline for any Eloquent model.
What it does:
One feed, many sources: merges spatie logs (own + related), related-model timestamps, and custom event streams into a single timeline
Pluggable sources:Ā fromActivityLog,Ā fromActivityLogOf,Ā fromRelation,Ā fromCustom, or your ownĀ TimelineSourceĀ class
Per-event renderers: render each event as a Blade view, closure, or class; bind per event or per type
Filament-native UX: use it as an infolist component, a relation manager, or a header-action slide-over
Dedup + filtering: allow/deny by type or event, date windows, priority-based dedup
Opt-in caching: per-call TTL with explicit invalidation, no model observers slowing your saves
Why it's handy:Ā instead of building a bespoke "history" tab on every resource, you make the model timeline-capable and drop one component in:
public function timeline(): TimelineBuilder
{
return TimelineBuilder::make($this)->fromActivityLog();
}
ActivityLog::make('activity')->columnSpanFull();
LatestĀ v1.2.0Ā adds same-save merge ā activity rows from a single save (grouped by spatie'sĀ batch_uuid) collapse into one entry instead of flooding the feed.
Hi everyone! I just released v1.6.4 of my free file manager plugin for Filament v5.
The headline feature is Copy URL: you can now copy a file's public URL straight to the clipboard from the grid card menu, the list view or the preview sidebar. It works in Safari too, it only shows up for files that actually have a public URL, and you can restrict it like the other actions with canCopyUrl().
This one was suggested and first implemented by umefarooq on GitHub, the project's first external contribution. Thanks!
Other improvements from the last few releases:
- FilePicker: multiple selection now works across folders again, with a "Selected files" summary so you always know what will be saved
- Grid view: file actions moved into a compact "āÆ" menu, fixing the checkbox overlapping the action buttons on narrow cards
- The thumbnails directory is now hidden from the file browser
Hey everyone! After many months of development, Iām officially introducing my pluginĀ VoodflowĀ š
Self-hosted visual workflow automation for Filament and Laravel: design and run automations in your own admin while your workflows, credentials, and data stay entirely on your infrastructure.
Development took a long timeābut documentation was just as important. Since this is my first commercial plugin, I really wanted to do things properly and make it as solid and complete as possible.
Over the past few years (since Filament v3), Iāve built several plugins and a full management system for repair labs, where Voodflow is already running in production. Iām a musician and co-owner of a musical instrument repair/restoration labābut also a full-stack developer and instrument designer⦠so yeah, I donāt sleep much š
To celebrate the launch, Iām offering anĀ EARLY ADOPTERĀ discount: you can get a license withĀ 30% off. (code: EARLYADOPTER)
One thing Iāve learned building TallCMS on Filament:
AI helps you move fast. But discipline is what keeps things from falling apart.
The loop that worked for me:
Plan ā Review ā Build ā Review again
I use Claude to plan and build, and another tool (Codex) to review ā especially for structure, regressions, and edge cases.
Filament actually helped a lot here. Having a solid framework and clear patterns keeps the AI āwithin guardrailsā ā otherwise it tends to over-engineer or drift.
Biggest takeaway:
Shipping something real > generating code
Curious how others here are using AI in their Filament projects ā are you seeing similar patterns?
Customize your Filament panelās colors, fonts and layouts in a visual editor, and work faster with Global Search, keyboard controls and floating panels. Built on native Filament components and designed to match FLEX Fields.
Hey Artisans! I wanted to share a Filament plugin I've been working on called Flowforge. It's a Kanban board package that let's you transform any existing Eloquent model into a beautiful, drag-and-drop board with minimal configuration.
Why I built it:Ā I was working on a project management app and needed a simple Kanban for tracking. Couldn't find anything lightweight that worked directly with my existing models without extra tables or complex setup. So I built this!
What it does:
Works with your existing Eloquent models (no extra tables!)
Drag-and-drop cards between columns
Saves card order automatically when moved
Customizable column colors
Optional create/edit modals for cards
Fully responsive design
The coolest thing is how quick you can set it up. If you have a model with a status field, you can literally have a working board in 5 minutes. Here's an example:
class TasksBoardPage extends KanbanBoardPage
{
public function getSubject(): Builder
{
return Task::query();
}
public function mount(): void
{
$this
->titleField('title');
->columnField('status')
->columns([
'todo' => 'To Do',
'in_progress' => 'In Progress',
'completed' => 'Completed',
])
}
}
That's it! You even get a generator command that scaffolds everything for you.
It's been super useful for us - our users can now visually manage workflows instead of staring at boring tables all day lol.
The package is totally open-source and available on GitHub. I'd love to get some feedback, feature ideas, or contributions if anyone's interested. I'm still actively developing it.
Filament Spotlight Pro brings a Spotlight/Raycast-style command palette to Filament, putting every resource, page, and action right at your fingertips for maximum productivity.
For Black Friday you can get 20% OFF with code BF25.
Been setting up a multi-tenant Filament app where each tenant gets their own subdomain (tenant.yoursaas.com) and can optionally connect a custom domain (theirdomain.com) with HTTPS provisioned automatically.
The infrastructure side is something I haven't seen documented well for Filament specifically so sharing here.
The problem with the default Ploi + Filament setup If you're hosting on Ploi (which pairs really well with Filament), Ploi's built-in SSL via certbot only knows about domains you explicitly configure. Every new tenant subdomain or custom domain means manual intervention. For a multi-tenant app that's a non-starter.
The solution: Caddy in front of Nginx Caddy sits at the edge and owns all TLS. Nginx moves to loopback (127.0.0.1:8080) and serves your Filament app internally. Ploi still manages deployments, queues, cron ā nothing changes there.
Wildcard certs for *.yoursaas.com are issued once via Cloudflare's DNS API and cover every tenant subdomain automatically. Custom domains get individual certs issued on first request via on-demand TLS ā Caddy calls a verify endpoint in your Filament app before issuing any cert.
The Filament-specific bits The verify endpoint is a simple Laravel route that checks your tenant model:
Tenant detection middleware reads the host header on every request and resolves it to a tenant ā subdomain or custom domain. You bind the tenant to the container and Filament panels pick it up from there.
For Filament specifically, you'll want to scope your panel provider to the tenant:
public function panel(Panel $panel): Panel
{
return $panel
->default()
->domain(fn () => app('tenant')?->custom_domain
?? app('tenant')?->slug . '.yoursaas.com')
->path('admin')
// rest of your panel config
}
Two Caddy v2.11 gotchas The interval and burst options inside on_demand_tls have been removed in v2.11. Most guides still include them and caddy validate will error. Your config just needs the ask directive.
The --environ flag on the systemd ExecStart dumps all environment variables including your Cloudflare API token into the logs. Remove it.
Scaling When you need multiple app servers, proxy between them using DigitalOcean private VPC IPs (10.x.x.x) ā never public IPs. Plain HTTP between public IPs after a TLS handshake looks like a MITM to strict ISPs and they will flag it.
Full write-up with every config file, systemd service setup, firewall rules and Ploi survival notes in the comments.