Website capture
Takes a URL and produces a structured capture: full-page screenshot, cleaned HTML, extracted assets, copy text, sitemap snapshot, plus optional re-deploy as a static clone for design teardown. Uses a managed Chrome runner (Puppeteer over the platform's browser binding) rather than a Docker container.
Overview
- Worker
ultron-capture- Browser
- Managed Chrome via Puppeteer over the platform browser binding (no Docker)
- Workflow
CaptureWorkflow(durable, multi-step)- D1
ultron-capture- R2
ultron-capture-assets- Cron
*/5 * * * *(reprocess stuck)- Pages target
ultron-clones- Vision model
- Kimi (Moonshot-hosted) for the layout teardown summary
Used to seed competitor design audits, build "scrape, learn, iterate" loops for landing pages, and back the carousel engine's exemplar harvest. Capture is destination-agnostic; the same artefacts feed any downstream surface that needs visual or copy reference material.
Worker shape
Capture flow
CaptureWorkflow steps
Each step is checkpointed.
| Step | What it does | On retry |
|---|---|---|
| fetch-page | Open URL in managed Chrome, wait for stability. | Reopen browser tab fresh. |
| snapshot-screens | Three DPR screenshots, full-page. | Re-snapshot. |
| snapshot-html | Rendered HTML + computed style. | Re-read. |
| upload-assets | Push every blob to R2. | Idempotent by content hash; skips already-uploaded. |
| teardown | Kimi vision summary. | Re-prompt with same inputs. |
| deploy-clone (optional) | Push to the Pages project. | Re-deploy under same slug. |
| finalise | Update D1, fire webhook. | Re-fire webhook with same payload. |
Output assets
Cloning to a static surface
The optional Pages deploy.
When the caller sets options.deployClone: true, the workflow rewrites the snapshot HTML to reference the R2 public URLs for its assets, then pushes the resulting directory to the ultron-clones Pages project under a per-capture slug. The capture row's cloneUrl field is set to the resulting static URL. Useful for design teardown sessions where engineers want a live mirror of a competitor page to inspect in their devtools.