Scan any site.
Get the blueprint.
PageCloner crawls a target from your own browser, renders a live preview of every page, fingerprints the stack, collapses the crawl into the handful of templates you'd actually build, measures what the browser actually paints, audits it, and packages a working offline mirror you can open locally.
PageCloner for desktop
The same app, in a native window — but without the one thing that holds the web version back. A browser tab cannot read another site's HTML, so the web build routes every request through public CORS proxies that rate-limit, mangle encodings and sometimes hand back an interstitial instead of the page. The desktop build has a real HTTP client and talks to sites directly.
- No proxies — requests go straight to the origin, so nothing in the middle sees which URLs you scan.
- No rate limits but the site's own, which means deeper crawls actually finish.
- Fewer failures — no interstitials, no mangled encodings, no proxy outages.
- Same analysis — identical modules, identical reports, identical exports.
Built from the same source as this page, on every release. Free and MIT licensed, like the rest of it.
Cloud Clone is not built yet
The web and desktop builds both run on your own machine, which is why they are free — there is no server to pay for. Neither can execute a target's JavaScript safely, or rasterise a true screenshot. Those are the two limits that need someone else's hardware.
Cloud Clone is the planned answer:
- Real rendering — headless Chromium runs the target's JavaScript, so single-page apps are captured as users see them.
- True screenshots — full-page PNGs at any viewport, not sandboxed re-renders.
- Deep crawls — thousands of pages on dedicated egress, beyond what one machine should attempt.
- Scheduled diffs — re-scan on a cadence and get told what changed.
There is no waitlist, no signup and no payment form, because none of it exists yet. When it does, it'll be announced on the repository. Until then the Web and Download builds are the whole product — neither is a demo, and the desktop one already removes the proxy problem.
Press / to focus · Esc aborts a running scan
- Crawlrobots.txt + sitemap aware, breadth-first, bounded
- Previewlive sandboxed renders of every page, at four viewports
- Fingerprint150+ signatures across 20 categories
- Templatespages clustered by DOM shape — the real build list
- Measurereal computed styles — type scale, contrast, tap targets
- Coveragewhich CSS rules the pages reach, and a critical.css
- Design DNApalette, type, tokens, breakpoints, elevation
- Auditaccessibility, performance and SEO, scored and evidenced
- Maplink graph by crawl depth, orphans surfaced
- Scorea difficulty model that tells you what you're in for
- Packageoffline mirror, tokens.css, tailwind config, wget kit
Booting
Blueprint
—
—
—
How it works
-
You give it a URL.
PageCloner reads
robots.txtandsitemap.xmlfirst, then walks the site breadth-first within limits you control — page count, depth, concurrency and a per-request timeout. Nothing is uploaded; the crawl happens in your tab. - It reads what the server sent. Every stylesheet, script, image, font, embed and favicon goes into an inventory — including assets that only ever appear inside a downloaded stylesheet, which is where web fonts usually hide. Around 150 signatures fingerprint the stack.
-
It renders the pages back.
Each page is re-rendered in a sandboxed frame so you can see it, and template
representatives are measured with
getComputedStyleto recover the real type scale, spacing scale and contrast ratios — measured, not parsed. - It hands you the build kit. An offline mirror with every URL rewritten to a local path, plus design tokens, a Tailwind theme, a critical stylesheet, a copy deck, a wget script and the full report as JSON.
Questions people actually ask
Is it legal to clone a website?
Downloading a public page is generally fine. Republishing someone else's markup, copy, imagery or fonts usually is not — that content is copyrighted, and web font licences are frequently locked to a single domain. PageCloner is built for archiving, migrating a site you control, auditing performance and accessibility, competitive research, and using an extracted design system as a reference while you build your own thing. Putting up a copy of someone else's site is not one of those, and no tool changes that.
Does it work on React, Next.js, Vue and other JavaScript apps?
It analyses them, but it does not execute them. PageCloner reads what the server sends, so a fully client-rendered app looks like an empty shell — in the analysis and in the previews alike. That is deliberate: the difficulty score reports it loudly, because "the content is not in the HTML" is the single most useful thing to know before you try to clone a site. Server-rendered and static sites come through complete.
Why does it need a proxy, and can I avoid one?
A browser cannot read another origin's HTML unless that origin sends CORS headers, so requests fall through a ladder of public proxies. Those rate-limit hard. You can avoid them entirely by pointing Settings at your own endpoint — the README has a twenty-line Cloudflare Worker that does it, and it makes every scan faster and more reliable.
What do I actually get to download?
A ZIP containing the crawled pages with every src, href,
srcset and CSS url() rewritten to a local relative path, the
downloaded assets, tokens.css and tokens.measured.css,
critical.css, a Tailwind theme, templates.md,
copy-deck.md, a wget/httrack script, the asset
inventory as CSV, and the full report as JSON. Unzip it and open
index.html from disk.
How is this different from HTTrack or wget?
Those download bytes, which PageCloner also does. What they do not do is tell you what the site is built with, which pages share a layout, what the design system is, how much of the CSS is dead weight, or whether the thing is worth attempting before you spend an afternoon on it. PageCloner treats "what am I actually in for" as the question, and the mirror as the by-product.
Is anything sent to a server?
The scan runs in your browser and the report never leaves it. The one exception is unavoidable and worth stating plainly: when the target does not send CORS headers, the URL you are scanning is sent to whichever public proxy the request falls through to. Configure your own proxy endpoint in Settings and even that stops.
How many pages can it crawl?
The default is 24 pages at depth 2, and the ceiling in Settings is 120. That is a browser
tab's practical limit, not an arbitrary one. For deeper crawls, the generated
clone.sh hands you a rate-limited wget command, and the planned
desktop build lifts the limit properly.
What does it cost?
Nothing, and there is no account. There is no server to pay for, which is exactly why the in-browser mode can stay free and complete rather than crippled. A Cloud mode is sketched for the things a tab genuinely cannot do — but it does not exist yet, and the app says so rather than collecting emails for it.