Analysis updated 2026-05-18
Mirror a website locally so you can browse a saved copy without an internet connection
Study how local caching and mirror sites work as a research or learning exercise
Batch download a site's assets upfront, including media not directly linked in the HTML
| zzaiqwq/mirrorkit | artofpilgrim/dials | devadarshini27/nptel-tracker | |
|---|---|---|---|
| Stars | 35 | 35 | 35 |
| Language | JavaScript | JavaScript | JavaScript |
| Setup difficulty | easy | easy | moderate |
| Complexity | 3/5 | 1/5 | 2/5 |
| Audience | developer | designer | general |
Figures from each repo's GitHub metadata at analysis time.
Configuration is three environment variables: target domain, local folder name, and starting path.
MirrorKit is a local website mirroring tool built with Node.js. It downloads a website's files (HTML pages, CSS stylesheets, JavaScript, images, fonts, video, and other assets) to your local machine, then runs a small local web server so you can browse that saved copy in your browser without an internet connection. The README describes it as a local research tool for studying how mirror sites work. The core logic follows a simple rule: when you request a page or file, the local server checks whether it already has a copy saved. If it does, it serves that copy instantly. If not, it fetches the file from the remote site, saves it locally, and then serves it. Future requests for the same file skip the network entirely. External links in pages are rewritten to point to the local server so navigation stays within the mirrored copy. The project provides several tools. The main server script handles real-time caching as you browse. A batch download script crawls the site and pulls down common asset types upfront. A separate script targets hidden media that is not referenced directly in HTML but is instead stored in CMS data files or remote storage buckets. Additional utilities scan local files for video references, validate cached files to catch cases where an error page was saved instead of the actual asset, and check for bad cache entries. Configuration is minimal. You point it at a target website by setting three values: the site's domain, a local folder name for the saved files, and the starting path within the site. These can be set as environment variables without editing the code, which makes it easy to test different sites without changing anything permanently. The license is AGPL-3.0, which requires that any modified version you share, including one you deploy as a network service, must also be made available as open source under the same license. The disclaimer states the tool is for personal learning and local testing only, and users are responsible for checking the copyright and terms of service of any site they target.
A Node.js tool that downloads a website's files to your machine and serves the saved copy locally so you can browse it offline.
Mainly JavaScript. The stack also includes Node.js, JavaScript.
AGPL-3.0: you can use and modify it freely, but if you share a modified version, including running it as a network service, you must also release that version's source code under the same license.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.