En el ecosistema Laravel, la conversación sobre back-office ya no gira solo en torno a «qué plantilla admin usar», sino a cómo entregar interfaces completas (CRUD, tablas, formularios, dashboards) sin montar un frontend a medida. Ahà es donde FilamentPHP se ha convertido en una de las herramientas más citadas en 2025?2026: un framework UI open source que se apoya en Livewire para construir paneles de administración y aplicaciones internas «a velocidad de proyecto».
Filament no se vende como un CMS ni como una colección de plantillas. Su propuesta es más ambiciosa: un enfoque de Server-Driven UI (SDUI) para Laravel, donde la interfaz se define con clases y configuración en PHP, y el servidor genera el HTML y la interacción sin obligarte a escribir JavaScript personalizado para cada pantalla.
Qué es Filament y por qué importa: UI declarativa en PHP
La documentación lo define como un framework SDUI para Laravel: permite definir interfaces enteramente en PHPmediante objetos/configuración estructurada, construido sobre Livewire, Alpine.js y Tailwind CSS. Con ese patrón, Filament busca acelerar la creación de admin panels, dashboards y apps basadas en formularios, manteniendo lógica y consistencia «centradas» en backend.
La clave para un equipo de desarrollo es práctica: menos tiempo pegando componentes y más tiempo modelando procesos: permisos, estados, validaciones, flujos de negocio, auditorÃa y reportes.
«BaterÃas incluidas»: lo que trae de serie
En su web, Filament agrupa su oferta como módulos que cubren el 80% de lo que un back-office necesita:
- Panel Builder: contenedor para crear paneles completos (admin, portal cliente, extranet, etc.).
- Form Builder: formularios Livewire con más de 25 componentes listos para usar.
- Table Builder: datatables interactivas con filtrado, ordenación, paginación, acciones?
- Actions: modales y slide-overs para ejecutar tareas sin romper el flujo.
- Infolists: vistas «read-only» para fichas y pantallas de detalle.
- Widgets: dashboards con estadÃsticas, tablas o gráficas.
- Notifications: notificaciones integradas para eventos del panel.
En la práctica, el atractivo es que todo comparte estilo y convenciones, y se extiende con clases/traits sin pelearte con un sistema de componentes heterogéneo.
Instalación rápida: de cero a panel funcional
Para un proyecto Laravel, el camino «tÃpico» es instalar el Panel Builder y dejar que el instalador configure lo esencial.
composer require filament/filament:"^5.0" php artisan filament:install --panels
Una ventaja interesante para equipos que ya tienen UI propia: Filament también puede instalarse por piezas, usando componentes en Blade/Livewire sin adoptar un panel completo (por ejemplo, renderizar tablas, formularios o notificaciones dentro de una pantalla existente).
Ejemplo 1: un CRUD realista (Recurso + Formulario + Tabla)
El corazón del dÃa a dÃa en Filament son los Resources: clases que «envuelven» un modelo Eloquent y definen su experiencia de gestión.
Un ejemplo básico (esquemático) para un Post:
<?php
namespace AppFilamentResources;
use AppModelsPost;
use FilamentResourcesResource;
use FilamentTablesTable;
use FilamentTablesColumnsTextColumn;
use FilamentFormsForm;
use FilamentFormsComponentsTextInput;
use FilamentFormsComponentsRichEditor;
class PostResource extends Resource
{
protected static ?string $model = Post::class;
public static function form(Form $form): Form
{
return $form->schema([
TextInput::make('title')
->required()
->maxLength(160),
RichEditor::make('content')
->columnSpanFull(),
]);
}
public static function table(Table $table): Table
{
return $table->columns([
TextColumn::make('title')
->searchable()
->sortable(),
TextColumn::make('author.name')
->label('Autor')
->sortable(),
TextColumn::make('created_at')
->dateTime()
->sortable(),
]);
}
}
Qué aporta esto frente a «hacerlo a mano»:
- Añadir searchable() y sortable() suele ser literalmente encadenar métodos, sin montar un datatable desde cero.
- La relación author.name se representa como columna sin trabajo extra de UI.
- El formulario y la tabla quedan alineados con el diseño general del panel.
Y cuando el CRUD se queda corto (suele pasar), Filament está pensado para crecer hacia:
- acciones que abren modales (crear/editar en overlays),
- páginas personalizadas por recurso,
- y widgets por recurso para «resúmenes» y KPIs.
Ejemplo 2: multi-panel y separación de roles
Una de las ideas más útiles para producto B2B es que un mismo proyecto tenga múltiples paneles: por ejemplo, /adminpara operaciones internas y /app o /portal para clientes.
En Filament, el concepto «panel» es un contenedor de páginas, resources, auth y navegación. La creación suele partir de un comando de scaffolding:
php artisan make:filament-panel admin php artisan make:filament-panel portal
Esto facilita estrategias tÃpicas de empresas:
- admins con permisos fuertes y herramientas de gestión,
- usuarios finales con un panel reducido,
- o incluso entornos «partner» con módulos especÃficos.
En términos de seguridad, el valor no está solo en «dos menús»: está en que cada panel puede tener guard, polÃticas, middleware, branding y navegación propia.
Ejemplo 3: dashboard de métricas con widgets
Los dashboards en Filament se construyen con widgets (bloques) para estadÃsticas, tablas o gráficas. La documentación lo plantea como un sistema para montar paneles con piezas reutilizables.
Un widget simple de estadÃsticas suele parecerse a esto (conceptualmente):
<?php
namespace AppFilamentWidgets;
use FilamentWidgetsStatsOverviewWidget;
use FilamentWidgetsStatsOverviewWidgetStat;
class OpsStats extends StatsOverviewWidget
{
protected function getStats(): array
{
return [
Stat::make('Pedidos hoy', 128),
Stat::make('Tickets abiertos', 14),
Stat::make('Errores (24h)', 3),
];
}
}
En proyectos reales, esos números vendrÃan de queries agregadas, caché o métricas externas. Lo importante es que el patrón «KPI en panel» queda estandarizado y rápido de iterar.
Ecosistema: plugins, plantillas y «piezas» listas
Más allá del core, Filament empuja un directorio de plugins comunitarios con filtros por versión (v3/v4/v5), categorÃas y compatibilidad. Para un equipo, esto significa que muchas necesidades recurrentes (campos avanzados, integraciones, mejoras de tablas, editores, etc.) ya existen como paquete.
La cifra cambia con el tiempo, pero el directorio refleja un ecosistema amplio (centenas de plugins), lo que suele ser señal de adopción y madurez.
Comparativa rápida: Filament vs Nova vs Backpack vs Orchid vs Voyager
Para elegir herramienta, en 2026 el debate suele reducirse a «stack, licencia y velocidad de entrega». Una comparación útil:
|
Opción
|
Licencia
|
Enfoque UI
|
Cuándo encaja mejor
|
Puntos a vigilar
|
|---|---|---|---|---|
|
Filament
|
Open source (MIT)
|
SDUI en PHP (Livewire)
|
Admin + apps internas rápidas, multi-panel, equipos que quieren evitar frontend complejo
|
Curva Livewire/Filament, disciplina en queries (rendimiento)
|
|
Laravel Nova
|
Comercial (pago)
|
Backend Laravel + componentes (incluye Vue para tools)
|
Empresas que quieren ?oficial?, cerrado, soporte y un camino muy guiado
|
Coste por licencia, dependencia del ecosistema Nova
|
|
Backpack
|
Core CRUD open source + PRO/Add-ons de pago
|
CRUD clásico (más ?MVC?)
|
Proyectos que quieren control granular, estructura clásica y extensiones de Backpack
|
Licenciamiento de add-ons, más trabajo manual según caso
|
|
Orchid
|
Open source
|
?Screens/Layouts? orientado a back-office
|
Apps internas complejas con pantallas personalizadas
|
Paradigma propio, menos ?estándar? para algunos equipos
|
|
Voyager
|
Open source
|
BREAD + enfoque CMS
|
Back-office rápido tipo CMS (contenido, menús, media)
|
Limitaciones cuando el dominio y permisos se vuelven complejos
|
No existe «el ganador» universal: lo que suele decidir es cómo de bespoke es el panel y si el equipo quiere apostar por un enfoque Livewire/SDUI o por un admin más tradicional.
Ventajas prácticas (las que se notan en sprint)
En proyectos de producto y consultorÃa, Filament suele destacar por:
- Velocidad de entrega: CRUD, filtros, acciones y formularios se levantan rápido y con buen acabado.
- Consistencia de UI: menos «pantallas de Frankenstein» cuando crece el panel.
- Extensibilidad en PHP: el equipo backend no tiene que convertirse en equipo frontend para cada mejora.
- Escalado por paneles: separar roles y superficies reduce deuda y riesgos.
- Reutilización fuera del panel: componentes que se pueden renderizar en Blade/Livewire ayudan a unificar UI.
Los «peros» que conviene saber antes de apostar
Para que el salto de productividad sea real, suele hacer falta disciplina en dos frentes:
- Rendimiento: Livewire es potente, pero si se abusa de queries en campos, selects con miles de opciones, relaciones sin eager loading o tablas sin Ãndices, el panel puede volverse lento. En back-office «grandes», optimizar no es opcional.
- Arquitectura y permisos: Filament te da herramientas, pero la gobernanza (roles, polÃticas, auditorÃa) sigue siendo tuya. Si no se diseña, el panel crece con agujeros.
FAQ destacada
¿FilamentPHP es solo para paneles de administración?
No necesariamente. Aunque su «Panel Builder» es lo más popular, Filament también permite usar componentes (tablas, formularios, notificaciones) en páginas propias con Blade/Livewire.
¿Qué diferencia real hay entre Filament y Laravel Nova?
Filament es open source y apuesta por UI declarativa en PHP con Livewire (SDUI). Nova es un producto comercial del equipo Laravel, con licencias de pago y extensibilidad que incluye herramientas basadas en Vue para componentes personalizados.
¿Filament sirve para multi-tenant o roles muy separados?
SÃ: el concepto de «múltiples paneles» facilita separar superficies (admin, portal, partner) en un mismo proyecto, con rutas y configuración distintas.
¿Qué alternativa elegir si necesito un «CMS» rápido tipo contenido/menús/media?
Voyager suele encajar mejor en escenarios «CMS-like» y BREAD. Filament encaja especialmente bien cuando el back-office es parte del producto y crece con lógica de negocio.
¿Qué buenas prácticas evitan paneles lentos en Filament?
Indexar bien, evitar selects gigantes sin búsqueda async, aplicar eager loading, cachear agregaciones de dashboards y vigilar consultas en formularios (especialmente en campos dependientes y relaciones).
