
How to Screenshot a Ghost CMS Blog in Node.js

Snapshot Site Team
20 Jan 2026 - 02 Mins read
Ghost is a common choice for teams that want a fast, minimal publishing platform without a full CMS's overhead, and it pairs naturally with a Node.js stack for anything that needs to call outside the platform itself — including screenshotting the published pages.
Why Ghost Pages Have Their Own Quirks
- Membership and subscription gates, a core Ghost feature, mean logged-out and logged-in views of the same article can render very differently.
- Theme changes are common and worth screenshotting before and after to confirm nothing broke across post types.
- Long-form articles are the actual content worth capturing in full, not just the header.
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-ghost-blog.com/latest-post/",
format: "png",
width: 1440,
height: 900,
fullSize: true,
hideCookie: true,
}),
});
const data = await response.json();
console.log(data);
fullSize: true matters here — Ghost articles are meant to be read in full, and a partial capture isn't a useful record of what was actually published.
Practical Recommendations
- Capture both the logged-out and member-only views of a gated post if you're verifying a paywall renders correctly — the same pattern covered in Verifying Paywall and Subscription Gates Render Correctly.
- Default to
fullSize: true. Ghost's whole value proposition is long-form content, so partial captures rarely tell the full story. - Screenshot before and after a theme change. A small set of representative post types (a short post, a long post, a gated post) makes theme QA fast.
- Batch by post type using Ghost's Content API to get a URL list, then feed it into the screenshot calls above.
Common Use Cases
- Theme QA before and after a design update
- Archiving published articles at their point-in-time state
- Auto-generating preview thumbnails for an internal editorial dashboard
- Catching membership-gate regressions across key articles
For teams already comfortable in Node.js, Snapshot Site turns Ghost screenshotting into one more API call in the existing stack, not a separate service to run.

