How to Screenshot a Notion-Powered Website in Node.js

How to Screenshot a Notion-Powered Website in Node.js

author

Snapshot Site Team

01 Mar 2025 - 02 Mins read

Turning a Notion page into a public website — directly, or through a wrapper tool that adds a custom domain and styling on top — has become a common, fast way for small teams to ship a docs site, a changelog, or a simple marketing page without a traditional CMS. That convenience comes with a rendering trade-off worth knowing about before automating screenshots of one.

Why Notion-Powered Sites Have Their Own Quirks

  • Slower initial content load is common, since the page is rendering Notion's own block-based document structure rather than a lightweight static page.
  • Nested toggles and collapsed sections in the source Notion page may render collapsed by default, so a capture shows only what's expanded, not necessarily everything on the page.
  • Embedded databases and galleries (Notion's table or gallery views) can take a moment longer to populate than plain text blocks.

Node.js Example

const response = await fetch("https://api.prod.ss.snapshot-site.com/api/v1/screenshot", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-snapshotsiteapi-key": "YOUR_API_KEY",
  },
  body: JSON.stringify({
    url: "https://example-notion-site.com/",
    format: "png",
    width: 1440,
    height: 900,
    fullSize: true,
    hideCookie: true,
    delay: 3,
  }),
});

const data = await response.json();
console.log(data);

A longer delay than a typical marketing page is worth budgeting for here, since Notion-based pages tend to load their content in stages rather than all at once.

Practical Recommendations

  • Budget extra delay for database and gallery blocks. These tend to populate later than plain text and heading blocks.
  • Default to fullSize: true. Notion-based docs and changelog pages are usually long, scrollable documents.
  • Decide deliberately whether collapsed toggles should be expanded before capturing, if the point of the screenshot is documenting the page's complete content rather than its default collapsed view.

Common Use Cases

  • Archiving a changelog or documentation page's state at a point in time
  • Visual QA before switching a Notion-based site's theme or custom domain setup
  • Generating preview thumbnails for an internal content calendar
  • Feeding a scheduled visual monitor, as described in Visual Uptime Monitoring

For teams that shipped a fast, Notion-based site and now want it monitored the same way any other page would be, Snapshot Site handles the capture with one HTTP call, no extra tooling required.

Related Articles

How to Capture a Contentful-Powered Site in Node.js

How to Capture a Contentful-Powered Site in Node.js

A practical guide to capturing sites built on Contentful from Node.js, including timing around client-side content fetching and full-page article and landing-page captures....

- 02 Mins read

How to Screenshot a Ghost CMS Blog in Node.js

How to Screenshot a Ghost CMS Blog in Node.js

A practical guide to capturing Ghost-powered blog pages from Node.js, including handling membership paywalls, theme changes, and full-length article captures....

- 02 Mins read

How to Screenshot a Squarespace Site in Node.js

How to Screenshot a Squarespace Site in Node.js

A practical guide to capturing Squarespace pages from Node.js, including handling parallax sections, cookie banners, and full-page marketing pages....

- 02 Mins read

Subscribe to Snapshot Site API

Snapshot Site is a powerful API that allows you to capture full-page, high-resolution screenshots of any website with pixel-perfect accuracy.
Simply send a URL to the API to generate a complete snapshot — not just the visible area — covering entire web pages, scrolling content, landing pages, blogs, news articles, social media posts, videos, and more.
Designed for developers, designers, marketers, and journalists,
Snapshot Site makes it easy to integrate web page capture into your applications, workflows, and automation tools.

Subscribe Now
bg wave