radweb/pdfcrowd-php
A PHP wrapper for the Pdfcrowd API that converts HTML, URLs, and files into PDFs. Integrates with Laravel and plain PHP apps, exposing Pdfcrowd conversion options through a simple client for generating downloadable or stored PDF documents.
Architecture fit. This is not an architectural component — it is a thin HTTP client for the Pdfcrowd hosted conversion API, plus (typically for this vintage of package) a Laravel service provider and facade for container binding and config publishing. It belongs at the edge of the system, behind an application-owned interface (e.g. a PdfRenderer port), never referenced directly from domain or controller code. Treating it as infrastructure plumbing is the only defensible placement.
Integration feasibility. Mechanically trivial: a handful of classes, a config file, a facade alias. The blocker is not effort, it is provenance. The repository is archived, has 1 star and 0 dependents — effectively zero adoption, zero community bug-finding, and no security disclosure channel. Any integration is a fork-and-own commitment from day one, not a dependency addition.
Technical risk.
illuminate/support) are almost certainly pinned to an EOL Laravel generation, so it may not even resolve on PHP 8.2/8.3 without patching.env() at config-load time — verify it does not encourage committing keys, and confirm credentials are injected rather than defaulted.pdfcrowd/pdfcrowd-php client does with vendor backing. The differential value of this package is a facade and a config file.Key questions. Which Pdfcrowd API version does it target? What PHP/Laravel constraints are declared? Does it add anything beyond the official SDK? Why was it archived — superseded internally, or simply abandoned? Who owns it if we fork? Is hosted conversion acceptable for our document classes at all?
Stack fit. Acceptable only under two simultaneous conditions: we are already a Laravel shop, and we have already decided to use Pdfcrowd as a paid hosted service. If the requirement is offline/local conversion, this is the wrong tool entirely — Browsershot, Gotenberg, or a wkhtmltopdf wrapper are the correct comparison set. If the requirement is hosted conversion, the official vendor SDK is the correct starting point and this package is at best a convenience shim.
Migration path. Do not take a direct dependency. Either (a) fork into private VCS with a pinned commit and an owner assigned, or (b) — preferred — define an internal PdfRenderer interface with a PdfcrowdAdapter implementation written against the official SDK, so the vendor is swappable and this package never appears in composer.json. Option (b) costs roughly a day more and removes the archived-dependency risk entirely.
Compatibility. Verify PHP constraint against our runtime before anything else; a failed composer install ends the evaluation cheaply. Then check service provider auto-discovery vs manual registration, facade alias collisions, and whether config publishing is deferred-safe (config caching in production will silently break env() calls inside the package). If the constraint blocks us, that is the decision, not a workaround.
Sequencing.
Maintenance. Effectively infinite relative to the value delivered. We inherit the entire surface: dependency bumps, PHP upgrades, Pdfcrowd API changes, security patches. The upstream is a dead letterbox. Budget a named owner and a recurring review slot, or do not adopt.
Support. No maintainer to escalate to. Pdfcrowd support covers their API, not this wrapper — every defect is ours to triage and fix. This changes the on-call story: a third-party integration with no vendor code support must be instrumented heavily enough that we can distinguish "our bug" from "their outage" from "their API changed."
Scaling. The client side is stateless and horizontally scalable; the ceiling is commercial, not technical. Throughput is bounded by account plan, per-document pricing, rate limits, and third-party latency. Never call it synchronously in a request path — queue the conversion, add retries with backoff and idempotency keys, and cap concurrency so PHP-FPM workers are not parked on a remote call.
Failure modes. API outage → PDF feature hard down (needs a user-facing degradation path, not a 500). Credit exhaustion or revoked key → silent total failure until someone reads a log; alert on auth/quota responses explicitly. Oversized or pathological HTML → timeout and worker starvation. API version change → unhandled response shape, partial documents. Config cache in production → credentials resolve to null and every job fails on deploy.
Ramp-up. The code itself is a half-day read for any mid-level PHP developer. That is the trap: the artifact is cheap to understand and expensive to own. Real ramp-up is Pdfcrowd API semantics, the retry/queue topology, the privacy constraints on document flow, and the runbook for a dependency nobody else in the ecosystem uses. Net assessment: low integration cost, high total cost of ownership, negligible community signal — recommend not adopting the package, and if Pdfcrowd is chosen, build on the official SDK behind an internal abstraction.
How can I help you explore Laravel packages today?