Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Export Laravel Package

alperenersoy/filament-export

Filament Export lets you add Excel and CSV export buttons to Filament resources and tables. Customize columns, formatting, and file names, and filter which records are exported, so admins can download data straight from the panel.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Filament panel plugin, not a general-purpose export library. It registers actions into Filament's table/resource layer and renders export and print output through Blade views. That makes it a strong fit for exactly one scenario: an internal back-office admin panel already built on Filament, where operations staff need ad-hoc CSV/XLSX/PDF extracts and printable record views. It is a poor fit as a customer-facing export or reporting mechanism — the abstraction is a UI action, not a data pipeline, so there is no scheduling, delivery, or downstream contract to build on.

Integration feasibility. Mechanically low-effort: composer require, register the plugin in the PanelProvider, optionally publish config and views, then attach the export action and bulk action to the relevant tables. A competent Filament developer should reach a working pilot on one resource in one to two days. The real work is not installation — it is verifying authorization semantics and behavior at production data volumes.

Technical risk.

  • Bus factor of one. Single-maintainer package with 275 stars and zero dependents in the index. Adoption signal is weak relative to star count, which usually means stars came from a launch post rather than sustained production use. Assume you may need to fork.
  • Filament major-version churn. Filament has shipped breaking changes between majors, and plugin APIs are tightly coupled to table/action internals. A package that is correct against v3 may silently break on v4. Composer constraint review is mandatory, not optional.
  • Synchronous export path. Most packages in this class execute the query, build the file in memory, and stream it in the request cycle. On large tables this is a memory-exhaustion and gateway-timeout failure waiting to happen.
  • Authorization and data governance. The critical unknown: does the export action respect Filament's row-level query scoping and model policies, or does it re-query the table independently? A bulk export that bypasses policy scoping is a data-leak vector, and every export deposits a copy of production data on an end-user laptop with no audit trail.
  • Metadata anomaly. The listed last release date is in the future relative to normal release cadence; treat the release history as unverified until you inspect tags and commit activity directly.

Key questions.

  1. Which Filament major versions are supported, and is there a compatibility matrix in the README?
  2. Is export executed synchronously or dispatched to a queue? Is there a chunked/streamed mode?
  3. Does the export query reuse the resource's getEloquentQuery(), and therefore honor tenant scoping and policies?
  4. What are the hard dependencies — maatwebsite/excel, dompdf, wkhtmltopdf? Do any require a system binary?
  5. Is print rendered server-side (PDF) or client-side (browser print of a Blade view)? The latter has no server cost but no fidelity guarantee.
  6. Commit and issue cadence over the last 12 months; median time to merge on community PRs.
  7. Is there an audit/logging hook on export events?

Integration Approach

Stack fit. Assumes Laravel 10–12, PHP 8.1+, and a Filament panel as the admin surface. Database-agnostic in practice, but export memory behavior differs materially between MySQL and Postgres on wide tables with joins. If the application's admin is not Filament, stop here — there is no partial-adoption path.

Migration path. No schema or data migration is required, which is the package's main political advantage: it is a stateless UI-layer addition that can be trialed and removed without residue. If it replaces an existing export tool (raw SQL reports, a legacy PhpSpreadsheet script, manual DB access), the migration work is in report definition parity — column sets, header labels, locale-specific formatting, date and currency rendering — not in data movement. Enumerate the existing ad-hoc exports before starting, or you will discover them one support ticket at a time.

Compatibility. Pin the package version explicitly and lock it against the Filament major in use. Verify asset registration: Filament v3+ has its own asset pipeline and Tailwind scoping, and published views that assume older markup will render incorrectly. Confirm the PDF engine's system dependencies are present in every environment, including CI and any container image — a missing binary is a runtime failure, not a build failure, so it will surface in production first.

Sequencing.

  1. Spike on a branch against a single, non-sensitive resource with a realistic row count.
  2. Run the authorization test explicitly: as a scoped/tenant-limited user, attempt an export and confirm the output is scoped.
  3. Benchmark at production scale (target: p95 export of your largest expected dataset). Decide sync vs. queued on the result, not on the README.
  4. Decide the governance posture — which roles may export which resources — and encode it as policy, not convention.
  5. Roll out to one panel, one resource group. Instrument it.
  6. Document the pattern as an internal template so subsequent resources are copy-paste, not re-litigated.
  7. Expand only after a full Filament upgrade cycle has been survived with the package in place.

Operational Impact

Maintenance. This becomes a dependency you own, not one you consume. Budget a named internal owner and an explicit fork-and-patch contingency: shallow clone, patch, and point Composer at a VCS repository. Track Filament release notes and re-test the plugin on every major and minor bump; the coupling to table internals means minor releases are not automatically safe. Realistic ongoing cost is low single-digit engineering days per year — until a Filament major lands, at which point it is a project.

Support. Community-only. GitHub issues, no SLA, no vendor to escalate to. Do not place this on a path where a broken export blocks a regulatory deadline, month-end close, or customer commitment. Where export is business-critical, wrap it behind an internal service class so you can swap the implementation without touching call sites.

Scaling. The scaling axis is not request volume — it is dataset size and concurrency per export. Exports are bursty and correlated with business calendar events (month-end, quarter-end, audits), which is exactly when synchronous, in-memory generation fails. Mitigations: cap rows per export with a clear user-facing message, force large exports through a queue with notification-on-completion, rate-limit per user, and schedule heavy extracts off-peak. Each of these may require wrapping or replacing the package's default action behavior — verify extensibility before committing.

Failure modes.

  • Memory exhaustion or gateway timeout on large exports, presenting to the user as a silent failure or a truncated file (the worst outcome — a truncated CSV looks valid).
  • Authorization bypass: export returns rows the requesting user cannot see in the table.
  • Queue worker saturation if exports are queued without a dedicated queue.
  • Missing PDF binary after a container base-image change.
  • Silent breakage of published views after a Filament upgrade — degraded layout rather than an exception.
  • Data exfiltration via downloaded files with no audit record, surfacing only at an audit or incident review.

Ramp-up. Low for developers already fluent in Filament — the mental model is "add an action to a table." Higher for everyone else: the README-level documentation typical of single-maintainer packages will not explain the authorization or performance semantics, so the internal write-up you produce during the pilot is the actual onboarding artifact. Plan for that documentation cost explicitly; it is the difference between a one-off integration and a reusable capability.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox