Premium edition
For engineering leaders
At a glance
Section titled “At a glance”You are evaluating a commercial dependency your team will live with for years. This page answers the questions engineering leaders ask us before buying: integration effort, upgrade policy, lock-in, delivery, quality evidence, and scale surfaces. Every claim is either verifiable in the product source or linked to the documentation page that owns it.
This guide covers both commercial editions - NextPDF Pro (nextpdf/pro) and
NextPDF Enterprise (nextpdf/enterprise); see the
feature matrix for per-edition availability.
Both activate with a license envelope; a deployment without the matching entitlement does not load that edition’s premium classes.
Compare editions and get a license.
Editions are cumulative. NextPDF Pro includes everything in the open core, and
NextPDF Enterprise includes everything in Pro. Several surfaces below ship in
the Pro tier (nextpdf/pro), so Enterprise has them too.
What you’re buying
Section titled “What you’re buying”The 30-second version. NextPDF is a PDF 2.0 engine for modern PHP; the format it writes is the one specified by ISO 32000-2. The core engine is open source under the Apache License 2.0. NextPDF Pro and NextPDF Enterprise are the proprietary commercial editions on top of it — charts, advanced barcodes, signing, compliance tooling, document operations, and the scale surfaces described below. See the full feature matrix for the per-edition split.
For your team, the purchase buys three things. First, capabilities that would be expensive to build and maintain in-house. Second, an engineering bar you can inspect: PHPStan level 10, architecture constraints, and a very large test suite. Third, a bounded downside - and the three exit states are distinct. An ionCube-channel deployment offline past its lease pauses premium features and falls back to the free, open-source Core until it reconnects. A lapsed subscription moves through a grace period into the perpetual fallback: the installed version keeps running with its premium entitlement, without further updates. And an enforcement failure never bricks a deployment - the worst case is Core behavior. The commercial mechanics live in Buying and licensing.
The questions we hear most
Section titled “The questions we hear most”“How much integration effort should I budget?”
One Composer package and a license. The premium editions install with
composer require nextpdf/pro or composer require nextpdf/enterprise per your edition (the nextpdf/premium metapackage installs both) from a private repository, using credentials
issued after purchase. The runtime requirement is PHP >=8.4 <9.0. Adoption
requires no application code change: Premium plugs in behind the same public
contracts your application already targets, as documented in
Licensing and activation. Setup is covered in
Install and authenticate.
“What breaks when we upgrade?”
Breaking changes exist, and we document them. The
Premium repository tracks every BC-impacting change in per-release upgrading
notes with a migration path, and its toolchain includes
roave/backward-compatibility-check. Some breaks are deliberate: security
validation paths are tightened fail-closed rather than left permissive, and the
notes say so explicitly. Budget for reading the upgrade notes before each
release; do not budget for silent behavior drift.
“Are we locked in?” The exit is structural, not contractual goodwill. The core is Apache-2.0, so your integration targets contracts that survive without a subscription. When a paid subscription ends, there is a grace period, then a perpetual-fallback state: the installed version keeps running, and only updates and support stop. You are never locked out of software you have already deployed. Details are in Licensing and activation and the licensing model.
“Can my team read the code we run?” Yes, on the right channel. Premium ships two ways: ionCube-encoded (the lower-cost default) and signed plaintext source — readable PHP, cryptographically signed, priced higher. Both carry identical license rights, and readable source is never permission to copy or redistribute; the EULA governs both. The full comparison is in Two delivery channels.
“What quality signals can I actually verify?” The Premium codebase is developed at PHPStan level 10 with the strict-rules extension across all Pro and Enterprise source, plus Deptrac architecture-layer constraints. The repository carries more than 1,500 test files across unit, integration, conformance, and compliance suites, and its mutation-testing scripts gate at a 95% minimum mutation score. These are development-repo facts you can confirm on the signed-source channel.
“What are the performance and scale surfaces?”
Three, and all are optional layers rather than rewrites. The accelerator is
a Rust sidecar consumed through Core contract interfaces. The output
pipeline (NextPDF\Pro\OutputPipeline\PipelineExecutor) executes multi-step
document manifests with dependency resolution. The stream engine renders
concurrent batches deterministically:
public function renderBatch(array $manifests, array $variablesByJobId = []): arrayNextPDF\Pro\Stream\Engine\ConcurrentRenderEngine restores input order, so
output bytes match a sequential render regardless of concurrency. It fails with
NextPDF\Pro\Stream\Exception\RenderEngineException on a missing, duplicate,
or unknown completion — never a silent drop. Benchmark your own workload
during the trial.
“Does the accelerator create a hard dependency on native code?” No. The sidecar is optional connectivity, and the provider reports availability instead of throwing:
public function isAvailable(): boolpublic function embedding(): EmbeddingServiceInterfacepublic function vectorIndex(string $collectionId = 'default'): VectorIndexInterfaceThese methods declare no @throws; sidecar reachability is reported by
isAvailable(). The returned types are Core contract interfaces
(NextPDF\Contracts\EmbeddingServiceInterface,
NextPDF\Contracts\VectorIndexInterface), which is the no-code-change seam in
practice.
“What happens offline or air-gapped?” It depends on the channel, and this is usually the deciding factor. The ionCube channel verifies its license online — roughly a 7-day check renewing an approximately 14-day lease. Offline past the lease, premium features pause and the engine falls back to the free Core, resuming when connectivity returns. The signed-source channel verifies its license locally and runs fully offline, including air-gapped. See Two delivery channels.
“What does the license check send?” On the ionCube channel, a check sends only a license identifier and a salted fingerprint hash — never your document content. A fully offline signed-source deployment sends nothing at all. The license decision surface is a single public evaluator your platform team can reason about:
public function evaluate(?LicenseKey $license, ?DateTimeImmutable $now = null): EntitlementResultIt declares no @throws; every license state, including no license at all,
maps to an EntitlementResult rather than an exception.
“Who supports us, and how do we start?” Product and technical help comes from PATEON support; billing, invoices, and refunds are handled by our Merchant of Record — see who to contact. You can start a 14-day free trial from your account, or request an evaluation grant that runs the full feature set behind a removable watermark.
Requirements checklist
Section titled “Requirements checklist”What NextPDF can and cannot do, with the page that owns each fact.
| Your requirement | Can NextPDF meet it? | Evidence and owner |
|---|---|---|
| Modern PHP runtime | Yes — requires PHP >=8.4 <9.0. Earlier PHP versions are not supported. | Product composer.json; Install and authenticate |
| Standard packaging | Yes — private Composer packages: nextpdf/pro or nextpdf/enterprise per edition (nextpdf/premium installs both tiers), with credentials issued after purchase. | Buying and licensing |
| Adopt without a rewrite | Yes — no application code change; Premium resolves behind the Core contracts you already call. | Licensing and activation |
| Static-analysis bar | Yes — developed at PHPStan level 10 with strict rules across all Pro and Enterprise source. | Product phpstan.neon.dist |
| Test discipline | Yes — 1,500+ test files; mutation testing gated at 95% minimum MSI in the repo’s scripts. | Product composer.json scripts and test tree |
| BC governance | Partly — BC breaks happen and are deliberate for fail-closed security fixes; each is documented with a migration path. | Product UPGRADING.md |
| Air-gapped operation | Yes on signed source; the ionCube channel is bounded by its ~14-day lease. | Two delivery channels |
| Readable source | Yes — signed-source channel only, at a higher price; reading is not redistribution rights. | Two delivery channels, EULA |
| Native acceleration mandate | Not required — the Rust sidecar is optional; gate on ProAcceleratorProvider::isAvailable(). | Product source, shown above |
Risk & mitigation
Section titled “Risk & mitigation”- ionCube lease lapse. An encoded-channel deployment offline past its lease pauses premium features and falls back to Core, resuming on reconnect. If your network posture cannot guarantee periodic connectivity, choose the signed-source channel instead.
- Deliberate BC breaks. Security-relevant validation is tightened fail-closed between releases. Pin versions, read the upgrading notes before each bump, and run a BC check in CI. Do not treat upgrades as drop-in.
- Performance is workload-dependent. The ionCube Loader adds decode overhead, usually small. Benchmark your own documents during the trial before committing to a channel.
- Evaluation output is watermarked. Evaluation builds run every capability but brand their output visibly; they are not suitable for production delivery. A paid license removes the watermark with no code change.
What to request next
Section titled “What to request next”- Start a trial. A 14-day free trial is available from your account — one per email, no charge today, and it does not auto-renew. Plan for the free ionCube Loader requirement on encoded builds, including in CI.
- Run a scoped pilot. Install via Composer, integrate one real document flow behind your existing contracts, run your test suite, and benchmark your workload. Evaluation runs the full feature set behind the removable watermark, so nothing is hidden from the assessment.
- Choose a delivery channel. Decide between ionCube-encoded and signed source using your connectivity and audit requirements — see Two delivery channels.
- Request your license envelope. Purchase runs through our Merchant of Record; your license is granted by PATEON under the EULA. Start at the license portal.