Blog

Guides, product updates and engineering notes from the Transactional team.

How to Generate PDFs in a Ruby on Rails App
HTML to PDF7 min read

How to Generate PDFs in a Ruby on Rails App

Wicked PDF and Prawn are getting old. Here is how to generate PDFs in a Rails app with a simple API call — no wkhtmltopdf binary, no layout DSL to learn.

Kevin · June 20, 2026

PDF Generation API Comparison: Transactional.dev vs DocRaptor vs PDFShift vs Gotenberg
PDF Generation7 min read

PDF Generation API Comparison: Transactional.dev vs DocRaptor vs PDFShift vs Gotenberg

An honest comparison of PDF generation APIs in 2026 — pricing, features, template systems, self-hosted vs managed, and which fits which use case.

Kevin · June 19, 2026

PHP elephant pixel art with arrow pointing to a PDF document with green checkmark
HTML to PDF6 min read

How to Generate PDFs in PHP (Laravel, Symfony)

DomPDF and TCPDF are painful to maintain. Here is how to generate production-quality PDFs in Laravel and Symfony with a single API call — no binary dependencies.

Kevin · June 18, 2026

Photorealistic Python snake coiled beside a glowing PDF document on a dark blueprint grid surface
HTML to PDFDeveloper Tools6 min read

How to Generate PDFs from a Python App

Replace WeasyPrint, ReportLab, and wkhtmltopdf with a single requests.post() call. PDF generation examples for Django, Flask, and FastAPI.

Kevin · June 17, 2026

Watercolor pipeline with colorful nodes: event bubble, template card, API icon, PDF document, and email envelope on dark grid
SaaS ArchitectureAutomation7 min read

How to Build a Document Automation Pipeline for SaaS

Design a clean document automation pipeline: events, template selection, variable mapping, PDF generation, and delivery. Full architecture walkthrough.

Kevin · June 16, 2026

Flat diagram of a tall PDF document being split into three separate page cards with dotted cut lines on a dark grid
HTML to PDFTemplates7 min read

How to Handle Multi-Page PDFs with Dynamic Content

Master CSS page breaks, repeating headers, and Handlebars loops to generate clean multi-page PDFs from dynamic data.

Kevin · June 15, 2026

Neon glowing certificate scroll with ribbon badge in electric blue and purple on a dark blueprint grid
TemplatesDeveloper Tools6 min read

How to Generate a PDF Certificate of Completion

Build a dynamic PDF certificate generator with HTML templates and a simple API call. Perfect for courses, events, and training programs.

Kevin · June 14, 2026

Pixel art document with version tags v1 v2 v3 on a dark blueprint grid background
Developer ToolsSaaS Architecture6 min read

How to Version and Audit PDF Documents in Production

Build an audit trail for every PDF you generate. Store document versions, replay any document, and prove exactly what was sent to whom.

Kevin · June 13, 2026

Abstract geometric layers representing serverless architecture with a broken chain and API icon on a dark blueprint grid
HTML to PDFDeveloper Tools6 min read

PDF Generation in a Serverless Environment (Vercel, AWS Lambda)

Why Puppeteer and Chromium fail in serverless environments and how to generate PDFs with a simple API call from Vercel and AWS Lambda.

Kevin · June 12, 2026

How to Build a Download as PDF Button in Your SaaS
Developer Tools6 min read

How to Build a "Download as PDF" Button in Your SaaS

The complete guide to wiring a download-as-PDF feature in your SaaS — backend endpoint, API call, signed URL, and download response, step by step.

Kevin · June 11, 2026

How to Generate a PDF from a React App
HTML to PDF6 min read

How to Generate a PDF from a React App

Stop fighting with jsPDF and html2canvas. Learn how to generate PDFs from a React app by calling a backend API instead of fragile client-side rendering.

Kevin · June 10, 2026

How to Send a PDF Attachment in a Transactional Email
Automation5 min read

How to Send a PDF Attachment in a Transactional Email

Learn how to generate a PDF and attach it to a transactional email using Resend or Postmark. Complete webhook handler with code examples.

Kevin · June 9, 2026