JustFrame

The JustFrame renderer

JustFrame keeps a versioned archive of what websites looked like, for the people who run them. Its renderer is a headless browser that opens public pages on a schedule and saves what it sees. It never records a visitor.

How to recognise it

Every request carries this suffix in its user agent: JustFrame/0.1 (+https://app.justframe.app/renderer)

Page loads and the files they pull in (styles, images, fonts, scripts) also carry the header JustFrame-Capture: 1. The page's own fetch and XHR calls don't, because a custom header there would trigger CORS preflights and break the page. Requests come from Cloudflare's Browser Rendering service.

What it does on a page

  • Loads the page in a fresh browser profile, once per screen size (phone, tablet, desktop), usually once a day.
  • Scrolls through it so lazy-loaded content appears.
  • Records the page as a first-time visitor sees it, then closes cookie banners and pop-ups and records it again. Cookie banners are always answered with “reject” or “necessary only”.
  • Downloads the files the page shows (images, styles, fonts, the hero video) so the archive can show the page later.

It never submits a form, logs in, adds anything to a cart or starts a checkout, and it never follows a link from a pop-up. It doesn't load analytics collection endpoints (Google Analytics, Meta, TikTok, Pinterest, LinkedIn, Microsoft Clarity, Hotjar, Segment, JustCount and others), so its visits shouldn't appear in your analytics or ad audiences.

Keeping it out of your analytics

If a tool still counts its visits, exclude the user agent:

  • Google Tag Manager: add an exception trigger to your tags where the user agent (a JavaScript variable returning navigator.userAgent) contains JustFrame/.
  • Server-side tagging and log analysis: drop requests with JustFrame-Capture: 1 or a user agent containing JustFrame/.

Blocking it

The renderer follows robots.txt for the product token JustFrame, and the * group when there's no group for it. A blocked page shows up as a gap in its owner's archive; nothing is captured.

User-agent: JustFrame
Disallow: /