What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In Node.js, capture the page with Playwright’s page.screenshot(), then pass the returned Buffer as the Body of an AWS SDK for JavaScript v3 PutObjectCommand. This avoids a temporary file. The examples below use ES modules and assume you have AWS credentials configured for the SDK and permission to write to the target bucket.

Install Playwright and the AWS SDK

In an existing Node.js project, install the browser automation library and S3 client:

npm install playwright @aws-sdk/client-s3
npx playwright install chromium

Set S3_BUCKET to the name of an existing bucket, and configure AWS credentials and region using a supported AWS SDK credential provider, such as environment variables or an assigned role. Avoid putting long-lived credentials in source code.

Capture a screenshot in memory and upload it

This example captures the full scrollable page as PNG bytes, then uploads those bytes directly to S3. Save it as an ES module, for example capture-to-s3.mjs:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents
import { chromium } from 'playwright';
import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3';

const url = 'https://example.com';
const bucket = process.env.S3_BUCKET;

if (!bucket) {
  throw new Error('Set the S3_BUCKET environment variable.');
}

const browser = await chromium.launch();
try {
  const page = await browser.newPage();
  await page.goto(url, { waitUntil: 'load' });

  // page.screenshot() returns a Buffer when no path is supplied.
  const screenshot = await page.screenshot({ fullPage: true });

  const s3 = new S3Client({});
  const key = `screenshots/${Date.now()}.png`;
  await s3.send(new PutObjectCommand({
    Bucket: bucket,
    Key: key,
    Body: screenshot,
    ContentType: 'image/png',
  }));

  console.log(`Uploaded s3://${bucket}/${key}`);
} finally {
  await browser.close();
}

Run it after setting the bucket and configuring AWS credentials and region:

S3_BUCKET=your-bucket-name node capture-to-s3.mjs

The screenshot API returns a Promise<Buffer> if you omit path; PNG is the default image type. fullPage: true captures the full scrollable page, while the default is a viewport capture. See the Playwright Page API for screenshot options and version-specific details. The AWS upload follows the documented PutObjectCommand pattern, using the screenshot Buffer as Body rather than file bytes; see AWS S3 PutObject examples.

Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors

Choose when the page is ready

The example waits for the page’s load event, but some sites render important content afterward. If that applies, wait for a known element before capturing:

await page.goto(url, { waitUntil: 'domcontentloaded' });
await page.locator('main').waitFor({ state: 'visible' });
const screenshot = await page.screenshot({ fullPage: true });

Replace main with a selector that indicates the content you need. A selector wait can still time out if the page fails to render that element, so choose a meaningful target and handle navigation or timeout errors in the calling application.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.

Save a local file as well

Use the path option when you need a local artifact in addition to the S3 copy. Read the file and use its bytes as the upload body:

import { readFile } from 'node:fs/promises';
import { chromium } from 'playwright';
import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3';

const browser = await chromium.launch();
try {
  const page = await browser.newPage();
  await page.goto('https://example.com', { waitUntil: 'load' });
  const path = 'screenshot.png';
  await page.screenshot({ path, fullPage: true });

  const s3 = new S3Client({});
  await s3.send(new PutObjectCommand({
    Bucket: process.env.S3_BUCKET,
    Key: 'screenshots/screenshot.png',
    Body: await readFile(path),
    ContentType: 'image/png',
  }));
} finally {
  await browser.close();
}

Playwright documents both path-based and in-memory screenshot capture in its Screenshots guide. The local-file approach is useful when another process needs the artifact or you want to inspect it before upload; otherwise, the Buffer approach avoids disk I/O.

Rank #4
Sale
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient

Choose an S3 key and access model

The timestamp key in the first example is illustrative, not a complete production naming policy. Decide whether each run should overwrite a stable object key or create a unique, versioned object name. Ensure the AWS identity used by the SDK has the required bucket and object permissions for that choice.

A successful upload does not make an object publicly accessible. Keep objects private unless public access is an explicit requirement, and use a suitably scoped access policy rather than adding a public ACL by default. The right policy depends on your account and application; verify it for your own setup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sale
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When to use multipart upload

A normal page screenshot is usually suited to a single PutObjectCommand. For large-object workflows, AWS documents multipart upload and a JavaScript v3 example using @aws-sdk/lib-storage. AWS’s PutObject example states that uploads larger than 5 GB should use multipart upload (or the S3 console, whose stated limit is 160 GB); verify current service limits and SDK behavior in AWS’s documentation before relying on operational thresholds. See the AWS multipart upload guide.

Troubleshoot common failures

  • S3_BUCKET is missing: set the environment variable to an existing bucket name before running the script. The example stops before launching the browser if it is unset.
  • AWS credential or access-denied error: configure a valid SDK credential source, the correct region, and permissions for the requested bucket and key. A successful browser capture does not verify S3 permissions.
  • Playwright cannot launch Chromium: install the browser binary with npx playwright install chromium in the environment where the script runs.
  • Navigation or selector wait times out: verify the URL and the selector against the page’s rendered content, then choose an appropriate navigation readiness condition. Do not assume a page that emitted load has finished rendering every dynamic element.
  • The object uploads but cannot be viewed anonymously: that is consistent with a private object. Configure the intended access method and policy; do not treat upload success as a public-access setting.
  • The screenshot is shorter than expected: use fullPage: true to capture the full scrollable document instead of only the viewport.

Or skip the browser setup

ScreenshotNeo is a screenshot API and MCP server for developers. Its one-call API can return an image or PDF without installing or running Playwright in your application. This is an alternative to the do-it-yourself flow above, not an S3 upload: store the returned response bytes in S3 using your own upload code if that is your goal.

See the ScreenshotNeo API documentation. For example, this cURL request saves a WebP response locally:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are not billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots per month with no card, and paid plans start at $5 for 3,000. Sign up for ScreenshotNeo’s free plan.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.