kitesurf · bench

← back to latest

Viewing archived run 2026-06-06 · commit 9afdd69. View latest →

Backend comparison — median wall time

One grouped bar per page, one bar per backend. Bar height = median wall time from the orchestrator's performance.now() span. Hover a bar for median/p95/p99. Missing or all-errored cells render as a thin grey stub.

screenshot · wall

0.0ms 1250ms 2500ms 3750ms 5000ms kitesurf · median 595ms · p95 617ms · p99 617mscontainer · median 323ms · p95 355ms · p99 355ms Example Domainexample-comkitesurf · median 1198ms · p95 1710ms · p99 1710mscontainer · median 729ms · p95 792ms · p99 792ms Hacker Newshacker-newskitesurf · median 2052ms · p95 2147ms · p99 2147mscontainer · median 918ms · p95 930ms · p99 930ms Cloudflare Developer Docscf-developerskitesurf · median 1905ms · p95 2584ms · p99 2584mscontainer · median 917ms · p95 968ms · p99 968ms The Cloudflare Blogcf-blogkitesurf · median 1198ms · p95 1294ms · p99 1294mscontainer · median 682ms · p95 777ms · p99 777ms Wikipedia Portalwikipedia-portalkitesurf · median 2128ms · p95 2693ms · p99 2693mscontainer · median 1256ms · p95 1531ms · p99 1531ms Der Spiegelspiegelkitesurf · median 3221ms · p95 3562ms · p99 3562mscontainer · median 2014ms · p95 2170ms · p99 2170ms El Mundoelmundokitesurf · median 655ms · p95 964ms · p99 964mscontainer · median 387ms · p95 401ms · p99 401ms TodoMVC · JavaScript ES6todomvc-js-es6kitesurf · median 712ms · p95 1278ms · p99 1278mscontainer · median 415ms · p95 466ms · p99 466ms TodoMVC · Reacttodomvc-reactkitesurf · median 942ms · p95 1065ms · p99 1065mscontainer · median 395ms · p95 443ms · p99 443ms TodoMVC · Vuetodomvc-vuekitesurf · median 1516ms · p95 1813ms · p99 1813mscontainer · median 472ms · p95 523ms · p99 523ms TodoMVC · Angulartodomvc-angularkitesurf · median 662ms · p95 1017ms · p99 1017mscontainer · median 381ms · p95 428ms · p99 428ms TodoMVC · Preacttodomvc-preact ks (kitesurf)ct (container)

html · wall

0.0ms 625ms 1250ms 1875ms 2500ms kitesurf · median 591ms · p95 1079ms · p99 1079mscontainer · median 144ms · p95 147ms · p99 147ms Example Domainexample-comkitesurf · median 765ms · p95 804ms · p99 804mscontainer · median 515ms · p95 813ms · p99 813ms Hacker Newshacker-newskitesurf · median 1654ms · p95 1848ms · p99 1848mscontainer · median 662ms · p95 756ms · p99 756ms Cloudflare Developer Docscf-developerskitesurf · median 1782ms · p95 1852ms · p99 1852mscontainer · median 822ms · p95 1107ms · p99 1107ms The Cloudflare Blogcf-blogkitesurf · median 1833ms · p95 2157ms · p99 2157mscontainer · median 412ms · p95 496ms · p99 496ms Wikipedia Portalwikipedia-portalkitesurf · median 1834ms · p95 1869ms · p99 1869mscontainer · median 1434ms · p95 1460ms · p99 1460ms Der Spiegelspiegelkitesurf · median 2436ms · p95 2960ms · p99 2960mscontainer · median 1845ms · p95 2003ms · p99 2003ms El Mundoelmundokitesurf · median 614ms · p95 885ms · p99 885mscontainer · median 225ms · p95 229ms · p99 229ms TodoMVC · JavaScript ES6todomvc-js-es6kitesurf · median 663ms · p95 957ms · p99 957mscontainer · median 249ms · p95 284ms · p99 284ms TodoMVC · Reacttodomvc-reactkitesurf · median 851ms · p95 957ms · p99 957mscontainer · median 218ms · p95 242ms · p99 242ms TodoMVC · Vuetodomvc-vuekitesurf · median 1454ms · p95 1782ms · p99 1782mscontainer · median 285ms · p95 299ms · p99 299ms TodoMVC · Angulartodomvc-angularkitesurf · median 614ms · p95 1241ms · p99 1241mscontainer · median 201ms · p95 216ms · p99 216ms TodoMVC · Preacttodomvc-preact ks (kitesurf)ct (container)

Backend comparison — median backend CPU time

Server-side CPU per call. Kitesurf reports $workers.cpuTimeMs from Workers Observability; container reports Node-side CPU via timing headers. Browser-run doesn't expose a CPU counter — bars render as a grey stub.

screenshot · cpu

0.0ms 1250ms 2500ms 3750ms 5000ms kitesurf · median 70ms · p95 79ms · p99 79mscontainer · median 495ms · p95 555ms · p99 555ms Example Domainexample-comkitesurf · median 242ms · p95 592ms · p99 592mscontainer · median 760ms · p95 998ms · p99 998ms Hacker Newshacker-newskitesurf · median 991ms · p95 1059ms · p99 1059mscontainer · median 1991ms · p95 2152ms · p99 2152ms Cloudflare Developer Docscf-developerskitesurf · median 619ms · p95 631ms · p99 631mscontainer · median 2020ms · p95 2076ms · p99 2076ms The Cloudflare Blogcf-blogkitesurf · median 477ms · p95 526ms · p99 526mscontainer · median 1556ms · p95 1805ms · p99 1805ms Wikipedia Portalwikipedia-portalkitesurf · median 1230ms · p95 1424ms · p99 1424mscontainer · median 2532ms · p95 3050ms · p99 3050ms Der Spiegelspiegelkitesurf · median 1869ms · p95 1941ms · p99 1941mscontainer · median 4774ms · p95 5365ms · p99 5365ms El Mundoelmundokitesurf · median 103ms · p95 107ms · p99 107mscontainer · median 701ms · p95 730ms · p99 730ms TodoMVC · JavaScript ES6todomvc-js-es6kitesurf · median 132ms · p95 280ms · p99 280mscontainer · median 772ms · p95 890ms · p99 890ms TodoMVC · Reacttodomvc-reactkitesurf · median 258ms · p95 355ms · p99 355mscontainer · median 772ms · p95 798ms · p99 798ms TodoMVC · Vuetodomvc-vuekitesurf · median 539ms · p95 622ms · p99 622mscontainer · median 869ms · p95 1078ms · p99 1078ms TodoMVC · Angulartodomvc-angularkitesurf · median 106ms · p95 110ms · p99 110mscontainer · median 714ms · p95 973ms · p99 973ms TodoMVC · Preacttodomvc-preact ks (kitesurf)ct (container)

html · cpu

0.0ms 1250ms 2500ms 3750ms 5000ms kitesurf · median 44ms · p95 242ms · p99 242mscontainer · median 287ms · p95 317ms · p99 317ms Example Domainexample-comkitesurf · median 85ms · p95 106ms · p99 106mscontainer · median 522ms · p95 643ms · p99 643ms Hacker Newshacker-newskitesurf · median 669ms · p95 738ms · p99 738mscontainer · median 1446ms · p95 1787ms · p99 1787ms Cloudflare Developer Docscf-developerskitesurf · median 479ms · p95 486ms · p99 486mscontainer · median 1800ms · p95 3487ms · p99 3487ms The Cloudflare Blogcf-blogkitesurf · median 253ms · p95 497ms · p99 497mscontainer · median 913ms · p95 1189ms · p99 1189ms Wikipedia Portalwikipedia-portalkitesurf · median 965ms · p95 972ms · p99 972mscontainer · median 2674ms · p95 2783ms · p99 2783ms Der Spiegelspiegelkitesurf · median 1203ms · p95 1236ms · p99 1236mscontainer · median 4176ms · p95 4386ms · p99 4386ms El Mundoelmundokitesurf · median 54ms · p95 65ms · p99 65mscontainer · median 471ms · p95 511ms · p99 511ms TodoMVC · JavaScript ES6todomvc-js-es6kitesurf · median 79ms · p95 83ms · p99 83mscontainer · median 535ms · p95 632ms · p99 632ms TodoMVC · Reacttodomvc-reactkitesurf · median 206ms · p95 255ms · p99 255mscontainer · median 488ms · p95 523ms · p99 523ms TodoMVC · Vuetodomvc-vuekitesurf · median 472ms · p95 552ms · p99 552mscontainer · median 604ms · p95 645ms · p99 645ms TodoMVC · Angulartodomvc-angularkitesurf · median 56ms · p95 173ms · p99 173mscontainer · median 455ms · p95 472ms · p99 472ms TodoMVC · Preacttodomvc-preact ks (kitesurf)ct (container)

Backend comparison — median memory

Per-page memory at end of render. The two backends report different things — bars are directionally comparable, not strictly apples-to-apples.

In short: kitesurf overcounts (high-water peak across the whole renderer); container undercounts (JS heap only). The truth for either backend lives somewhere between the two columns.

screenshot · mem

0MiB 24MiB 48MiB 72MiB 95MiB kitesurf · median 15MiB · p95 15MiB · p99 15MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB Example Domainexample-comkitesurf · median 20MiB · p95 20MiB · p99 20MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB Hacker Newshacker-newskitesurf · median 27MiB · p95 29MiB · p99 29MiBcontainer · median 4MiB · p95 4MiB · p99 4MiB Cloudflare Developer Docscf-developerskitesurf · median 46MiB · p95 46MiB · p99 46MiBcontainer · median 4MiB · p95 4MiB · p99 4MiB The Cloudflare Blogcf-blogkitesurf · median 27MiB · p95 27MiB · p99 27MiBcontainer · median 2MiB · p95 3MiB · p99 3MiB Wikipedia Portalwikipedia-portalkitesurf · median 91MiB · p95 91MiB · p99 91MiBcontainer · median 8MiB · p95 8MiB · p99 8MiB Der Spiegelspiegelkitesurf · median 68MiB · p95 68MiB · p99 68MiBcontainer · median 20MiB · p95 21MiB · p99 21MiB El Mundoelmundokitesurf · median 16MiB · p95 16MiB · p99 16MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB TodoMVC · JavaScript ES6todomvc-js-es6kitesurf · median 16MiB · p95 16MiB · p99 16MiBcontainer · median 3MiB · p95 3MiB · p99 3MiB TodoMVC · Reacttodomvc-reactkitesurf · median 16MiB · p95 16MiB · p99 16MiBcontainer · median 3MiB · p95 3MiB · p99 3MiB TodoMVC · Vuetodomvc-vuekitesurf · median 16MiB · p95 16MiB · p99 16MiBcontainer · median 6MiB · p95 6MiB · p99 6MiB TodoMVC · Angulartodomvc-angularkitesurf · median 16MiB · p95 16MiB · p99 16MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB TodoMVC · Preacttodomvc-preact ks (kitesurf)ct (container)

html · mem

0MiB 24MiB 48MiB 72MiB 95MiB kitesurf · median 10MiB · p95 10MiB · p99 10MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB Example Domainexample-comkitesurf · median 13MiB · p95 13MiB · p99 13MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB Hacker Newshacker-newskitesurf · median 29MiB · p95 29MiB · p99 29MiBcontainer · median 4MiB · p95 4MiB · p99 4MiB Cloudflare Developer Docscf-developerskitesurf · median 45MiB · p95 46MiB · p99 46MiBcontainer · median 3MiB · p95 4MiB · p99 4MiB The Cloudflare Blogcf-blogkitesurf · median 20MiB · p95 20MiB · p99 20MiBcontainer · median 3MiB · p95 3MiB · p99 3MiB Wikipedia Portalwikipedia-portalkitesurf · median 91MiB · p95 91MiB · p99 91MiBcontainer · median 8MiB · p95 8MiB · p99 8MiB Der Spiegelspiegelkitesurf · median 50MiB · p95 51MiB · p99 51MiBcontainer · median 20MiB · p95 21MiB · p99 21MiB El Mundoelmundokitesurf · median 11MiB · p95 11MiB · p99 11MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB TodoMVC · JavaScript ES6todomvc-js-es6kitesurf · median 11MiB · p95 11MiB · p99 11MiBcontainer · median 3MiB · p95 3MiB · p99 3MiB TodoMVC · Reacttodomvc-reactkitesurf · median 11MiB · p95 11MiB · p99 11MiBcontainer · median 3MiB · p95 3MiB · p99 3MiB TodoMVC · Vuetodomvc-vuekitesurf · median 11MiB · p95 11MiB · p99 11MiBcontainer · median 6MiB · p95 7MiB · p99 7MiB TodoMVC · Angulartodomvc-angularkitesurf · median 11MiB · p95 11MiB · p99 11MiBcontainer · median 2MiB · p95 2MiB · p99 2MiB TodoMVC · Preacttodomvc-preact ks (kitesurf)ct (container)

Run 2026-06-06 · per-metric tables

Same layout as npm run bench: per endpoint, tables for wall, cpu, mem. Each backend's median/p95/p99 side by side. ks = kitesurf, br = browser-run, ct = container. = backend doesn't report this metric. err = every recorded run for that combination errored. See the memory chart's caption above for the per-backend metric semantics.

screenshot

wall — screenshot
page slug ks medianks p95ks p99ct medianct p95ct p99
Example Domain example-com 595ms617ms617ms323ms355ms355ms
Hacker News hacker-news 1198ms1710ms1710ms729ms792ms792ms
Cloudflare Developer Docs cf-developers 2052ms2147ms2147ms918ms930ms930ms
The Cloudflare Blog cf-blog 1905ms2584ms2584ms917ms968ms968ms
Wikipedia Portal wikipedia-portal 1198ms1294ms1294ms682ms777ms777ms
Der Spiegel spiegel 2128ms2693ms2693ms1256ms1531ms1531ms
El Mundo elmundo 3221ms3562ms3562ms2014ms2170ms2170ms
TodoMVC · JavaScript ES6 todomvc-js-es6 655ms964ms964ms387ms401ms401ms
TodoMVC · React todomvc-react 712ms1278ms1278ms415ms466ms466ms
TodoMVC · Vue todomvc-vue 942ms1065ms1065ms395ms443ms443ms
TodoMVC · Angular todomvc-angular 1516ms1813ms1813ms472ms523ms523ms
TodoMVC · Preact todomvc-preact 662ms1017ms1017ms381ms428ms428ms
cpu — screenshot
page slug ks medianks p95ks p99ct medianct p95ct p99
Example Domain example-com 70ms79ms79ms495ms555ms555ms
Hacker News hacker-news 242ms592ms592ms760ms998ms998ms
Cloudflare Developer Docs cf-developers 991ms1059ms1059ms1991ms2152ms2152ms
The Cloudflare Blog cf-blog 619ms631ms631ms2020ms2076ms2076ms
Wikipedia Portal wikipedia-portal 477ms526ms526ms1556ms1805ms1805ms
Der Spiegel spiegel 1230ms1424ms1424ms2532ms3050ms3050ms
El Mundo elmundo 1869ms1941ms1941ms4774ms5365ms5365ms
TodoMVC · JavaScript ES6 todomvc-js-es6 103ms107ms107ms701ms730ms730ms
TodoMVC · React todomvc-react 132ms280ms280ms772ms890ms890ms
TodoMVC · Vue todomvc-vue 258ms355ms355ms772ms798ms798ms
TodoMVC · Angular todomvc-angular 539ms622ms622ms869ms1078ms1078ms
TodoMVC · Preact todomvc-preact 106ms110ms110ms714ms973ms973ms
mem — screenshot
page slug ks medianks p95ks p99ct medianct p95ct p99
Example Domain example-com 15MiB15MiB15MiB2MiB2MiB2MiB
Hacker News hacker-news 20MiB20MiB20MiB2MiB2MiB2MiB
Cloudflare Developer Docs cf-developers 27MiB29MiB29MiB4MiB4MiB4MiB
The Cloudflare Blog cf-blog 46MiB46MiB46MiB4MiB4MiB4MiB
Wikipedia Portal wikipedia-portal 27MiB27MiB27MiB2MiB3MiB3MiB
Der Spiegel spiegel 91MiB91MiB91MiB8MiB8MiB8MiB
El Mundo elmundo 68MiB68MiB68MiB20MiB21MiB21MiB
TodoMVC · JavaScript ES6 todomvc-js-es6 16MiB16MiB16MiB2MiB2MiB2MiB
TodoMVC · React todomvc-react 16MiB16MiB16MiB3MiB3MiB3MiB
TodoMVC · Vue todomvc-vue 16MiB16MiB16MiB3MiB3MiB3MiB
TodoMVC · Angular todomvc-angular 16MiB16MiB16MiB6MiB6MiB6MiB
TodoMVC · Preact todomvc-preact 16MiB16MiB16MiB2MiB2MiB2MiB

html

wall — html
page slug ks medianks p95ks p99ct medianct p95ct p99
Example Domain example-com 591ms1079ms1079ms144ms147ms147ms
Hacker News hacker-news 765ms804ms804ms515ms813ms813ms
Cloudflare Developer Docs cf-developers 1654ms1848ms1848ms662ms756ms756ms
The Cloudflare Blog cf-blog 1782ms1852ms1852ms822ms1107ms1107ms
Wikipedia Portal wikipedia-portal 1833ms2157ms2157ms412ms496ms496ms
Der Spiegel spiegel 1834ms1869ms1869ms1434ms1460ms1460ms
El Mundo elmundo 2436ms2960ms2960ms1845ms2003ms2003ms
TodoMVC · JavaScript ES6 todomvc-js-es6 614ms885ms885ms225ms229ms229ms
TodoMVC · React todomvc-react 663ms957ms957ms249ms284ms284ms
TodoMVC · Vue todomvc-vue 851ms957ms957ms218ms242ms242ms
TodoMVC · Angular todomvc-angular 1454ms1782ms1782ms285ms299ms299ms
TodoMVC · Preact todomvc-preact 614ms1241ms1241ms201ms216ms216ms
cpu — html
page slug ks medianks p95ks p99ct medianct p95ct p99
Example Domain example-com 44ms242ms242ms287ms317ms317ms
Hacker News hacker-news 85ms106ms106ms522ms643ms643ms
Cloudflare Developer Docs cf-developers 669ms738ms738ms1446ms1787ms1787ms
The Cloudflare Blog cf-blog 479ms486ms486ms1800ms3487ms3487ms
Wikipedia Portal wikipedia-portal 253ms497ms497ms913ms1189ms1189ms
Der Spiegel spiegel 965ms972ms972ms2674ms2783ms2783ms
El Mundo elmundo 1203ms1236ms1236ms4176ms4386ms4386ms
TodoMVC · JavaScript ES6 todomvc-js-es6 54ms65ms65ms471ms511ms511ms
TodoMVC · React todomvc-react 79ms83ms83ms535ms632ms632ms
TodoMVC · Vue todomvc-vue 206ms255ms255ms488ms523ms523ms
TodoMVC · Angular todomvc-angular 472ms552ms552ms604ms645ms645ms
TodoMVC · Preact todomvc-preact 56ms173ms173ms455ms472ms472ms
mem — html
page slug ks medianks p95ks p99ct medianct p95ct p99
Example Domain example-com 10MiB10MiB10MiB2MiB2MiB2MiB
Hacker News hacker-news 13MiB13MiB13MiB2MiB2MiB2MiB
Cloudflare Developer Docs cf-developers 29MiB29MiB29MiB4MiB4MiB4MiB
The Cloudflare Blog cf-blog 45MiB46MiB46MiB3MiB4MiB4MiB
Wikipedia Portal wikipedia-portal 20MiB20MiB20MiB3MiB3MiB3MiB
Der Spiegel spiegel 91MiB91MiB91MiB8MiB8MiB8MiB
El Mundo elmundo 50MiB51MiB51MiB20MiB21MiB21MiB
TodoMVC · JavaScript ES6 todomvc-js-es6 11MiB11MiB11MiB2MiB2MiB2MiB
TodoMVC · React todomvc-react 11MiB11MiB11MiB3MiB3MiB3MiB
TodoMVC · Vue todomvc-vue 11MiB11MiB11MiB3MiB3MiB3MiB
TodoMVC · Angular todomvc-angular 11MiB11MiB11MiB6MiB7MiB7MiB
TodoMVC · Preact todomvc-preact 11MiB11MiB11MiB2MiB2MiB2MiB

History

date commit kitesurf · screenshotkitesurf · htmlcontainer · screenshotcontainer · html note
2026-07-11 17:4615ac2dc1195ms1488ms884ms589ms
2026-07-05 14:03be117861645ms1468ms915ms677msboa eval-less runtime — run page JS (Runtime.evaluate + dynamic import) without V8 code-gen-from-string @lduarte
2026-07-02 00:361f76dfb560ms547ms696ms512msReduce wasm peak memory ~23% (emoji SVG-strip + node-slab pre-size + lazy serif) @lduarte
2026-06-15 10:3678edd791008ms996ms683ms473ms
2026-06-06 10:289afdd69727ms1457ms778ms548ms
2026-06-05 15:46c8a9da7715ms597ms1080ms920msRefactor autoresearch for memory optimization + port wasm-memprof + autoresearch memory opts @lduarte
2026-06-05 15:34c8a9da7715ms597ms1080ms920msRefactor autoresearch for memory optimization + port wasm-memprof + autoresearch memory opts @lduarte
2026-06-02 09:1536cc68a950ms1060ms858ms572ms
2026-06-02 00:32bc688751088ms1234ms734ms520ms
2026-06-02 00:1584bf4a3835ms1360ms521ms356ms
2026-06-02 00:04885052c923ms1079ms693ms505ms
2026-06-01 23:56d1fa08a1173ms1182ms879ms480ms
2026-06-01 23:304e0f0e71358ms1181ms697ms460ms
2026-05-31 19:29cd6a6d51109ms869ms864ms610ms
2026-05-25 22:39caf5678633ms658ms608ms369msrerun with concurrent-producer wallMs fix
2026-05-25 21:37a4d9bf51442ms1151ms741ms410mstail-worker CPU attribution: now includes page-script wasm/JS cost
2026-05-25 11:4804351641359ms1194ms916ms618ms
2026-05-25 11:4804351641362ms1160ms823ms714ms
2026-05-25 11:4804351641215ms1020ms704ms487ms
2026-05-25 11:4804351641172ms925ms706ms394ms

Archived report (markdown)

# kitesurf bench report — 2026-06-06

commit: `9afdd69` · backends: kitesurf, container · endpoints: screenshot, html · runs/combo: 5 (+ 2 warmup)
target: https://kitesurf-bench.rendering.cfdata.org

## Summary (median wall time)

| Page | kitesurf/screenshot | kitesurf/html | container/screenshot | container/html |
|---|--:|--:|--:|--:|
| Example Domain | 556ms | 721ms | 380ms | 198ms |
| Hacker News | 906ms | 617ms | 845ms | 591ms |
| Cloudflare Developer Docs | 1280ms | 1175ms | 987ms | 749ms |
| The Cloudflare Blog | 1368ms | 1386ms | 1193ms | 902ms |
| Wikipedia Portal | 727ms | 1457ms | 778ms | 548ms |
| Der Spiegel | 1102ms | 1076ms | 1367ms | 1620ms |
| El Mundo | 1564ms | 1375ms | 2162ms | 1928ms |
| TodoMVC · JavaScript ES6 | 499ms | 483ms | 445ms | 283ms |
| TodoMVC · React | 512ms | 514ms | 513ms | 343ms |
| TodoMVC · Vue | 693ms | 611ms | 448ms | 285ms |
| TodoMVC · Angular | 1118ms | 1052ms | 544ms | 355ms |
| TodoMVC · Preact | 490ms | 489ms | 444ms | 260ms |

Notes:

- Values are run medians across recorded runs. p95 and min/max are in the JSON.
- Backends are dispatched from inside the `kitesurf-bench` worker via RPC bindings: `env.KITESURF.fetch(/screenshot|/html)` for kitesurf (service binding to the engine), `env.BROWSER.quickAction('screenshot'|'content', …)` for browser-run (Browser Rendering RPC), and `env.CONTAINER_HOST.fetch(…)` for container (sibling worker fronting its container backend). Wall time is the orchestrator's `performance.now()` span; `backendWallMs` / `backendCpuMs` in the JSON come from Workers Observability (kitesurf) or container-side timing headers (container). None of the measurement paths traverse the public internet.
- A cell shows `—` when every recorded run for that combination errored. See `rows` in the JSON for individual failure messages.

bundle built 2026-07-11T17:46:18.286Z