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

Salvager Laravel Package

revolution/salvager

Revolution Salvager is a Laravel package for salvaging recoverable data from failed or interrupted operations, helping you capture what would otherwise be lost and restore it cleanly. Lightweight, configurable, and built to fit existing Laravel workflows.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Salvager
What is revolution/salvager used for in Laravel?
Revolution Salvager is a Laravel package that wraps Playwright to bring JavaScript-rendered page access into a Laravel application. It is best suited to isolated crawling or ingestion work, such as rendering SPAs or collecting HTML and artifacts from pages that require a real browser. The package description also frames it around salvaging recoverable data from failed or interrupted operations, so treat it as a focused crawler component rather than a general browser-automation framework.
How do I install revolution/salvager?
Install it with Composer using composer require revolution/salvager, then publish any package configuration if the package exposes it. You will also need Node.js 18 or newer and a matching Playwright browser build, typically provisioned with npx playwright install. Plan the browser binaries and Chromium system libraries as part of your deployment image, not as an afterthought.
Does Revolution Salvager require Node.js and Playwright?
Yes. The package is a PHP-to-Node bridge, so Playwright runs as a separate Node runtime even though the API is called from Laravel. That means your application deployment needs Node 18+, Chromium system libraries such as libnss3 and libatk, and a pinned Playwright browser revision. Keep the PHP driver, npm Playwright version, and browser build in lockstep to avoid silent breakage on rebuild.
Which Laravel and PHP versions does revolution/salvager support?
The available evaluation positions it for a standard Laravel 10 or 11 stack, but you should verify the package composer.json for exact PHP and Laravel constraints before adopting it. Because it depends on a PHP Playwright client and a Node browser binary, compatibility is a three-way pin across PHP, npm Playwright, and the browser revision. Check tagged releases and CI results rather than assuming broad version support.
Can I use Revolution Salvager in a Laravel queue job?
It is best used from a queued job rather than directly in a web request, because launching a browser adds latency and memory overhead. A common shape is Job -> Salvager -> HTML or artifact -> parser -> domain model, with the crawler hidden behind an application-owned interface. The technical evaluation flags queue integration as a key question, so confirm whether the package ships retryable job support or is only a synchronous call.
Does Revolution Salvager support screenshots, PDFs, cookies, or waiting for selectors?
The available context does not confirm the full feature surface, so check the README and source before relying on screenshots, PDFs, custom headers, cookies, waits, selectors, or timeouts. Playwright itself supports these capabilities, but a thin PHP wrapper may expose only raw HTML and a limited set of options. If you need those artifacts, verify them in a spike and keep the integration behind your own interface.
How does Revolution Salvager manage browser processes and concurrency?
This is not documented in the provided evaluation, and it matters for production throughput. Ask whether the browser is spawned per call, reused across calls, or pooled, and whether crawling is sequential per process or supports concurrency. For real workloads, expect to run a dedicated worker pool and add your own retry, backoff, proxy, session, and politeness handling if the package does not provide it.
Is revolution/salvager production-ready?
Treat it as unvetted. The technical evaluation notes 7 stars, 0 dependents, a composite score of 0.125, and no downstream evidence of production survival, which makes adoption risk the dominant concern. It is MIT licensed and forkable, but forking turns the dependency into an owned artifact. Do not put it on a critical path without a spike, pinned versions, and a fallback plan.
What are alternatives to Revolution Salvager for JavaScript-rendered crawling in Laravel?
Laravel's HTTP client and Goutte cannot execute JavaScript, so the closest incumbent is Symfony Panther, which is WebDriver-based and heavier to reason about. Playwright is technically stronger for SPAs, lazy-loaded content, and login flows if you can accept the Node runtime. You can also keep Playwright behind an internal PageFetcher or Renderer interface so the engine remains swappable.
How should I deploy Revolution Salvager with Docker, queues, or Laravel Vapor?
Build a custom base image or sidecar that includes Node 18+, Chromium system libraries, fonts, and the pinned Playwright browser build. Run the crawler on a dedicated queue and worker pool, not on web dynos, and store HTML or artifacts in object storage if you need them later. On Laravel Vapor or other serverless platforms, confirm that the runtime can supply the required browser binary and system libraries before committing.
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