We write about lovely things like code, design, and, of course, how to use MarkupGo
Page Numbers, Headers and Footers in HTML-to-PDF: Why Puppeteer's headerTemplate Fights You
You add a footerTemplate to your Puppeteer page.pdf() call, pass pageNumber and totalPages, and the result is either invisible text, a footer stamped over your…
Markdown to Image: Turn READMEs, Code Snippets and Release Notes into Social Cards Programmatically
You can turn a Markdown changelog or README snippet into a branded social card with one API call, but most tools force you to choose between watermarked free…
Add a Payment QR Code to Your Generated Invoices (UPI, EPC, SEPA) Without a Plugin
Customers in India and Europe now expect to scan and pay directly from an invoice PDF. Yet the tools developers rely on either omit QR codes entirely or gate…
Save Any Webpage as a PDF Programmatically: How URL-to-PDF Rendering Works (and Why Pages Get Cut Off)
URL-to-PDF is not a screenshot. When Chromium prints a page, it re-lays the entire layout at paper width, switches to @media print rules, and paginates by…
PowerPoint (PPTX) to PDF in Node.js: The LibreOffice Hang, Font Drift, and When to Just Call an API
Search "pptx to pdf node.js" and you will find Aspose marketing posts and narrow Stack Overflow fixes, but almost nothing about the production failure modes. A…
Generate PDF Invoices from Google Sheets Automatically (No Code)
A new row lands in your Google Sheets client tracker. Thirty seconds later, a designed, branded invoice PDF is sitting in your Drive folder and on its way to…
Convert Excel (XLSX) to PDF in Node.js: Why Spreadsheet Parsers Can't Do It, and What Actually Works
ExcelJS reads and writes XLSX beautifully but has no PDF export — a gap documented in GitHub issues 1562 and 1806. After workbook.xlsx.writeBuffer(), you have…
chrome-headless-shell vs Full Chromium for PDF Rendering (and the ARM64 Problem Nobody Warns You About)
Chrome 132 killed --headless=old. That flag now prints an error instead of launching, so every PDF pipeline that relied on it must pick a new binary: the…
Dynamic OG Images Without Code: Magic Template URLs for Webflow, Ghost and WordPress
Next.js developers can lean on ImageResponse and Satori for dynamic social cards, but Webflow, Ghost and WordPress builders lack a code-level hook. MarkupGo's…
DOCX to PDF in Production: Why Headless LibreOffice Hangs, and When to Use an API
The command libreoffice --headless --convert-to pdf is the first result for "docx to pdf linux" and it is a production trap. A Stack Overflow thread…
Render Chart.js Charts as PNG Images Server-Side (Without Fighting node-canvas)
Server-side Chart.js to PNG looks simple until you actually try it. The canonical path runs through node-canvas, which needs Cairo, Pango, libpng, jpeg,…
Auto-Generate Branded PDF Invoices from Stripe Payment Events
Stripe issues a PDF for every invoice, but the layout is locked. You can upload a logo and pick a brand color, yet you cannot add VAT IDs, custom fonts, or a…
Why Your Server-Generated PDF Shows Boxes and Fallback Fonts (Unicode, CJK, Emoji)
Your PDF looks perfect on your MacBook. Every glyph, every emoji, every CJK character in the customer name renders exactly as designed. Then you ship to…
Puppeteer on Serverless Keeps Breaking: When to Use a Screenshot API
It's 2am, PagerDuty fires, and the invoice PDF job on Lambda has died again (TimeoutError: Waiting for navigation ... 30000ms exceeded), on every third…
html-to-image vs html2canvas: CORS, Fonts and When to Render Server-Side
Your toPng() call returns a blank image. Or a SecurityError about cssRules. Or a canvas with everything except the fonts — and it works fine in Chrome, but…
HTML to PDF in Node.js: Puppeteer vs a Hosted Conversion API
Your Puppeteer PDF code works perfectly on your laptop. Then you deploy it to Lambda: the third deploy breaks the build, every emoji turns into a hollow…
Reusable Templates
How to create PDF invoices with HTML templates
Learn how to create PDF invoices using HTML templates and MarkupGo's powerful API. Generate professional invoices with dynamic data and reusable templates.
Reusable Templates
Creating Reusable Templates for Images and PDFs
Learn how to create reusable templates for generating images and PDFs with MarkupGo. This feature allows you to create custom templates for your projects and automate the generation of visual content.
Automation
Automate Images with Make.com, Google Sheets & MarkupGo
Learn how to easily automate image generation by connecting Google Sheets, Make.com, and MarkupGo. Simplify your workflow with this step-by-step guide!
HTML to Image
How powerful is the HTML to Image feature?
We’re excited to showcase our HTML-to-Image feature and show how it can be used to convert HTML content into images, making your projects more dynamic and visually engaging.