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

Puphpeteer Laravel Package

nesk/puphpeteer

PuPHPeteer is a PHP bridge to Puppeteer that lets you drive headless Chrome from PHP. Scrape pages, generate screenshots and PDFs, run browser tests, and automate JavaScript-heavy sites with Puppeteer's full API, powered by Node.js via Rialto.

Deep Wiki
Context7

A Puppeteer bridge for PHP, supporting the entire API.

Frequently asked questions about Puphpeteer
What is nesk/puphpeteer and what does it do?
nesk/puphpeteer is a PHP bridge to Puppeteer, the Node.js library for controlling headless Chrome or Chromium. It exposes Puppeteer's browser automation API to PHP through Rialto, so PHP code can open pages, click elements, take screenshots, generate PDFs, and scrape JavaScript-rendered content. It is not a browser itself; it starts and communicates with Node.js processes that control Chromium.
Is nesk/puphpeteer a native Laravel package?
No, it is a general PHP-to-Node bridge rather than a Laravel-specific package. It can be installed in a Laravel application via Composer, but it does not provide Laravel service providers, facades, configuration files, or queue integrations out of the box. Laravel compatibility therefore depends on PHP and Composer compatibility plus your own wrapper code, so test it against your target Laravel version.
How do I install nesk/puphpeteer in a Laravel application?
Install it with Composer inside your Laravel project, then ensure Node.js, Puppeteer, and a compatible Chromium or Chrome binary are available in the runtime environment. Because the bridge launches Node processes, installation is not complete until the web or worker container can execute Node and Chromium with the required OS libraries. Keep version constraints pinned and validate the setup in a staging environment before using it in production.
What are the server requirements for running PuPHPeteer?
You need PHP with Composer, Node.js, Puppeteer, and a Chromium or Chrome installation, plus the shared libraries Chromium requires on your OS base image. Production deployments should also account for sandbox settings, process supervision, memory limits, and outbound network access for the pages you automate. Environments that only provide PHP-FPM without Node and Chromium are a poor fit.
Can I generate PDFs and screenshots with PuPHPeteer in Laravel?
Yes, PDF generation and screenshots are common use cases because Puppeteer can render a page in Chromium and export it as a PDF or image. In Laravel, run these tasks through queued jobs or a dedicated service wrapper rather than inside normal HTTP request handling, since browser automation is slow and resource-heavy. Pin Chromium and Puppeteer versions together so rendering output stays consistent.
Can PuPHPeteer scrape JavaScript-heavy websites?
Yes, PuPHPeteer is useful when a page depends on JavaScript because it drives a real Chromium browser and can wait for selectors, network activity, or custom conditions. That makes it suitable for scraping sites that do not render meaningful content in raw HTML. Be prepared for selector drift, page timeouts, bot protections, and outbound network restrictions, and design retries and logging around those failures.
Should I run PuPHPeteer in Laravel queues or directly in HTTP requests?
Prefer Laravel queues or dedicated worker processes, not normal HTTP requests. Browser automation can consume significant CPU and memory, start Node subprocesses, and hang on slow pages, which is risky for PHP-FPM request workers. Use per-job timeouts, concurrency caps, cleanup for zombie Node processes, and dead-letter handling for failed automation jobs.
Is nesk/puphpeteer still maintained and safe for production?
The package is archived, so treat it as high risk for production. There will be no upstream fixes for breakage caused by newer PHP, Node, Puppeteer, or Chromium versions, and you must own debugging bridge failures and process lifecycle issues. If you adopt it, pin the entire stack in a container image, isolate it from request paths, and have a plan to fork or replace it.
How do I test Laravel code that uses PuPHPeteer?
Wrap PuPHPeteer behind your own interface or service class so tests can replace it with a fake without launching Chromium. Unit-test your Laravel jobs and orchestration logic with that fake, then keep a small number of integration tests that exercise real Chromium in a containerized environment. Integration tests should cover browser launch failures, timeouts, retries, and cleanup of Node processes.
What alternatives should I consider to nesk/puphpeteer?
Consider maintained Node.js workers that call Puppeteer or Playwright directly, especially if you already run Node services. For PDF-only needs, evaluate Laravel-friendly PDF packages that avoid a browser runtime. For end-to-end browser testing, use Playwright or Puppeteer in a dedicated test setup rather than an archived PHP bridge.
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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent
sierratecnologia/media-manager