Skip to main content

migration / Checked 2026-10-18

Move browser download workflows from Lightpanda to Notte

A migration plan for browser download workflows: retain the business check, replace Lightpanda's provider-owned resources, and prove the Notte workflow before cutover.

Decide whether this move earns its cost

A signed-in job requests a report from a website and transfers the completed file to application storage. A download beginning is not the delivery outcome.

Lightpanda introduces a browser-engine decision. Keep it on the shortlist when its supported actions fit the real pages you use; a successful CDP connection or text task does not establish visual or full-browser equivalence with the proposed Notte workflow.

Notte belongs on the shortlist when saved account state and an executable browser workflow simplify the report job. Confirm the chosen file-transfer API and storage boundary in the current docs before moving the delivery step.

A working download-to-storage pipeline is a reason to retain the current provider until an equivalent artifact path is demonstrated. Neither a replay nor a successful page navigation proves that a file arrived.

Keep the result contract stable

A controlled report with a known filename, expected content marker and application-owned destination.

The application receives the complete expected file, verifies its content marker and associates it with the originating account and job.

Preserve the evidence contract across the move: Website report ID, file byte count, content verification and destination object reference.

Map the workflow's resources

RequirementLightpandaNotte
Code executionExternal workerPython Functions
Scheduled executionExternal schedulerNative
Recordings / replayNot establishedDocumented

Sources: lightpanda.io [1] ↗docs.notte.cc [2] ↗docs.notte.cc [3] ↗

Where the code runs

Lightpanda: The reviewed documentation establishes a browser engine and hosted access, not a deployed Python Function contract. A separate automation process must have its own deployment, triggers and monitoring design.

Notte: Functions deploy Python code with a run() entry point. Invoke them over HTTP or with an SDK, inspect run history, and roll back code by redeploying an earlier version as the latest version.

Sources: lightpanda.io [1] ↗docs.notte.cc [2] ↗

Deployment ownership

Lightpanda: Compare hosted Lightpanda access with operating the engine yourself. The engine's supported APIs and website compatibility remain relevant in either deployment.

Notte: Use a remote browser from your existing process or deploy the browser automation as a Notte Function. These choices put lifecycle, scheduling and monitoring responsibilities in different places.

Sources: lightpanda.io [1] ↗docs.notte.cc [2] ↗

Pricing model

Lightpanda: Use the cloud billing unit and account limits for hosted access. A lower rate only helps if the target pages and required actions complete correctly on the selected engine.

Notte: The public usage rates are $0.01 per browser-hour, $0.05 per Function-hour and $10 per GB of managed proxy traffic. Paid plans return their price as usage credits. Price the relevant meters and plan eligibility for the workload.

Sources: lightpanda.io [1] ↗notte.cc [2] ↗

Cut over one responsibility at a time

For this Lightpanda-to-Notte migration, keep the business assertion outside provider resource management. Source profile, connection, file and execution IDs are not valid target IDs; use a documented transfer path or establish the corresponding resource in Notte.

Retain source job history and a rollback route until the target pilot passes. A migration checklist is not evidence that saved state or runtime behavior is automatically portable.

  • Separate website report generation from provider file retrieval in the current code.
  • Keep the destination and content check unchanged while replacing the retrieval path.
  • Test delayed and interrupted downloads before switching scheduled report delivery.

Sources: lightpanda.io [1] ↗docs.notte.cc [2] ↗docs.notte.cc [3] ↗

A proposed acceptance case

This is an evaluation design, not a claim that this workflow has been executed successfully on every provider.

Part of the testRequired observation
Controlled inputA controlled report with a known filename, expected content marker and application-owned destination.
Pass conditionThe application receives the complete expected file, verifies its content marker and associates it with the originating account and job.
Negative caseClose the browser before a deliberately delayed download completes. The job must detect the missing or partial artifact instead of reporting a delivered report.
Evidence to retainWebsite report ID, file byte count, content verification and destination object reference.

A reason to delay or keep the source

Close the browser before a deliberately delayed download completes. The job must detect the missing or partial artifact instead of reporting a delivered report.

Lightpanda: CDP connectivity does not establish complete Chromium compatibility. Validate rendering-dependent steps, downloads and browser features with the selected engine before a migration.

Delay cutover when the target's selected plan, required artifact path or supported website-account flow is not established. Resolve that gap before moving real jobs, even if the rate comparison favors the target.

Sources: lightpanda.io [1] ↗notte.cc [2] ↗

Keep comparing

Put the workflow to the test.

Try Notte Read the quickstart ↗