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

Porter Laravel Package

anystack-sh/porter

Porter is a Laravel package for painless data import and export. Build importers and exporters with a fluent API, map columns, and process large CSV or Excel files in the background using queues and progress tracking.

View on GitHub
Deep Wiki
Context7

Spin up your development background processes with ease 🪄

Frequently asked questions about Porter
How do I install anystack-sh/porter in a Laravel project?
Install it as a development dependency with composer require --dev anystack-sh/porter, then publish the package config so config/porter.php exists in your repo. Optionally add presets so the team can start queue, Vite, Reverb and log processes with a single command. No application code, database schema, or CI changes are required, which is why the integration effort is considered low.
Does Porter support Laravel 11 and Laravel 12 on PHP 8.3 or 8.4?
That is the gating question and it should not be assumed. The last release was in May 2023, before several Laravel majors and newer PHP versions shipped, so the version constraints in composer.json are likely to be conservative. Run a short spike on your actual Laravel and PHP versions before committing to it, and treat a compatibility break as a real possibility.
Can I commit config/porter.php presets so my whole team shares the same processes?
Yes. The process definitions live in config/porter.php, so committing that file with team presets such as a queue worker, Vite, Reverb and a log tail makes the setup reproducible for everyone. This is the recommended approach because it turns Porter into a shared, reviewable definition of what runs locally rather than developer-local folklore. Confirm in your spike that nothing is written to a gitignored location instead.
Is Porter safe to run in production or in a --no-dev Docker build?
Porter is a developer tooling package, not application runtime code. It registers an Artisan entrypoint and has no database or runtime services, so it cannot destabilize production behavior, but it should still be excluded from production installs. Enforce composer install --no-dev in your Docker build and verify no service provider errors when the package is absent.
How is Porter different from Laravel Sail, concurrently, or the default composer dev script?
Porter is a thin orchestration layer over Symfony Process that wraps php artisan serve and supervises child processes, which is the same problem Sail, concurrently, Procfile runners and Laravel 11's default composer dev script already solve. It fits well in a native PHP or non-Docker workflow where developers routinely need three to five concurrent processes. It fits poorly if Sail or docker compose already defines your process topology, because Porter becomes a second competing source of truth for what runs.
Does Porter work on Windows, WSL2, macOS, and Linux?
Process spawning, signal forwarding and shutdown cleanup behave differently on each platform, so this needs verification rather than assumption. Test Ctrl+C behavior and port release on every platform your team actually uses. Windows native support is the least certain, so treat WSL2 as the safer path there unless you confirm otherwise.
What happens to child processes when I stop Porter with Ctrl+C?
Porter forwards signals and cleans up the processes it supervises, but that is the hardest part of any process supervisor and failures show up as orphaned queue workers or ports still being held after shutdown. The impact is annoying rather than damaging, but it can waste real debugging time. Watch for it during the spike, especially with queue workers and Vite.
Can Porter run custom Artisan commands and tail logs alongside the queue worker and Vite?
Yes. Beyond wrapping php artisan serve, Porter supervises declared child processes such as a queue worker, Vite, Reverb, a log tail, and custom commands you define in the config. Output is collected from each child process, so check during evaluation whether lines are prefixed per process or dumped raw, since raw interleaving makes debugging harder.
What is Porter's maintenance status and bus factor?
The project has healthy interest at around 531 stars, but it is effectively single-maintainer and the last release was 2023-05-15. That is a moderate-to-high maintenance risk, not a runtime risk. If you adopt it, pin the version and add a note to your Laravel upgrade runbook flagging Porter as a known breakage candidate.
How do I remove Porter if it breaks or the team does not adopt it?
Removal is deliberately cheap: composer remove --dev anystack-sh/porter plus deleting config/porter.php returns you to your previous workflow. There is no data, no schema, and no application coupling, so it is a genuinely zero-lock-in decision. That makes a failed pilot low cost and a good reason to trial it on one or two repos for a sprint before standardizing.
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