Ga naar inhoud
getnextpdf.com

Open core, geen lock-in

Spec: Apache License 2.0

NextPDF is open core. De engine waarop je bouwt — nextpdf/core — wordt uitgebracht onder de Apache License 2.0, dus je mag hem gebruiken, wijzigen en herdistribueren, inclusief commercieel. Pro en Enterprise zijn propriëtaire add-ons waarvoor je alleen betaalt wanneer je wilt wat ze toevoegen. Het fundament is en blijft van jou; de geavanceerde capaciteiten zijn optioneel.

De dure vraag bij elke documentengine is niet “wat kost het vandaag”. Het is “wat gebeurt er op de dag dat ik wil vertrekken”. Bij een gesloten engine is die dag een migratieproject: opnieuw platformen, opnieuw testen, opnieuw certificeren van uitvoer die je auditors al hadden goedgekeurd. De overstapkosten zíjn de lock-in, en ze worden volledig betaald op het slechtst denkbare moment.

Open core neemt die vraag bij constructie weg. Het deel waarvan je het meest afhankelijk bent — de rendering-engine, het objectmodel, de normconformiteit — is permissief gelicentieerd en blijft dat voor de versie die je hebt geadopteerd. Je bent nooit één verlenging verwijderd van het verliezen van toegang tot de code waarop je product is gebouwd.

  • De kern-engine is Apache-2.0: gebruiken, kopiëren, wijzigen, herdistribueren en commercieel gebruiken, zonder niet-commerciële beperking.
  • De licentie bevat een expliciete octrooiverlening van contributors, met een defensieve beëindigingsclausule (Spec: Apache License 2.0, §3).
  • Pro en Enterprise zijn propriëtaire add-ons. Je betaalt voor geavanceerde capaciteiten, nooit voor het recht om de open kern te blijven gebruiken.
  • Herdistributie brengt attributieverplichtingen met zich mee — behoud de notices, voeg de licentie toe, vermeld je wijzigingen, neem NOTICE mee (Spec: Apache License 2.0, §4).
  • Je mag de code forken en uitleveren; je mag hem niet uitleveren onder de NextPDF- naam of het logo (Spec: Apache License 2.0, §6).

Het model is bewust eenvoudig, en de eenvoud is het punt. Er zijn drie dingen, en ze beantwoorden drie verschillende vragen.

  1. Open-source corenextpdf/core under the Apache License 2.0 — use, modify, redistribute, commercialise. This is the foundation you build on, and it is yours to keep.
  2. Proprietary add-onsNextPDF Pro and Enterprise add advanced capabilities under a commercial license. You pay for what they add, not for continued use of the core.
  3. TrademarkThe NextPDF name and logo are reserved. The code license does not grant brand rights — that boundary is what keeps 'NextPDF' meaning the official software.
The three layers of the NextPDF licensing model: the Apache-2.0 open-source core, the proprietary Pro and Enterprise add-ons, and the trademark on the NextPDF name and logo. Code rights flow from the first; capability access from the second; brand rights stay with the trademark holder.

De Apache License 2.0 is een permissieve open-source licentie die is goedgekeurd door het Open Source Initiative. Voor de kern verleent zij brede gebruiksrechten — als broncode of gecompileerd, op zichzelf of als onderdeel van een groter werk — zonder niet-commerciële clausule. Je mag de kern in een closed-source, betaald of intern product stoppen.

Twee clausules zijn het benoemen waard, omdat zij de plek zijn waar “permissief” “duurzaam” wordt. De licentie draagt een expliciete octrooiverlening: contributors verlenen je een royaltyvrije octrooilicentie over hun bijdragen, en die verlening eindigt alleen defensief, als je bepaalde octrooiprocedures over de software aanspant (Spec: Apache License 2.0, §3). Dat is een bescherming die een kale “doe wat je wilt”-licentie je niet altijd geeft. En herdistributie is toegestaan, maar niet verplichtingvrij: je behoudt de bestaande auteursrecht-, octrooi-, handelsmerk- en attributienotices, voegt de licentie toe, vermeldt de wijzigingen die je in gewijzigde bestanden hebt aangebracht, en neemt elk NOTICE-bestand mee (Spec: Apache License 2.0, §4). Die verplichtingen eren is de prijs van de vrijheid, en het is een lage.

Waarvoor je betaalt, wanneer je betaalt, is capaciteit — niet continuïteit. De scheiding is helder: dezelfde schrijver met begrensd geheugen, hetzelfde objectmodel, dezelfde normconformiteit zitten in de kern, of je nu ooit iets koopt of niet.

The open-source core engine (nextpdf/core) — edition availability
EditionAvailability
Core

Apache-2.0. The full rendering engine, object model, and PDF 2.0 output — free to use, modify, redistribute, and commercialise. This is the foundation, and it is the same engine under every edition.

Pro

Pro builds on the identical Apache-2.0 core and adds proprietary capabilities. It does not replace the core or change your rights to it.

Enterprise

Enterprise builds on the identical Apache-2.0 core and adds proprietary capabilities. It does not replace the core or change your rights to it.

Pro en Enterprise zijn geen open source. Hun packages declareren "license": "LicenseRef-NextPDF-Commercial", en hun voorwaarden staan in de NextPDF Commercial License Agreement (Version 3.0) — niet in de Apache License 2.0, en niet afgeleid uit de open kern. Ze voegen dingen toe; ze nemen niets weg van wat de kern je geeft.

De grens is zichtbaar op de meest alledaagse plek die er is: je composer.json. De open kern adopteren is één afhankelijkheid uit het publieke register.

<?php
declare(strict_types=1);
// composer require nextpdf/core
//
// nextpdf/core declares "license": "Apache-2.0" and ships the full
// Apache License 2.0 text in its LICENSE file. This single dependency
// is the open foundation — yours to use, modify, and redistribute.
use NextPDF\Core\Document;
use NextPDF\Contracts\OutputDestination;
$document = Document::createStandalone();
$document->setTitle('Open core, no lock-in');
$document->addPage();
$document->setFont('helvetica', 'B', 16);
$document->cell(0, 12, 'Built on an Apache-2.0 foundation', newLine: true);
// Output uses only the open core. Nothing here is gated, time-limited,
// or contingent on a paid edition. A Pro or Enterprise add-on, if you
// ever choose one, layers on top of this — it does not stand between
// you and the engine.
$bytes = $document->output(dest: OutputDestination::String);

Niets in dat programma is geleend. Er is geen licentiecontrole tussen jou en de engine, geen editie die aanwezig moet zijn om de kern te laten draaien. Als je later een capaciteit wilt die Pro of Enterprise biedt, voeg je die toe. Doe je dat nooit, dan blijft de kern precies werken zoals hij vandaag doet.

De frequente misvatting is “open core betekent dat ik het merk er ook bij krijg.” Dat is niet zo. De Apache License 2.0 verleent geen rechten in de handelsnamen, handelsmerken of logo’s van de licentiegever, buiten een redelijke, gebruikelijke verwijzing naar de oorsprong van het werk (Spec: Apache License 2.0, §6). Je mag dus nextpdf/core forken, wijzigen en herdistribueren — dat is het coderecht — maar je mag die fork niet uitleveren als “NextPDF” of onder het NextPDF-logo. Kies je eigen naam.

Die scheiding is geen addertje verstopt in de vrijgevigheid. Het is wat de vrijgevigheid veilig maakt. Een permissieve licentie kan de code uitdelen, juist omdat het merkenrecht “NextPDF” de officiële, ongewijzigde software laat betekenen, zelfs nadat de code is geforkt. Zonder de grens zou elke gewijzigde build zichzelf NextPDF kunnen noemen, en zou niemand de officiële engine van iemands patch kunnen onderscheiden. De lijn beschermt gebruikers, niet alleen het merk. De volledige behandeling van code-versus-merk staat op de handelsmerkpagina.

Een tweede misverstand is dat “open core” de betaalde edities op de een of andere manier óók open zou maken. Dat is niet zo. Dat de kern Apache-2.0 is, zegt niets over Pro of Enterprise — die zijn propriëtair, ongeacht de licentie van de kern.

Open core is een echt voordeel, duidelijk benoemd — geen bewering dat alles gratis is. De geavanceerde capaciteiten in Pro en Enterprise zijn werkelijk propriëtair en werkelijk betaald; deze pagina doet niet alsof dat anders is, en doet geen belofte over de voorwaarden van die edities, die in je commerciële overeenkomst staan.

“Geen lock-in” is precies. Het betekent dat het fundament waarop je bouwt permissief gelicentieerd is en op jouw voorwaarden bruikbaar blijft. Het betekent niet dat elke functie in de kern zit, en het betekent niet dat migreren weg van een Pro- of Enterprise-capaciteit die je hebt geadopteerd kosteloos is — een propriëtaire capaciteit is, van nature, een afhankelijkheid die je bewust hebt aangegaan. De vrijheid zit in de kern.

De attributieverplichtingen onder Apache-2.0 §4 zijn verplichtingen, geen opties. Een herdistributie die de notices laat vallen, de licentie weglaat, of de wijzigingen in gewijzigde bestanden verbergt, is een licentieschending, ook al is de licentie permissief. Vrijheid komt hier met een korte, eerlijke lijst van verplichtingen.

Deze pagina is een samenvatting in begrijpelijke taal van het licentiemodel, niet de licentie zelf en geen juridisch advies. Waar deze samenvatting en de gezaghebbende documenten verschillen — het LICENSE-bestand in het package, en je commerciële overeenkomst voor de betaalde edities — zijn die documenten doorslaggevend. De volledige, bindende behandeling staat op de licentiepagina.

  • Open core — een model waarbij een permissief gelicentieerde open-source kern wordt omringd door propriëtaire, betaalde add-ons. De kern is gratis te gebruiken en te houden; de add-ons zijn optioneel.
  • Apache License 2.0 — een permissieve, OSI-goedgekeurde open-source licentie. Zij verleent brede rechten op gebruik, wijziging en herdistributie, bevat een expliciete octrooiverlening, vereist attributie bij herdistributie, en verleent geen handelsmerkrechten.
  • Patent grant — een expliciete, royaltyvrije licentie op de octrooien van contributors die hun bijdragen dekken, met defensieve beëindiging als je over bepaalde octrooien procedeert over de software (Apache-2.0 §3).
  • NOTICE file — een attributiebestand dat, wanneer het in het werk aanwezig is, in je herdistributie moet worden meegenomen onder Apache-2.0 §4.
  • Lock-in — de overstapkosten die het verlaten van een leverancier duur maken. Open core neemt die voor het fundament weg door de kern permissief te licentiëren.