Spreadsheet-driven operations replaced by a Filament admin panel
Staff were exporting data to spreadsheets to make routine changes, and non-technical edits were being applied by a developer running SQL against production.
Engagement
Role: Filament panel build, founder-led.
Shape: Resource-by-resource delivery against the existing Eloquent models.
Duration: 2–3 weeks.
Stack: Laravel 11 · Filament 3 · Livewire 3 · Alpine.js · PostgreSQL · Tailwind CSS · Pest.
What was wrong
- Routine record changes were exported to spreadsheets and re-imported, so the database was rarely the source of truth.
- Non-technical edits required a developer to run SQL against production.
- There was no record of who changed what, so mistakes could not be traced.
- Every team could see every record because access control lived in the UI rather than in policies.
What was built
- Filament resources built against the real Eloquent models rather than a parallel data layer.
- Role-gated actions and policies so each team only sees and edits its own records.
- Server-side filters, bulk actions and CSV export to replace the spreadsheet round trip.
- An audit trail on the destructive actions so changes can be traced to a user.
Architecture after the work
Resources on the real models — Filament resources built directly against the existing Eloquent models and relationships, so there is no parallel data layer to keep in sync.
Policy-backed access — Roles and Laravel policies gate both the panel navigation and each individual action, enforced server-side.
Server-side data work — Filters, sorting, bulk actions and CSV export run as database queries instead of loading collections into PHP.
Audit trail — Destructive and financial actions record actor, timestamp and changed attributes so a change can be traced back to a person.
Trade-offs and what was left out
- The customer-facing front end was untouched; the panel was scoped to internal operations only.
- Reporting dashboards were kept deliberately small — the agreed scope was replacing manual edits, not building analytics.
Outcome
Day-to-day record changes are made by the operations team in the panel, and production SQL is no longer part of a routine workflow.
Frequently asked questions
- Is Filament suitable for a production admin panel?
- Yes, when the panel is for staff rather than customers. Filament sits on Livewire and your existing Eloquent models, so an internal tool that would take weeks as a bespoke SPA is delivered in days, and access control is enforced by Laravel policies on the server rather than by hidden UI.
- Can Filament be added to an existing Laravel app?
- Yes. It installs alongside the current application, uses the models and migrations that already exist, and can be scoped to a subset of resources so the first release covers the workflows that hurt most.