
I stopped babysitting Puppeteer — here's what I use instead
Every serious Node.js project I've worked on has eventually needed to take a screenshot of a URL, or pull the OG tags off a page, or check what tech stack a competitor is running. Here's the cycle I kept living: Launch a browser with puppeteer.launch() Ship it. Works great. Three weeks later: Error: Target closed. Browser crashed. Add retry logic. Memory climbs to 600MB, process dies. Add a concurrency limiter. 50 URLs at once. Browser freezes. Add a queue. Repeat. By the end, the quick screenshot utility is 300 lines and a full-time maintenance job. What I actually needed Simple: give me a screenshot of this URL. Works on JS-rendered pages. Doesn't crash. Doesn't cost $49/month. The Puppeteer version: const puppeteer = require ( ' puppeteer ' ); async function screenshot ( url ) { const browser = await puppeteer . launch ({ args : [ ' --no-sandbox ' ] }); try { const page = await browser . newPage (); await page . setViewport ({ width : 1280 , height : 800 }); await page . goto ( url
Continue reading on Dev.to Webdev
Opens in a new tab


