Puppeteer is a great browser automation tool — but running it in production to generate PDFs means owning a Chromium server, managing memory, and handling every Linux sandbox edge case yourself. Renderly does all of that for you.
Start free — no credit card →Replace your entire Puppeteer PDF pipeline with a single fetch call:
<span class="cm">// ❌ Before — ~30 lines of Puppeteer boilerplate</span>
<span class="kw">const</span> puppeteer = require(<span class="str">'puppeteer'</span>);
<span class="kw">const</span> browser = <span class="kw">await</span> puppeteer.<span class="fn">launch</span>({
args: [<span class="str">'--no-sandbox'</span>, <span class="str">'--disable-setuid-sandbox'</span>],
});
<span class="kw">const</span> page = <span class="kw">await</span> browser.<span class="fn">newPage</span>();
<span class="kw">await</span> page.<span class="fn">setContent</span>(html, { waitUntil: <span class="str">'networkidle0'</span> });
<span class="kw">const</span> pdf = <span class="kw">await</span> page.<span class="fn">pdf</span>({ format: <span class="str">'A4'</span> });
<span class="kw">await</span> browser.<span class="fn">close</span>();<span class="cm">// ✅ After — 5 lines, any language, no server</span>
<span class="kw">const</span> res = <span class="kw">await</span> fetch(<span class="str">'https://api.renderlyapi.com/v1/pdf/from-html'</span>, {
method: <span class="str">'POST'</span>,
headers: { <span class="str">'Authorization'</span>: <span class="str">'Bearer rly_live_…'</span>, <span class="str">'Content-Type'</span>: <span class="str">'application/json'</span> },
body: JSON.<span class="fn">stringify</span>({ html, format: <span class="str">'A4'</span> }),
});
<span class="kw">const</span> pdfBuffer = <span class="kw">await</span> res.<span class="fn">arrayBuffer</span>();Free tier included. No credit card. API key on sign-up.
Start for free →