Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A painless HTML to PDF rendering service. Generate PDF reports and documents from HTML templates or raw HTML.
Open-source React components and low-code builder from MUI for building dashboards and internal tools.

HTML5-based PHP template engine with recursive extends and CSS3 selectors for DOM manipulation at compile time.

Jekyll Octopod adds podcast publishing capabilities to Jekyll static sites.

A Hugo theme that turns markdown content into Reveal.js HTML presentations.

SQLAlchemy Admin for FastAPI and Starlette
PdfTurtle is an open-source, self-hosted HTML-to-PDF tool that renders PDF reports and documents from HTML templates or raw HTML using a Chromium engine. It runs as a stateless Go microservice, accepts a ZIP bundle of templates and assets plus a JSON model, and returns a rendered PDF file.
PdfTurtle is a self-hostable HTML-to-PDF rendering service written in Go. It takes HTML templates (or raw HTML) and a JSON model as input, and outputs a PDF rendered by the latest Chromium engine via the chromedp driver. The project is maintained by Lucas Gaitzsch and distributed as a Docker image on Docker Hub, with a web-based Playground available at pdfturtle.gaitzsch.dev for interactive template design.
Yes. PdfTurtle is free and open source. You self-host the Docker image, so there are no per-document costs or subscription tiers. A public demo Playground is available at pdfturtle.gaitzsch.dev.
PdfTurtle includes three template engines: Go's html/template, a Django-syntax engine (pongo2), and a Handlebars-syntax engine (raymond). You select the engine by key when calling the service.
Pull lucasgaitzsch/pdf-turtle and run it with port 8000 exposed, for example docker run -d -p 8000:8000 lucasgaitzsch/pdf-turtle. For the bundled Playground UI, use the -playground tag.
The default render timeout is 30 seconds, the max body size is 32 MB, and the service starts 30 worker instances. All are configurable via command-line arguments or environment variables.
Official client libraries exist for .NET Standard 2.0 and Go. For other languages, you can generate a client from the Swagger/OpenAPI description at /swagger/doc.json.
