Heavy-JS source capture & code workspace

Starting engine…0%
Press any key to skip
ChroniumXSource Scraper
Checking engine…
v4 engine · headless Chrome + chunk forcing + source-map recovery

Pull the real source
out of any website.

Renders JS-heavy apps in a real browser, force-loads every lazy chunk, dumps CSS-in-JS, and rebuilds original files from source maps. Then edit it all in a full code workspace.

Mission control

Idle
0%ready
Pages
0
Assets
0
Files
0
Recovered
0
Enter a URL and hit Scrape.

Engine settings

Render engine
Max pages10
Max assets400
Crawl depth3
Advanced
Custom slug
Preferred start file
Library

Saved scrapes

Stored locally in IndexedDB — nothing leaves your browser.

No scrape loaded

Run a scrape, then explore and edit every file here.

Ctrl PQuick open file Ctrl Shift FSearch all files Ctrl SSave edits Shift Alt FBeautify minified code
—
about:blank
0 lines
Changelog

What's new in ChroniumX

v4.7.0 NEW

  • Mini update focused on speed: the app runs much smoother, especially during big scrapes and in the workspace.
  • Lighter background: the heavy blurred blobs and animated grain are gone, and the glow now drifts slowly on the GPU.
  • Lighter glass: buttons no longer blur what's behind them, panels use a softer blur, and blur effects were removed from animations and transitions.
  • Console output is drawn in batches, so thousands of log lines no longer freeze the page.
  • The file tree redraws at most once per frame, so filtering and selecting many files feels instant.
  • On small screens the background animation and glass blur switch off completely.

v4.6.0

  • New Live preview mode runs the page's own HTML, CSS and JavaScript together from the scrape, so JS-built apps like Discord and Roblox build themselves just like on the real site.
  • Live runs on an isolated origin (replay.localhost). A service worker there answers every request the page makes (scripts, lazy chunks, CSS, images, fonts, captured API JSON) from the scrape. The page can't reach the app or your saved scrapes.
  • Saved workspace edits show up in Live, so you can change the scraped code and watch the real app run it.
  • The open-in-new-tab button runs Live as a full window, so code that breaks out of frames behaves as it does on the real site.
  • Live reports the page's JavaScript errors and any request the scrape couldn't answer to the Console tab.
  • The typed page keeps all its API responses, captures no longer overwrite each other, and the API capture cap went from 300 to 2,000.

v4.5.0

  • Auto-tune maxes out every site you type: 30 pages and 15,000 assets for heavy apps, 50 pages for most sites, 100 for docs, always with Chrome, images, fonts and every discovery option. It re-tunes whenever the URL changes.
  • The page you typed always keeps all its own code, images and fonts, even after other pages fill the budget. This is why Roblox's login background could go missing on max-size scrapes.
  • The typed page is fully self-contained: every image and font its CSS references gets downloaded too, including ones Chrome never drew (hover states, other screen sizes). Discord's login page now loads nothing from discord.com.
  • Bigger limits: 100 pages, 15,000 assets, 260 MB of code plus 260 MB of images and fonts per scrape, up to 8 MB per image. Local scrapes can run 15 minutes; Vercel stays at 270 s.

v4.4.0

  • Captures everything the page shows: every image, font and SVG that Chrome loads is saved in the scrape (up to 4 MB each, 90 MB per scrape), alongside the code.
  • Preview uses the saved copies through data URLs, so backgrounds, icons and custom fonts (like Roblox's Builder font) look right even though the real site's servers block them for saved copies.
  • The desktop preview is laid out at a real 1366px viewport and scaled to fit, so responsive sites show the same layout Chrome captured instead of a squeezed tablet one. Tablet (768px) and phone (390px) also use real widths.
  • New Screenshot mode: a full-page screenshot Chrome took during the scrape, to compare against the rendered copy.
  • The workspace previews images and fonts (with a type sample), filters them by type, skips them in text search, and exports them correctly in ZIPs.
  • New "Images & fonts" option in engine settings (on by default and with auto-tune).

v4.3.0

  • Lazy-chunk forcing now works on modern webpack and rspack apps like Discord, X and TikTok. Chunk IDs are read from the runtime source (object maps and ternary chains) and from the loaded modules, checked against placeholder names, and loaded through webpack's own handlers, skipping slow retry wrappers.
  • Finds escaped script URLs inside JSON resource maps (Facebook and Instagram rsrc.php bundles, TikTok, X), and treats known code-CDN URLs as real assets.
  • Bundler dependency paths (Vite and others) now resolve against the site base, and worker and loader scripts are collected from the page's resource timing.
  • Bigger limits: 25 MB per file (Discord's main bundle alone is 12.7 MB), 180 MB per scrape, up to 8,000 assets.
  • Faster: 28 parallel downloads and quick timeouts for guessed URLs.
  • Auto-tune now goes for the biggest capture. Heavy apps (Roblox, Discord, Instagram, X, TikTok, Facebook, YouTube, Twitch and more) get 20 pages, 8,000 assets and depth 4. Other sites get up to 30–60 pages. Every discovery option is switched on, including vendor sources.
  • Preview opens the exact page you scraped (for example /NewLogin) instead of the homepage. When a site's original server HTML is mostly empty because JavaScript builds the page, a banner explains it and switches to the rendered snapshot in one click.
  • Benchmark: a maxed Discord scrape captured 6,823 files, 143 MB of JavaScript and 1,774 recovered source files in 39 s, up from 1,121 files and 12 MB.

v4.2.0

  • Deploys to Vercel as-is: Chrome is bundled into the function correctly, plus a modern vercel.json (Node 22, 300 s limit, page-link rewrites) and a Deploy button in the README.
  • Uses 2 Chrome tabs on Vercel's single vCPU and skips GPU setup for faster cold starts.

v4.1.0

  • Every page is rendered in headless Chrome, 5 tabs in parallel. roblox.com/login dropped from about 3 minutes to 15 seconds.
  • Smart network settle replaces networkidle, which never fires on sites with constant background traffic, and trackers and analytics beacons are blocked.
  • Preview shows a frozen, self-contained snapshot of what Chrome drew, including CSS-in-JS, form state, canvases and shadow DOM, so pages no longer come out white.
  • "Please enable JavaScript" fallbacks are stripped, Original mode no longer turns scripts on, and turning scripts on gets in-memory storage so site JS doesn't crash in the sandbox.
  • The progress ring counts in-progress pages, shows each render step, and never sits frozen.

v4.0.0

  • Headless Chrome engine (local Chrome, @sparticuz/chromium on Vercel, or any remote WebSocket browser) that captures every script, stylesheet and API response the page loads.
  • Force-loads every lazy webpack chunk through the live runtime, and reconstructs chunk maps statically when no browser is available.
  • Dumps runtime CSS-in-JS (styled-components, emotion, adopted stylesheets) that never appears in markup.
  • Source-map recovery rebuilds a clean recovered/ project tree; Next.js build manifests, sitemap, robots.txt, asset-manifest and Vite manifest discovery.
  • Files stream in live, the big-bundle size cap went from 200 KB to 3 MB, and storage moved to IndexedDB so large scrapes no longer hit localStorage limits.
  • Monaco code workspace: tabs, edit & save, diff vs original, Prettier beautify, global regex search, quick open, live split preview.
  • New glass UI, animated boot sequence, mission control, device-frame preview, toasts and filterable console.

v3.1.0

  • Deep code discovery for React / Next / Vite / Webpack chunk chains, JSON manifests and source maps.
  • Target URL auto-configures crawl settings based on detected site type.
  • Renderer Health panel, Scrape Quality report and rendered snapshot preview mode.
  • Tabbed pages, settings wizard, folder tree, ZIP / manifest exports and live crawl progress.