Everything in Pulp Engine
Built for developers and engineering teams. Grouped by who tends to care. Every item ships under the same licence — no Pro tier, no feature gates.
For developers
Ship document features without inventing infrastructure.
REST + OpenAPI 3.0
/docs/json. Swagger UI at /docs. Generate your own client in any language. Typed SDKs
CLI tooling
@pulp-engine/cli: push/pull for content sync, render/dev for local iteration, validate/test/diff/merge, promote, codegen, and backup. <code>dryRun: true</code>
Plugin system
Async batch rendering
POST /render/batch/async (PDF and DOCX) returns a job id, delivers results via webhook callback, and survives restarts with a durable DLQ. Scheduling & delivery
PDF post-processing
POST /pdf/merge, /pdf/watermark, and /pdf/insert for combining, stamping, or splicing PDFs without re-rendering from a template. Observability built in
Bill your customers per render
GET /usage + /usage.csv admin endpoints (per-tenant counts, durations, bytes, pages), render:completed plugin event for real-time billing pipelines, and X-Render-* response headers on every render. Pipes cleanly to Stripe Metering, Orb, Metronome, or your own invoice job. Rollup endpoints require a database-backed storage mode (Postgres or SQL Server); headers and plugin events work everywhere. For engineering teams
Authoring, versioning, and delivery surfaces built for developer authors — not business users.
Visual template editor
/editor/. Six output formats
AI template scaffolding
TemplateDefinition, schema-valid by construction. A shortcut for devs starting a new template, not end-user magic. Version history + diff
stable) without redeploying, and POST /templates/:key/diff for structural diffs between any two versions — also callable from CI. Embeddable editor + form
<pulp-engine-editor> drops the full editor into a customer app via iframe. <pulp-engine-form> exposes just the data-entry surface for end users. Starter templates
For ops & security
Run it like any other production service.
Three storage backends
S3 asset binaries
Multi-tenant mode
MULTI_TENANT_ENABLED isolates templates, assets, credentials, audit events, and schedules per tenant. OIDC / SSO
Scoped API credentials
Runtime user management
/admin/users CRUD plus /admin/users/reload — provision editors, rotate attribution, and re-read the EDITOR_USERS_JSON registry without restarting the API. Evaluation & licensed builds
PULP_LICENCE_KEY removes it — no separate "enterprise" build. Render isolation modes
Hardened production posture
Audit trails
HA + backup
Where Pulp Engine doesn't pretend yet
A new commercial product deserves honest limits. These are the questions larger-team buyers ask before rolling out production deployments; none are blockers for most teams today, and Early Adopters get direct input as we close them.
Not yet
Access control today is by scope (admin · editor · render · preview) and, in multi-tenant mode, by tenant. There is no per-template permission layer — any editor in a tenant can edit any template in that tenant. Fine for most teams; worth knowing if your compliance model requires "template owner" / "read-only reviewer" roles. On the roadmap.
Reproducible harness (numbers pending first run)
A six-cell render benchmark — warm PDF at three page-count sizes (1 / 10 / 100) plus DOCX / PPTX / XLSX at the 10-page template — with a reproducible compose stack, load script, and three template packs. Render-mode comparison (child-process · container · socket) and HA scaling (1 / 2 / 4 instances) are covered by re-running the harness against the matching stack configuration. The harness ships in the repo so you can run it on your own hardware; the first published numbers on the reference rig are still pending. See the benchmark pack.
Opt-in, not default
RENDER_MODE=child-process (default) shares a Chromium pool across tenants. For stricter tenant-level rendering isolation, RENDER_MODE=container or socket give you per-render sandboxing. Default is fine for most; regulated deployments should pick a stronger mode.
Ready to try it?
Free evaluation runs in under a minute. No database, no signup, no credit card.