Skip to main content

DocuForge vs Gotenberg

Gotenberg is an open-source, self-hosted document conversion API using Docker. DocuForge is a managed API that eliminates the need to run and scale your own infrastructure.

Feature Comparison

FeatureDocuForgeGotenberg
HostingManaged (cloud)Self-hosted (Docker)
Setup5 minutes (API key)30-60 min (Docker + config)
Rendering engineChromiumChromium + LibreOffice
Office docs → PDFNot supportedYes (via LibreOffice)
HTML-to-PDFYesYes
React-to-PDFYesNo
Template engineYes (visual editor)No
SDKsTS, Python, Go, RubyGo client only
Batch generationBuilt-in async queueManual orchestration
ScalingAuto-scaledManual Docker scaling
Custom fontsUpload via APIMount in Docker volume
QR/BarcodesBuilt-inNot included
CostFree tier, from $29/moFree (+ server costs)
Uptime SLA99.9%You manage uptime

Setup Comparison

Gotenberg

# docker-compose.yml
version: "3"
services:
  gotenberg:
    image: gotenberg/gotenberg:8
    ports:
      - "3000:3000"
    environment:
      - CHROMIUM_DISABLE_ROUTES=false
docker compose up -d
curl -X POST http://localhost:3000/forms/chromium/convert/html \
  -F 'files=@index.html' \
  -o output.pdf

DocuForge

import { DocuForge } from 'docuforge';
const df = new DocuForge('df_live_...');

const pdf = await df.generate({
  html: '<h1>Hello World</h1>',
  options: { format: 'A4' },
});

When to Choose Gotenberg

  • You need Office document conversion (DOCX, XLSX → PDF)
  • You have strict data residency requirements
  • You want a free, self-hosted solution and can manage Docker infrastructure
  • You’re already running Kubernetes and can auto-scale Docker containers

When to Choose DocuForge

  • You don’t want to manage Docker infrastructure
  • You need templates, React support, or batch generation
  • You want SDKs for multiple languages
  • You need a reliable SLA without managing uptime yourself