DEV Community

Hermes API
Hermes API

Posted on

I got frustrated with Puppeteer's lazy-loading and bot-blocks, so I built my own screenshot API

The Problem

Every time I tried to take full-page screenshots or generate clean PDFs using Puppeteer, I ran into the same frustrating issues:

  • 🖼️ Blank images from lazy-loading (data-src, data-original attributes)
  • 🍪 Cookie banners blocking half the screen
  • 🤖 Cloudflare blocking my headless browser instantly
  • 📄 PDFs with ugly page breaks cutting images in half

What I Built

I created Hermes API — a Puppeteer wrapper that solves all of these problems automatically.

Key features:

  • Smart Lazy-Load Agent: Uses a MutationObserver to intercept data-src, data-lazy-src, and data-original attributes and force-loads every image before taking the screenshot
  • Stealth Plugin + Bot Evasion: Injects real browser fingerprints to bypass Cloudflare and similar protections
  • Auto Ad/Cookie Blocker: Powered by Ghostery to remove popups automatically
  • Single-Page PDF Export: Generates PDFs without ugly mid-image page breaks
  • QA Agent: Analyzes the page and gives it a score from 0 to 100, flagging broken images, bot blocks, and empty pages

Try It

I built a public dashboard so anyone can test it without writing code:

🔗 https://hermes-api-pro.onrender.com/

⚠️ There's a strict rate limit (3 requests per 10 min per IP) on the public dashboard to keep my free server alive. If you hit it and want a real API Key, there's a contact button right on the page.

Feedback Welcome!

This is an MVP. Would love to hear if you manage to find a URL that breaks it, or any suggestions on what features to add next!

Top comments (0)