Compare / Puppeteer and Playwright screenshots
MintRender vs Puppeteer and Playwright screenshots
Puppeteer and Playwright drive a headless browser from code. Open an HTML page with your data, then take a screenshot or print it to PDF. You run the browser yourself, or rent one, for example from Cloudflare.
Facts checked in the projects' own docs on 1 November 2026. Each one links its source. MintRender is not connected with these projects.
Build it yourself when
- You need everything a real browser does: any HTML, CSS and JavaScript, or screenshots of existing web pages.
- You have HTML templates already and a team that keeps a browser service running.
Pick MintRender when
- You do not want to start, keep and pay for browsers: MintRender has no browser in the path.
- People who do not write code change the design in an editor.
- You want a price per file, a cache for the same data, signed links and batches from a CSV file.
What you get
| Screenshots | page.screenshot() in both, with options for the format, the area and the quality. source source |
| page.pdf() prints the page with print CSS, with page size, margins, headers and footers. source source | |
| Where it runs | Anywhere a browser runs, for example Cloudflare Browser Run (before: Browser Rendering), which runs Puppeteer and Playwright, and has screenshot and PDF endpoints. source |
| Time limits on Cloudflare | A browser stops after 60 seconds without use (keep_alive raises it to 20 minutes); Workers Free allows 10 browser minutes a day. source |
What it costs to run
- Cloudflare Browser Run, Workers Free: 10 minutes a day and 3 browsers at once. source
- Workers Paid: 10 hours a month, then $0.09 an hour; 10 browsers at once (monthly average), then $2.00 a browser. source
- Your own servers: the browser, its memory and its updates are yours to run. source
MintRender's Free plan: 100 files a month, every month, no card. Paid plans start at $19 a month for 2,000 files (pricing).
The same image both ways
Puppeteer and Playwright screenshots source
const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto('https://example.com/card?title=Hello', { waitUntil: 'networkidle2' });await page.screenshot({ path: 'card.png' });await browser.close();MintRender
curl -X POST https://mintrender.com/v1/render \ -H "Authorization: Bearer $MINTRENDER_KEY" \ -H "Content-Type: application/json" \ -d '{ "template": "YOUR_TEMPLATE_ID", "data": { "title": "Hello" }, "format": "png" }'- With MintRender there is no page to open and no browser to wait for: one request with your values, and the answer has the file's URL.
- MintRender does not run HTML: draw the design in the editor, or ask the AI template maker for a first version.
Sources
- https://playwright.dev/docs/screenshots
- https://pptr.dev/guides/screenshots
- https://playwright.dev/docs/api/class-page#page-pdf
- https://pptr.dev/guides/pdf-generation
- https://developers.cloudflare.com/browser-rendering/
- https://developers.cloudflare.com/browser-run/limits/
- https://developers.cloudflare.com/browser-run/pricing/