The 9x Is Lightpanda's Own Number: 5s vs 46s Crawling 933 Pages of Lightpanda's Own Demo Site at 25-Way Concurrency
Watch on TikTok
A 35-second vertical clip at 720x1280, posted 2026-09-07 by @skip_ci (channel name SkipCI), carrying 20,500 views, 762 likes, 2 comments, 254 reposts and 870 saves at capture, scored to the creator's own upload track "оригинальный звук - SkipCI". I read all 18 frames in tokdoc_frames/ against a 94-word Whisper transcript. The visuals are a motion-graphics deck in cream and burnt orange, not a screen recording. Frames 1 and 2 animate a two-bar chart headed "BENCHMARK / 9x FASTER THAN CHROME" with LIGHTPANDA at 0.9 S and HEADLESS CHROME at 8.1 S. Frames 3 and 4 count a number up to "21 GB" under the header "HEADLESS CHROME / GIGABYTES". Frame 5 shows a fake crawl queue, "100 WAITING", with page 01 loading and pages 02 through 06 marked "waiting". Frames 6 and 7 are the only real screen capture: the GitHub page for lightpanda-io/browser showing 34.7k stars, 1.6k forks, 94 watching, 9,268 commits, 51 branches, 23 tags, 70 issues, 18 pull requests, 21 releases, AGPL-3.0 license, and the topic chips browser, browser-automation, cdp, headless, lightpanda, playwright, puppeteer, zig. Frames 8 and 9 stack four layers: AGENT API — CDP, JAVASCRIPT — V8, OWN HTML / DOM, ZIG RUNTIME. Frames 10 and 11 show a crawl.js window containing const browser = await puppeteer.connect({ browserWSEndpoint: "ws://127.0.0.1:9222", }); and await page.goto("https://news.ycombinator.... Frame 12 shows a terminal titled "lightpanda — agent mode" running lightpanda serve --host 127.0.0.1 --port 9222, then [info] listening on ws://127.0.0.1:9222, then lightpanda fetch --dump https://ycombinator.c.... Frames 13 and 14 fill a 10-by-10 grid labelled "ONE RUN / 100" with a 5.0 s timer. Frames 15 and 16 land the payoff cards "9x FASTER" and "16x LESS MEMORY". Frames 17 and 18 are the SkipCI outro with a subscribe button and the line "more open-source tools, every day".
The 9x and 16x figures are real, and they come straight from Lightpanda's README
The clip does not invent its two headline multipliers. The benchmark table at the top of the Lightpanda browser README reads:
| Metric | Lightpanda | Headless Chrome | Difference |
|---|---|---|---|
| Memory (peak, 100 pages) | 123MB | 2GB | ~16x less |
| Execution time (100 pages) | 5s | 46s | ~9x faster |
The transcript matches that table almost word for word:
Nine times faster, 16 times less memory, zero rewrites.
So the numbers trace to a primary source. They are Lightpanda's own published self-comparison, not an independent test, and SkipCI gives no sign of having run anything. I found no third-party reproduction of the 9x figure while researching this.
The on-screen chart numbers are fabricated, and the memory bar is off by an order of magnitude
Frames 1 and 2 show 0.9 S against 8.1 S. Those two values appear nowhere in Lightpanda's README, in the demo repo's BENCHMARKS.md, or on lightpanda.io. They preserve the 9x ratio and drop the real magnitudes, which makes the run look five times shorter than it was.
Frames 3 and 4 are worse. They count to 21 GB for headless Chrome. The README's comparison figure is 2GB. The single largest Chrome memory number anywhere in BENCHMARKS.md is 4.2G, recorded for Chrome running 100 tabs. The clip's 21 GB is roughly ten times the figure it is illustrating and five times the worst case in the source data. Nothing in the transcript says 21 GB either. The voiceover only says:
Headless Chrome eats gigabytes when agents crawl at scale
The burned-in caption at frame 6 also fights its own headline. The large text reads "A CHROMIUM FORK" while the caption below reads "Lightpanda isn't a Chromium". The negation is carried entirely by the caption, so a muted viewer scrubbing that frame reads the opposite of the claim. Frame 7 resolves it to "BUILT FROM ZERO".
The benchmark crawls one synthetic demo site, not 100 real pages
The transcript says:
It just crawled a hundred real pages in five seconds.
BENCHMARKS.md describes something different. The crawler is a Go program using chromedp. It starts at https://demo-browser.lightpanda.io/amiibo/, a demo site Lightpanda hosts on its own domain, and walks its subpages to reach 933 URLs. Every measured run in the summary table covers 933 pages. There is no 100-page measurement in the document.
The 5s and 46s in the README table match two specific rows exactly: "Lightpanda 25 process" at 0:04.81 with a 123.0M peak, and "Chrome 25 tabs" at 0:46.70 with a 2.0G peak. Those are 933-page runs at 25-way concurrency, not 100-page runs. The README's "(100 pages)" label is not supported by the linked methodology. The clip inherits that label and adds the word "real" to it.
Concurrency is what produces the 9x. The same table at one process against one tab gives Lightpanda 0:51.68 and Chrome 1:22.83, a 1.6x gap. Memory moves the other way: 27.2M against 1.3G at single concurrency is about 48x, well above the advertised 16x. At 100-way, Lightpanda's 410.2M against Chrome's 4.2G is about 10x. One multiplier does not describe the curve.
The two Lightpanda documents also disagree on hardware. The README says "a AWS EC2 m5.large instance". BENCHMARKS.md says "an AWS m5.xlarge (x86_64) with a fresh Ubuntu install". I could not determine which one the published numbers came from. The Chrome build is stated: Google Chrome 143.0.7499.169.
"Nothing else changes" is the claim Lightpanda's own issue tracker disputes
The transcript's drop-in promise is flat:
Point puppeteer or playwright at it, nothing else changes.
The Puppeteer half holds up structurally. The browserWSEndpoint: "ws://127.0.0.1:9222" snippet in frame 11 is copied from the README's own Puppeteer example, and the serve command in frame 12 matches ./lightpanda serve --obey-robots --log-format pretty --log-level info --host 127.0.0.1 --port 9222. Playwright connects through chromium.connectOverCDP(), which Lightpanda documents for both JavaScript and Python.
Connecting is not the same as running unchanged. Lightpanda's own open issue #3076, "Improve Playwright Test and CDP Compatibility", filed 2026-07-28, states the position directly:
Although
chromium.connectOverCDP()provides a connection path, standard Playwright Test suites currently require additional integration work and may encounter unsupported commands, incomplete isolation, timeouts, or silently degraded behavior.
Issue #3655, opened 2026-09-27, reports locator.fill() failing on <input type="email"> and type="number" against nightly 1.0.0-nightly.9823 and release 0.4.1 with Playwright 1.63.0, over a plain connectOverCDP() connection. A GitHub search of the repo returns 29 issues and pull requests with "playwright" in the title. "Zero rewrites" is the marketing line, not the engineering state.
The beta label came off the README the same day this video posted
The clip never calls Lightpanda a beta. That framing is now defensible, and it became defensible very recently. Commit e3b2696, dated 2026-09-07 at 08:28 UTC, deleted these two lines from the README's Status section:
Lightpanda is in Beta and currently a work in progress. Stability and coverage are improving and many websites now work. You may still encounter errors or crashes. Please open an issue with specifics if so.
The same commit removed the note "There are hundreds of Web APIs. Developing a browser (even just for headless mode) is a huge task. Coverage will increase over time," and replaced both with a pointer to the daily Web Platform Tests results. The video's upload timestamp is 2026-09-07 at 14:54 UTC, about six and a half hours later.
The WPT data that replaced the disclaimer is public. Pulling the history feed directly gives 1,676,045 passing subtests against 361,802 failing on the 2026-09-07 run, an 82.25% pass rate, and 1,738,954 passing against 368,813 failing on 2026-09-27, an 82.50% pass rate with zero crashes. Roughly one subtest in six still fails. Versioning tells the same story: the newest release is 0.4.1, published 2026-09-15, and the README still directs users to nightly builds rather than a tagged stable release.
The architecture description in the frames is accurate
Frames 8 and 9 get the stack right, which is worth saying because the rest of the graphics do not. Lightpanda is written in Zig, pinned at version 0.15.2 in the README's build prerequisites. It is not a Chromium or WebKit derivative. It ships its own DOM tree and uses html5ever from Servo for HTML parsing and libcurl for HTTP. The "JAVASCRIPT — V8" card is correct and is the honest part: Lightpanda does not write its own JavaScript engine, it embeds V8, the same engine Chrome uses. The speed advantage comes from dropping the rendering engine, not from a faster interpreter. The README's closing section says so: "No graphical rendering engine."
The agent mode in frame 12 is real. lightpanda agent drives the browser from a natural-language task and exports a PandaScript file that replays deterministically with lightpanda run session.js. The repo also ships an MCP server over stdio or HTTP. The clip's lightpanda fetch --dump command matches the README as well.
Key Takeaways
- The 9x and 16x multipliers are Lightpanda's published self-benchmark, reproduced accurately from the README as of 2026-09-27. They are not independently verified by SkipCI or, as far as I found, by anyone else.
- The measurement is 933 URLs from
demo-browser.lightpanda.io/amiibo/, a site Lightpanda hosts, crawled by a Go chromedp program. Calling them "100 real pages" is wrong on both counts, though the "100 pages" label originates in Lightpanda's own README. - The 9x depends on running 25 concurrent processes against 25 Chrome tabs. At one process against one tab the same table shows 1.6x. At single concurrency the memory gap widens to about 48x rather than 16x.
- The chart in frames 1 and 2 shows 0.9 S and 8.1 S. Those numbers appear in no primary source. The real pair is 5s and 46s.
- The 21 GB in frames 3 and 4 is about ten times the 2GB Chrome figure the README compares against, and five times the 4.2G worst case in BENCHMARKS.md.
- "Nothing else changes" conflicts with Lightpanda's own open issue #3076, which warns of "unsupported commands, incomplete isolation, timeouts, or silently degraded behavior" for standard Playwright Test suites.
- Lightpanda deleted its beta warning from the README on 2026-09-07 at 08:28 UTC, roughly six and a half hours before this video posted. Current WPT results as of 2026-09-27 are 82.50% of subtests passing, and the newest release is 0.4.1 from 2026-09-15.
- The architecture graphic is the accurate part: Zig runtime, own HTML and DOM, V8 for JavaScript, CDP as the agent API, no rendering engine.
- Unverified: whether the README's "m5.large" or BENCHMARKS.md's "m5.xlarge" is the machine the published figures came from, because the two Lightpanda documents contradict each other and neither run is timestamped. Also unverified: whether the 9x holds on sites other than Lightpanda's Amiibo demo, since no third-party reproduction surfaced in searching. The GitHub counts in frames 6 and 7 (34.7k stars, 9,268 commits) could not be checked against a snapshot from 2026-09-07; the live API returned 35,599 stars on 2026-09-27, which is consistent with growth over three weeks but does not confirm the frame.
Resources
- lightpanda-io/browser on GitHub — the repo shown in frames 6 and 7. Confirms AGPL-3.0, Zig, the 16x/9x table,
serve,fetch --dump,agent, the PuppeteerbrowserWSEndpointexample, and the V8/html5ever/libcurl dependencies. API read 2026-09-27 returned 35,599 stars, 1,690 forks, 87 open issues. - BENCHMARKS.md in lightpanda-io/demo — the actual methodology. Confirms 933 URLs from the Amiibo demo site, the Go chromedp crawler, AWS m5.xlarge on Ubuntu, Chrome 143.0.7499.169, and the full concurrency table including the 25-process 4.81s / 123.0M and Chrome 25-tab 46.70s / 2.0G rows.
- Commit e3b2696, 2026-09-07 — removes the beta warning and the Web API coverage note from the README, hours before this video posted.
- Issue #3076, Improve Playwright Test and CDP Compatibility — open since 2026-07-28. Lightpanda's own statement that Playwright Test suites need integration work and may degrade silently.
- Issue #3655, select() throws InvalidStateError breaking Playwright fill() — opened 2026-09-27. A concrete Playwright break on
0.4.1overconnectOverCDP(). - Lightpanda Playwright docs — confirms
chromium.connectOverCDP('ws://127.0.0.1:9222')is the supported path for JavaScript and Python. - Lightpanda WPT dashboard and its history feed — 599 daily runs since 2023-12-07. 82.25% pass on 2026-09-07, 82.50% pass on 2026-09-27, zero crashes in both.
- Release 0.4.1, 2026-09-15 — the newest tagged release. Pre-1.0, with nightly builds still the README's recommended install.
- lightpanda.io — repeats the 5s vs 46s and 123MB vs 2GB figures and the "933 real web pages" framing, with no beta or production-readiness caveat as of 2026-09-27.
Published September 7, 2026. Writeup generated from a favorited TikTok.