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
Voyager Export

Voyager Export Laravel Package

joy/voyager-export

Export Voyager admin data to Excel or CSV in one click. joy/voyager-export adds BREAD-aware export actions to Laravel Voyager, letting you download any table, filtered list, or dataset straight from the admin panel.

View on GitHub
Deep Wiki
Context7

joy/voyager-export brings one-click data export to Laravel's Voyager admin panel. It hooks into BREAD views so administrators can download any table's records directly from the browser, without writing custom controllers or queries.

  • Export any BREAD-enabled table to CSV/Excel
  • Configurable columns and per-type formatting
  • Respects Voyager's search, filters, and sorting
  • Simple install with publishable config
  • Works with existing Voyager permissions
Frequently asked questions about Voyager Export
What is joy/voyager-export and what does it do?
It is a Laravel package that adds a bulk export feature to Voyager, the Blade-based admin panel, letting you download records from BREAD listings as CSV or Excel files. Rather than building a parallel admin surface, it extends the existing browse screens with export actions so you can back up, share, or analyze Voyager-managed data. It only makes sense if Voyager is already a committed part of your stack; on Filament, Nova, Inertia, or a custom admin it has no role.
How do I install joy/voyager-export?
Installation is standard Composer: require joy/voyager-export, let service-provider auto-discovery register it, publish the config if the package ships one, then add the Voyager menu entry and assign role permissions through Voyager's own ACL. Expect the spike to be measured in hours rather than days, since it slots into Voyager's existing menu and datatable conventions. Confirm the package's composer.json constraints before committing, because a narrow Laravel range is the most likely blocker.
Which Laravel and PHP versions does joy/voyager-export support?
The package assumes PHP 8.x and a Laravel version inside Voyager's supported window, with Voyager 1.6 or newer. Its last tagged release was February 2024, so treat the composer.json range as the authoritative answer and verify it includes your target framework version. Voyager itself is in low-maintenance mode, and its compatibility envelope is the binding constraint the package inherits, so upgrade headroom is limited.
Does joy/voyager-export export CSV and Excel files?
Yes, the package is described as downloading Voyager BREAD records as CSV or Excel files, with configurable export options around the generated output. Both formats are serialization concerns over the same BREAD query layer, so the underlying data set should be identical across them. Check the published config for which format is default and whether per-resource options are exposed.
Does the export route respect Voyager BREAD permissions and ACL?
Do not assume it does. Export routes in admin modules frequently sit outside the BREAD ACL check even when the button itself is hidden from unprivileged users, and an export endpoint is effectively a data-exfiltration endpoint. Verify authorization explicitly, ideally with an HTTP test hitting the download route as a user without the permission, before enabling it in production.
How does joy/voyager-export handle large exports of 10k+ rows or more?
The package does not document whether exports stream, chunk, or build the whole result set in memory, and it is unclear whether exports can be queued rather than run synchronously. Since spreadsheet libraries typically buffer in memory, test one export past roughly 10,000 rows in a sandbox and watch memory and response time before trusting it on a large table. If it is in-memory and synchronous, move the work behind a queued job using the same domain queries.
Are the exported columns derived from the BREAD configuration?
The export is driven by Voyager's BREAD query layer, so the column set is expected to follow the resource's BREAD configuration rather than a hand-written list. That means schema drift after a migration can change the export silently, including dropping or reordering fields that downstream consumers rely on. Pin the expected columns in a test so a migration that alters the BREAD definition fails loudly.
What dependencies does joy/voyager-export pull into composer.lock?
Expect the joy-voyager-* family of modules, such as the datatable and BREAD packages, plus a spreadsheet library like PhpSpreadsheet or maatwebsite/excel. These become constraints you carry forward through every Laravel upgrade, so review each one's maintenance state before adopting. Keep the data-shaping logic behind an internal ExportService contract so none of these transitive details leak into your controllers or models.
Is joy/voyager-export still maintained, and what are the alternatives?
No: roughly 7 stars, zero dependents, a single maintainer, and a last release in February 2024 mean you should treat it as source code you are adopting rather than a dependency you are consuming, with no community triage or security advisories. The alternative is to build it yourself, which is a one to two day job for a competent Laravel engineer using maatwebsite/excel or PhpSpreadsheet against the same BREAD queries. The package saves hours, not weeks, and those savings shrink once you account for fork review and ACL hardening.
Can I use joy/voyager-export with Filament, Nova, or a custom admin panel?
No. It is a Voyager plugin that hooks into Voyager's BREAD listing screens, menu, and ACL conventions, so it has no role in Filament, Nova, Inertia, or a hand-rolled admin. The good news is that export is a shallow feature with a thin seam, so if you later rebuild the admin you can reimplement the capability against the same domain queries in a day or two. Keep it feature-flagged and behind an interface to make that swap mechanical.
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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console