AhmadIbrahiim/Website-downloader

πŸ’‘ Download the complete source code of any website (including all assets). [ Javascripts, Stylesheets, Images ] using Node.js

HTML

6,030

95 commits

updated Aug 12, 2026

See the code

README

Complete Website Downloader πŸ’Ύ

Download the complete source code of any website (including all assets) πŸ”¨.

πŸ‘‰ Live Demo: https://website-downloader.onrender.com

enter image description here

CodeFactor

Description πŸ“’

Website downloader works with wget and archiver to download all websites assets and compress then sends it back to the user through socket channel

wget params the being used

wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org

Explanation of the various flags:

  • --mirror – Makes (among other things) the download recursive.
  • --convert-links – convert all the links (also to stuff like CSS stylesheets) to relative, so it will be suitable for offline viewing.
  • --adjust-extension – Adds suitable extensions to filenames (html or css) depending on their content-type.
  • --page-requisites – Download things like CSS style-sheets and images required to properly display the page offline.
  • --no-parent – When recursing do not ascend to the parent directory. It useful for restricting the download to only a portion of the site

Deploy on cloud providers

Run on Replit Remix on Glitch Deploy on Railway Deploy to Cyclic Deploy to Koyeb Deploy to Render

Requirements πŸ“¦

  • Node.js 16 or newer
  • wget on the PATH. The app shells out to it, and nothing will download without it:
    • Debian/Ubuntu: apt install wget
    • macOS: brew install wget
    • Windows: winget install JernejSimoncic.Wget

How to run it πŸ€”

  • git clone https://github.com/AhmadIbrahiim/Website-downloader.git
  • cd Website-downloader
  • $ npm install
  • $ npm start
  • http://localhost:3000/

Optional settings

VariableDefaultWhat it does
PORT3000Port the server listens on
DOWNLOAD_QUOTA100mSize ceiling passed to wget, so one request cannot fill the disk
DOWNLOAD_TIMEOUT_MS300000How long a single download may run before it is stopped

How To Contribute:

  • Open Issue(s) with any bugs you notice.
  • Please create Pull Requests if you think it would be an added value towards our program.

Liked it ? You can buy a coffee:

Buy Me A Coffee

Thank you,

Email: me@ahmed-ibrahim.com

https://www.ahmed-ibrahim.com

assets
downloader
offline-web-pages
scraper

AhmadIbrahiim/Website-downloader

πŸ’‘ Download the complete source code of any website (including all assets). [ Javascripts, Stylesheets, Images ] using Node.js

HTML

6,030

95 commits

updated Aug 12, 2026

See the code

README

Complete Website Downloader πŸ’Ύ

Download the complete source code of any website (including all assets) πŸ”¨.

πŸ‘‰ Live Demo: https://website-downloader.onrender.com

enter image description here

CodeFactor

Description πŸ“’

Website downloader works with wget and archiver to download all websites assets and compress then sends it back to the user through socket channel

wget params the being used

wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org

Explanation of the various flags:

  • --mirror – Makes (among other things) the download recursive.
  • --convert-links – convert all the links (also to stuff like CSS stylesheets) to relative, so it will be suitable for offline viewing.
  • --adjust-extension – Adds suitable extensions to filenames (html or css) depending on their content-type.
  • --page-requisites – Download things like CSS style-sheets and images required to properly display the page offline.
  • --no-parent – When recursing do not ascend to the parent directory. It useful for restricting the download to only a portion of the site

Deploy on cloud providers

Run on Replit Remix on Glitch Deploy on Railway Deploy to Cyclic Deploy to Koyeb Deploy to Render

Requirements πŸ“¦

  • Node.js 16 or newer
  • wget on the PATH. The app shells out to it, and nothing will download without it:
    • Debian/Ubuntu: apt install wget
    • macOS: brew install wget
    • Windows: winget install JernejSimoncic.Wget

How to run it πŸ€”

  • git clone https://github.com/AhmadIbrahiim/Website-downloader.git
  • cd Website-downloader
  • $ npm install
  • $ npm start
  • http://localhost:3000/

Optional settings

VariableDefaultWhat it does
PORT3000Port the server listens on
DOWNLOAD_QUOTA100mSize ceiling passed to wget, so one request cannot fill the disk
DOWNLOAD_TIMEOUT_MS300000How long a single download may run before it is stopped

How To Contribute:

  • Open Issue(s) with any bugs you notice.
  • Please create Pull Requests if you think it would be an added value towards our program.

Liked it ? You can buy a coffee:

Buy Me A Coffee

Thank you,

Email: me@ahmed-ibrahim.com

https://www.ahmed-ibrahim.com

assets
downloader
offline-web-pages
scraper

Significant stargazers

Dongjie Wu

10 followers Β· starred Jul 2026

Maokaman1

14 followers Β· starred Jul 2026

Yosef Herskovitz

20 followers Β· starred Jul 2026

BingZ

9 followers Β· starred Oct 2023