Skip to main content

Everpage — Website Copier & Offline Mirror Tool

License: MIT Python 3.10+ Deps Platform

The open-source HTTrack alternative for the modern web. Download entire websites — JavaScript-rendered SPAs, hashed bundles, web workers, WASM, 3D scenes, fonts, media — rewritten to local paths, served offline with one double-click, and headless-verified. Where wget and HTTrack save empty shells, Everpage saves the working site.

website-copier · offline-mirror · website-downloader · save-website-offline · httrack-alternative · mirror-website · spa-archiver


About Everpage

Most of the web is already gone. Sites redesign, startups die, platforms rot — and the tools that promised to preserve them either saved empty JavaScript shells or locked the copy inside an archive only specialists can open.

Everpage exists to keep the whole thing: every page, forever. Not a screenshot, not a folder of broken links — the complete working site, every file, bootable offline with one double-click. It was built the hard way, against production Three.js worlds and CMS sprawl, until file-level parity and clean headless boots stopped being aspirations and became the test suite.

The name is the promise. If a page was public, Everpage keeps it.


Quickstart

pip install everpage
playwright install chromium   # one-time, for the trace + verify stages

From source:

git clone https://github.com/unknown235669-cmyk/everpage
cd everpage
pip install -r requirements.txt

Interactive menu:

python -m everpage.tui

Download a full website for offline browsing in one command:

python -m everpage.cli https://example.com/ -o ./example-clone --port 8919

Useful flags: --pages about,pricing · --max-pages 200 (sitemap + link crawl cap) · --no-crawl · --no-trace (skip the headless pass — faster, misses runtime-only assets).

Every offline mirror ships OPEN-ME.bat (or python serve_<name>.py <port>) for instant local preview — open the cloned website in your browser with zero setup.

Proven where it matters

Everpage has cloned production sites end to end — Three.js 3D worlds, WebGL portfolios, WordPress portals, Astro CMS sites — and every one boots offline clean. Don't take our word for it: paste a link and watch it happen.

Everpage vs the best website copiers

Researched against the tools' own docs (October 2026): websnap, SingleFile FAQ, Browsertrix docs, independent 2026 roundup.

Everpage HTTrack (3.49, dormant since 2017) SingleFile (+CLI) websnap (2026) Browsertrix Commercial copiers
Full-site crawl (sitemap + links, pagination) ✅ up to 200 pages ✅ ⚠️ URL list, flaky at scale ✅ ✅ ⚠️ varies
JS-bundle / hashed-chunk apps that boot ✅ verified ❌ empty shell ⚠️ single page only ✅ snapshots ✅ in replay ⚠️ varies
Runtime-built asset URLs (JS templates) ✅ mined + traced ❌ ❌ ✅ observed ✅ recorded ⚠️ varies
Interactive states (modals, tabs, clicks) ❌ passive trace only ❌ ❌ scripts stripped by default ✅ state-tree crawl ⚠️ replay only ⚠️ varies
Workers / WASM / 3D that boot offline ✅ verified ❌ ❌ ⚠️ snapshot-oriented ⚠️ inside WARC only ⚠️ varies
Double-click working preview ✅ OPEN-ME.bat ⚠️ fix links yourself ✅ single file ✅ static HTML ❌ replay stack needed ⚠️ varies
Boot verification (errors + shots) ✅ built in ❌ ❌ ❌ ⚠️ crawl reports ❌
Login-walled content ❌ ❌ ❌ ✅ documented ✅ via profiles ⚠️ varies
Backend logic / DB / payments ❌ stubbed ❌ ❌ ❌ ❌ ❌
Setup weight pip + one browser preinstalled extension / npm npm + browser docker / k8s signup + $$$

One independent roundup concluded that a working offline website is delivered by "none of the above." That is the gap Everpage was built to close — and unlike every other row in that roundup, it ships measured proof (see results above) instead of promises.

How it works

Stage What it does
fetch Homepage + manifest with real-browser headers, gzip handled
detect Framework fingerprint (Next / Vite / Astro / WordPress / Three.js…)
crawl Sitemap + same-origin links as first-class pages, recursion included
trace One headless pass records URLs the app resolves at runtime
assets / chunks Bundle mining: hashed chunks, loader roots, backtick templates (incl. multi-var terrain/index shapes), ID pools, ternary alternatives, LOD-gap interpolation, absolute same-origin worker URLs
rewrite Root-absolute → depth-relative paths; absolute same-origin URLs folded to local in HTML/CSS/JS/JSON; query-page URLs (?p=, ?page=) self-name instead of clobbering index.html
serve Offline preview server with API/beacon stubs
verify Headless reload: JS errors, failed requests, screenshots

python smoke_test.py runs the offline self-checks (no network).

Honest scope

  • Backends aren't cloned — APIs are stubbed with captured payloads.
  • Gated content isn't reachable — logins, paywalls, DRM and aggressive anti-bot need a real session.
  • Live state isn't frozen — websockets, personalization and per-user feeds snapshot to whatever loaded.
  • Interaction-gated assets can be missed — the trace pass scrolls and idles; scripted clicking (à la websnap) is on the roadmap.

Layout

everpage/
  cli.py        pipeline orchestration
  fetcher.py    sessions, retries, URL→file mapping, parallel downloads
  detect.py     framework + HTML asset/link extraction
  chunks.py     JS bundle mining (templates, pools, workers, frames)
  rewrite.py    offline path rewriting (+ regression self_test)
  trace.py      headless runtime URL capture
  serve.py      preview server with API stubs
  verify.py     headless boot/error/screenshot check
  tui.py        interactive menu

Contributing

Issues with a failing URL + the probe log tail are gold. PRs that add a self_test regression case alongside any parser change get merged fastest.

License

MIT — see LICENSE.

Metadata

Release files for everpage 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for everpage 0.1.0
File Size Uploaded
everpage-0.1.0.tar.gz 55.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for everpage 0.1.0
File Interpreter ABI Platform
everpage-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 113.0 kB

Release files / everpage-0.1.0.tar.gz

Download URL everpage-0.1.0.tar.gz
Size 55.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d99b18a4c6f2251616ed3d238caebc1bf68522e771742904080ead2bcd42daf7
BLAKE2b-256 checksum
How to use checksums
69ca7407f2f89e5178873ec93b4b6bcadd70c9a83905a74e2b71b02f55c571bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / everpage-0.1.0-py3-none-any.whl

Download URL everpage-0.1.0-py3-none-any.whl
Size 57.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba3ca765ac4f85d96dea3c224b41e8ff01ff8172a68817f26ce126195e6c1316
BLAKE2b-256 checksum
How to use checksums
1893b5e2e70447de07c9eedbde3b6f6bf8e9483771a03066509d150345cc02a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page