The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →You can run browser automation on demand from a serverless function, but the function and the browser are separate parts of the system. The function handles an HTTP request or queued job; the browser must either run in a managed remote service or be packaged and operated alongside the function. For a one-off screenshot, PDF, or scrape, a managed browser action is usually the simpler starting point. For multi-step work that needs page interaction or session state, use a remote browser session or run Chromium yourself when the extra deployment and maintenance are justified.
How the serverless browser architecture works
A serverless function is an on-demand handler, not a browser runtime. It receives a request, validates the work, starts or connects to a browser, performs a bounded task, returns or stores the result, and exits. The browser can be remote, operated by a managed browser service, or local to the function because Chromium and its dependencies were included in the deployment package.
This distinction matters: a Lambda Function URL or API Gateway can expose a function over HTTP, but neither endpoint means Chromium is already installed. AWS describes Function URLs as HTTP(S) endpoints callable by browsers and HTTP clients, and API Gateway as an entry point for serverless APIs (Lambda Function URLs; API Gateway and serverless APIs). Those are ways to invoke the handler, not browser services.
Typical workloads include rendering dynamic pages for scraping, generating screenshots or PDFs, running browser tests, and enabling an agent to interact with a site. Your choice depends less on the word “serverless” than on whether the task needs one isolated action or a live, stateful browser.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →#1 Best Overall
- 【Powerful Load-bearing】12U Network Rack Open Frame is constructed from durable cold rolled steel; Rack shelf supports enhance stability, wall-mounted capacity of 130lbs, the ground-mounted up to 260lbs
- 【Considerate Designs】Open-frame layout, including a top panel adding space, anti-slip shelf stops fixing devices and compatible racks for stack and expansion to meet requirements of home server rack
- 【Complete Accessories】A 12U open frame server rack, two ventilated shelves, four shelf stops, four velcro straps and a set of equipment mounting screws
- 【Versatile Application】Ideal for space-efficient multi-device setups in warehouses, retail, classrooms, offices and more; Excellent choices as AV Rack/IT Rack
- 【Effortless Setup】 Network Rack includes hardware, a comprehensive manual, mounting hole drilling template and an online assembly video to simplify setup
Choose an execution model before writing the function
Use a stateless browser action for one-off jobs
If each request needs one result—such as a screenshot, PDF, or rendered-page extraction—a managed service’s REST API or quick-action interface avoids packaging a browser. Cloudflare recommends its Quick Actions for simple single-request jobs. They can be invoked through its REST API or from a Worker using a browser binding (Cloudflare Browser Run; Get started with Browser Run).
Use a browser session for scripted interaction
Choose Playwright, Puppeteer, or a CDP connection when a workflow must navigate multiple pages, click controls, inspect changing state, or reuse a session. A managed browser service can host that browser while your function remains the request handler. Cloudflare documents session reuse, and describes Durable Objects as an option for preserving sessions and avoiding the startup overhead of a new session. Queues can handle asynchronous jobs; object storage can archive output (Cloudflare Browser Run; Get started with Browser Run).
Package Chromium only when you need ownership of the runtime
Bundling Chromium gives you more control over the browser image and deployment environment, but you own packaging, compatible browser and automation-library versions, startup behavior, and operational updates. This can be appropriate when runtime control or the economics of your workload justify it. It is not automatically cheaper or faster: compare function compute, browser usage, storage and egress, reuse, and engineering time against current provider prices and your measured workload.
For the decision, compare browser ownership, task model, protocol and feature coverage, browser support, session lifetime and isolation, concurrency and launch quotas, deployment complexity, geography and latency, and total cost. Measure latency using your own target pages and deployment regions; no cross-provider performance comparison is established here.
Cloudflare Workers with Browser Run
Cloudflare calls its service Browser Run; older material may call it Browser Rendering. Its documentation says Browser Run is available on Free and Paid plans. The integrated Worker path uses a declared browser binding, for example BROWSER. Quick Actions require a compatibility date of 2026-03-24 or later. Wrangler’s current Browser Run reference requires the binding, and says compatibility dates from 2026-08-04 enable nodejs_compat and nodejs_compat_v2 by default; earlier dates need the compatibility flag opted in (Getting started; Wrangler reference).
Rank #2
- ADJUSTABLE DEPTH: 4-Post 42U open frame server rack with 4 vertical rails and adjustable mounting depth 22" to 40" (56,0cm to 101,7cm); Compatible with various servers / switches / data / AV and other IT equipment; EIA/ECA-310-E Compliant
- EASY ASSEMBLY: Mobile network rack with easy-to-follow assembly instructions and online video; Compact flat-pack shipping to avoid damage and facilitate installation; Total product height of 80.3in (204 cm) with casters, 78in (198cm) without casters
- COLD ROLLED STEEL: Durable 4 Post 19in open frame rack designed for ventilation with 42U mounting height and 1320lb (600kg) weight capacity (stationary); 3 install options included: casters, levelling feet, or base-plate to secure rack to the floor
- HARDWARE INCLUDED: Rolling computer/data rack includes cage nuts and screws to mount equipment, easy to read Units (U) and depth adjustment markings, cable management hooks for organization, and required assembly tools
- THE IT PRO'S CHOICE: Designed and built for IT Professionals, this 42U rack is backed for 2-years, including free lifetime 24/5 multi-lingual technical assistance
- Create a Worker in your Cloudflare account and install/configure Wrangler for the project.
- Set the Worker compatibility date to at least
2026-03-24for Quick Actions. If using an earlier date, follow the Wrangler reference’s compatibility requirements. - Declare a Browser Run binding named
BROWSERin the Worker configuration. Use the exact binding configuration format in the current Wrangler reference. - Call
env.BROWSER.quickAction("screenshot", { url })in the handler, then return or store the resulting response according to the action’s documented format. - Deploy with Wrangler. When developing locally, Quick Actions require remote mode rather than a local browser runtime.
Quick Actions suit a single action per request. If the task requires a multi-step workflow, use a browser session through the documented Playwright, Puppeteer, or CDP path instead of trying to stretch a one-shot action into an interactive session.
Cloudflare’s Aug. 20, 2026 changelog states that Workers Paid defaults became 200 concurrent browsers, three new browser instances per second, and 30 Quick Actions requests per second; it also says higher limits can be requested (Browser Run changelog). These are Workers Paid defaults, not a promise for Free plans or other providers. Check the current quota for the account and workload before sizing concurrency.
Connect a serverless function to a remote Playwright browser
When your function runs outside the browser provider—for example, a Lambda handler calling a hosted browser—you need the provider’s connection endpoint and protocol. Do not assume that every URL accepts the same Playwright connection method.
Browserless protocol choice
Browserless documents its default endpoint as CDP. With Playwright, connect to that endpoint using chromium.connectOverCDP(). Its Playwright-native endpoint uses connect() and a /playwright path. Browserless says native mode is needed for features such as page.route(), APIRequestContext, and non-Chromium browser support; it is coupled to the Playwright version at that endpoint. Confirm the endpoint format, authentication, and supported features in the provider’s current account documentation before deployment (Browserless: Connect Playwright).
import { chromium } from "playwright";
export async function handler() {
const browser = await chromium.connectOverCDP(process.env.BROWSERLESS_CDP_URL);
try {
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
const title = await page.title();
await context.close();
return { statusCode: 200, body: JSON.stringify({ title }) };
} finally {
await browser.close();
}
}
This example assumes your provider supplies a CDP URL and that the function runtime has Playwright installed. Use a secret store or encrypted environment configuration for credentials; do not place tokens in source control or return them in error messages. Close contexts and browser connections in cleanup code, including error paths. For a provider’s native Playwright endpoint, follow its documented URL and use chromium.connect() instead; the example’s CDP connection is not interchangeable with that endpoint.
Rank #3
- Adjustable Depth: 23-40'' adjustable depth is used for servers and network equipment, ensuring enough space for AV equipment, components, and cabling, while allowing you to access ports and equipment from multiple sides.
- Strong Load Capacity: Ground-Mounted Load Capacity: 500 lbs, Wall-Mounted Load Capacity: 150 lbs. The av rack is made of carbon steel for better weldability performance and can help save space while meeting your need to place multiple devices.
- User-friendly Design: Ergonomic design makes the open frame av rack easier to use. The additional top panel is able to place other items with more available space. Roller design moves anywhere and anytime, is convenient, and is more energy-saving.
- Complete Accessories: We provide the accessories you need, including 2 x Pallets, 145 x M5*10 Cross Head Screws, 4 x Casters, 4 x M10*50 Expansion Screws,10 x M6*12 Cage Nuts, 1 x Grounding Wire, 1 x User Manual.
- Wide Application: The server rack wall mount maximizes the use of available space, suitable for retail venues, classrooms, offices, and other places where space is limited.
Browserless says remote browser use avoids downloading local browser binaries. For Playwright Test, it recommends a worker-scoped fixture; each parallel worker opens a session and counts against plan concurrency (Browserless connection guidance). Match the test runner’s parallelism to the account’s actual concurrency limit.
Use Lambda as the function entry point
Lambda can receive browser-automation work through a Function URL or API Gateway, but the browser still needs a runtime. One route is to package Playwright and Chromium with the function; another is to call a hosted browser pool. Browserless’s Apr. 29, 2024 tutorial illustrates both approaches, including Lambda packaging and connecting to a hosted pool (Browserless Lambda tutorial). Treat that as vendor guidance from 2024, not as a current AWS-supported recipe or a definitive limits reference.
Before building a local Chromium package, verify current AWS package-size, architecture, timeout, memory, and temporary-storage limits for the chosen deployment format. Check that the Chromium binary, system libraries, and Playwright version match the Lambda runtime and architecture. A package that works in a developer workstation may fail in the deployed runtime because its binary dependencies or launch assumptions differ. If those constraints are unattractive, a remote browser avoids shipping browser binaries in the function, though it adds a network connection and a separate service quota.
Build a reliable request and job boundary
Browser work can take longer and consume more resources than ordinary request parsing. Keep the public handler small and bounded: validate the target and allowed operations, set execution deadlines, and decide whether the caller needs a synchronous result or a job identifier. Long captures or workflows are often better submitted to a queue and completed asynchronously, with the output placed in object storage rather than held open in an HTTP request. Cloudflare documents Queues and object storage as patterns around Browser Run jobs and results (Get started with Browser Run).
- Bound work: enforce navigation and overall job timeouts, cap page count and output size, and avoid unbounded waits for network idleness on pages that never become idle.
- Control concurrency: limit simultaneous sessions and job submissions to the lower of your function capacity and browser-provider quotas; account for retries and parallel test workers.
- Clean up sessions: close pages, contexts, and browsers when the job ends; if sessions are intentionally reused, define expiry, isolation, and cleanup behavior.
- Handle retries carefully: retry transient connection or service failures with a bounded policy, but do not blindly repeat actions that submit forms, make purchases, or otherwise change state.
- Log diagnostically: record job identifiers, durations, outcome categories, and provider request IDs where available, while avoiding page contents, cookies, or credentials unless retention is deliberate.
- Protect access and data: authenticate callers, restrict which URLs can be requested to reduce server-side request risks, and set retention/access controls for screenshots, PDFs, and browser session data.
Troubleshoot common failures
Quick Action or binding is unavailable
Check that the Worker declares the Browser Run binding and that the compatibility date is at least 2026-03-24. If using an older compatibility date, apply the current Wrangler compatibility instructions. Local Quick Action development requires remote mode (Getting started; Wrangler reference).
Rank #4
- Universal 19” Rack Mount Compatibility – Perfect for pro audio, video, IT, and network gear. Compatible with mixers, routers, patch panels, servers, power amps, and more.
- Heavy-Duty Load Capacity – Built to support up to 550 lbs. Ideal for studio gear, DJ setups, server equipment, and AV components that demand serious stability.
- Robust Steel Frame & Design – Made with 1.5mm thick steel and weighs 36 lbs for maximum durability, reduced vibration, and long-term reliability in any setting.
- Mobile & Secure – Preinstalled with 3” industrial-grade caster wheels (lockable), making it easy to move and position your rack exactly where you need it.
- All-In-One Setup Kit Included – Comes with 34 rack screws (5mm & 6mm), a 1U blank spacer, and an assembly tool—ready for fast installation out of the box.
Playwright reports a protocol or method error
Verify whether the URL is the provider’s CDP endpoint or Playwright-native endpoint. Browserless’s CDP endpoint pairs with connectOverCDP(); its native endpoint uses connect() and /playwright. If a feature such as page.route() is missing, check whether the provider requires native protocol mode and whether its Playwright version is compatible (Browserless connection guidance).
The browser connection times out or concurrency is rejected
Confirm that the function can reach the remote endpoint, that the secret URL/token is present, and that the provider permits the requested number of concurrent sessions. Reduce function/test parallelism, bound retries, and check account-specific quotas. Cloudflare’s published Workers Paid defaults are not interchangeable with another plan or vendor’s limits (Browser Run changelog).
Chromium launches locally but fails in Lambda
Check the deployment architecture, binary and system-library compatibility, package contents, launch configuration, and current runtime limits. The older Browserless tutorial is illustrative only; recheck AWS’s current limits and deployment guidance before adopting its packaging details (Browserless Lambda tutorial).
The page is blank, incomplete, or unexpectedly slow
Distinguish browser startup or connection delay from page navigation and rendering time. Set a suitable navigation condition, wait for a selector or application-specific signal when needed, and inspect console/network errors. Avoid assuming that a fixed sleep guarantees completion; a site may load lazily or never reach network idle. Compare the same target, browser location, and wait condition when measuring changes.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup
If your function only needs a clean capture rather than an interactive browser session, ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request returns a PNG, JPEG, WebP, or PDF. For example, this cURL call captures a page as WebP:
Free tools Windows power users keep installed
One-click scans. No signup required.
Best Value
- Adjustable Depth: Depth adjustable from 23" to 40", this open frame server rack accommodates servers and network equipment while providing ample space for A/V gears and cable management. Enjoy easy access to ports and devices from multiple angles.
- High Weight Capacity: Supports up to 300 lbs on the floor (200 lbs when adjusted to maximum depth) and 200 lbs when wall-mounted (depth cannot be adjusted in wall-mounted mode). Made from carbon steel for superior welding performance and durability, this open frame rack is designed to save space while accommodating multiple devices.
- User-Friendly Design: Designed with your convenience in mind, this open frame server rack features an top shelf for extra storage and improved space utilization. The rolling casters let you move it effortlessly wherever you need it, making setup and movement a breeze.
- Widely Applicable: Maximize your space with this adaptable open frame server rack, designed to make the most of every inch. Ideal for retail spots, classrooms, offices, and any area where space is at a premium, it delivers practical solutions for your storage needs.
- Everything You Need: Our open-frame rack comes with fully equipped accessory kit for easy setup and secure installation: 2 x Trays, 4 x Casters, 1 x set of Screws, 16 x M6*12 Cage Nuts, 1 x Grounding Wire, 1 x Internal & External Hex Wrenches, and 1 x User Manual.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie banners and consent notices, newsletter popups, and chat widgets are removed before the shot; those cleanup steps can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response indicates the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The Free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.
Final deployment checklist
- Choose one-shot actions, a reusable remote session, or packaged Chromium based on the task’s actual state and protocol needs.
- Verify compatibility dates, bindings, endpoints, browser features, and current quotas against the provider’s documentation.
- Keep credentials out of code, bound execution time and concurrency, and clean up sessions.
- Test failure handling and deployment behavior in the actual function runtime and region.
- Compare total workload cost and latency with current prices and measured results before committing to a provider or self-hosted package.
Frequently Asked Questions
Does a serverless function include a browser by default?
No. The function needs a managed remote browser or a packaged browser runtime such as Chromium.
Can I use Playwright with a remote browser from Lambda?
Yes, when the remote provider exposes a compatible Playwright or CDP endpoint and the function can reach it. Use the provider’s required connection method.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
When should I use an API screenshot service instead of a browser session?
Use a screenshot API for a one-off capture when you do not need to control an interactive, multi-step browser session.
Quick Recap
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.




