One free command saves any web page as a single file that still works years later, even after the original site goes down. Images, fonts, styles, all of it baked into that one file. Open it offline a decade from now and it looks exactly like the day you saved it.
It's called Monolith, a small open source program written in Rust, and it has been around since 2017. It now sits at more than 15,000 stars on GitHub, yet almost nobody outside the data-hoarding crowd has heard of it. That's a shame, because it fixes a problem every single internet user runs into: links that die.
What it does
Monolith is a command line tool, meaning a program you run by typing a command instead of clicking buttons. Point it at a web address and it pulls down the page plus every asset that page needs. Then it stuffs all of that into one self-contained HTML file, which is just one file with the images, fonts, and styles packed inside it.
Here's the trick: it uses something called data URLs, a way of writing an image or font as plain text right inside the HTML so nothing has to be loaded from outside. No folder of loose files. No broken paths. You can email the file, drop it on a USB stick, or open it ten years from now with no internet, and it renders the same.
Why not just save the page
Every browser has a "Save Page As" button. It's bad. You get a folder of scattered files where the styling breaks, images go missing, and sharing the result means zipping the whole mess and praying the file paths still line up on the other end.
The old power-user trick was wget, a download tool that can mirror a site. Well, not exactly a fix; that spits out a full tree of linked folders and files. Monolith gives you one document instead. That's the whole point. One file you can actually keep and share.
Installing it
It runs on Linux, macOS, and Windows. macOS folks can grab it through Homebrew, Windows users through Chocolatey, Scoop, or Winget, and Rust developers can install it with a single cargo command. There are also pre-built binaries on the GitHub releases page, which is honestly the cleanest route. Download the one file, make it runnable, done. Nothing to uninstall later.
Flags worth knowing
Monolith ships with more than 20 command line options. A handful matter well beyond basic saving:
- -j strips JavaScript out of the saved page
- -i skips all images for a text-only copy
- -I isolates the file so nothing inside it can quietly call home later
- -m saves in MHTML format instead of HTML
- -B blocks specific domains from being fetched at all
For most jobs, -j is the one to reach for. Pages still read fine without JavaScript most of the time, the file gets much smaller, and tracking pixels and analytics scripts get dropped for free. Nice bonus.
Where it earns its keep
Saving a reference page before it vanishes is the obvious win. Found a Stack Overflow answer that fixes your exact bug? Save it. Frankly, that page might be gone in two years, because link rot on the web is brutal and getting worse.
Sharing is the other big one. Send someone a link and they hit a paywall, or the article gets pulled, or the whole site goes dark. Send the file instead and none of that touches you. Personal wikis, research notes, and homelab docs all fit here too. Uses pile up fast.
One real catch
Monolith grabs pages like a plain web request. It does not run JavaScript. So modern sites that build their content with scripts after the page first loads, think Twitter, Reddit, or most web apps and dashboards, get their bare-bones raw HTML saved, not what a person actually sees on screen.
Easy enough fix: run the page through a headless browser first, then feed that finished HTML into Monolith. Works fine. Just adds a step. Size is the other catch: point it at an image-heavy page and the file can balloon, since every image gets packed inside. Strip images and JavaScript and it shrinks back to something small and fast.
For static sites, blogs, docs, news stories, and wikis, this thing is great. And that covers most of what's actually worth saving anyway.





