explaingit

y2z/monolith

Analysis updated 2026-06-24 · repo last pushed 2026-05-01

15,080RustAudience · ops devopsComplexity · 2/5MaintainedSetup · easy

TLDR

A Rust command-line tool that saves a complete web page as a single self-contained HTML file with all images, CSS and scripts inlined as data URLs.

Mindmap

mindmap
  root((monolith))
    Inputs
      URL
      HTML on stdin
      Cookie file
    Outputs
      Single HTML file
      MHTML file
    Use Cases
      Save articles offline
      Archive web pages
      Replace open tabs
      Share standalone pages
    Tech Stack
      Rust
      Cargo
      Docker
      Headless Chromium
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Save a long article or doc page as one .html file you can read offline forever.

USE CASE 2

Archive a list of URLs into standalone files for personal research or compliance records.

USE CASE 3

Strip ads, fonts or JavaScript out of a saved page using flags like --no-js or --no-fonts.

USE CASE 4

Pipe headless Chromium output into monolith to capture JavaScript-heavy pages.

What is it built with?

RustCargoDockerCLI

How does it compare?

y2z/monolithtracel-ai/burnneovide/neovide
Stars15,08015,11214,989
LanguageRustRustRust
Last pushed2026-05-01
MaintenanceMaintained
Setup difficultyeasyhardeasy
Complexity2/55/52/5
Audienceops devopsresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Pages that load content with JavaScript need to be pre-rendered with headless Chromium first since monolith has no JS engine.

In plain English

Monolith is a command line tool, written in Rust, that saves a complete web page into a single HTML file. When you use a browser's normal Save Page As feature you usually end up with one HTML file plus a folder full of images, stylesheets, and scripts. Monolith instead bundles all of those assets directly inside the HTML, encoded as data URLs, so the result is one self-contained file you can store, move, or share. The README pitches it as a hoarder's tool: a way to replace a pile of open browser tabs with a pile of saved .html files on your own drive. Compared with using wget to mirror a site, monolith produces a file that a browser can open and render exactly as the page looked online, even when you are offline. Installation is covered for a long list of platforms. You can install it with Cargo from crates.io, with Homebrew on macOS and Linux, with Chocolatey, Scoop, or Winget on Windows, with MacPorts, Snap, Guix, Nix, Flox, Pacman, apk, xbps, FreeBSD ports, pkgsrc, a Docker container, or by building from source. Pre-built binaries are also published with each release. Usage is a single command: pass it a URL and it writes an HTML file. You can pipe an HTML document into it instead, and use a flag to set the base URL. The flags let you strip out audio, video, images, CSS, JavaScript, web fonts, or frames, limit which domains assets may come from, block specific domains, ignore network errors, set a custom user agent, read cookies from a file, change the timeout, and choose MHTML output instead of HTML. There is also a flag to isolate the saved document so it cannot make further network requests. Monolith has no built-in JavaScript engine, so pages that load content after the first request may not save correctly on their own. The README shows how to pair it with headless Chromium, which renders the page first and then pipes the resulting DOM into monolith. Basic HTTP authentication is supported by putting the credentials in the URL, and standard proxy environment variables are respected. The project also runs as a hosted Actor on Apify if you do not want to install anything locally. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Install monolith with Cargo and save https://en.wikipedia.org/wiki/Rust as a single self-contained HTML file.
Prompt 2
Write a bash loop that reads URLs from urls.txt and saves each one with monolith into an archive folder named by date.
Prompt 3
Show me the flags to save a page without JavaScript, without web fonts and without any images larger than the article body.
Prompt 4
Give me a Dockerfile that runs headless Chromium plus monolith so I can archive JavaScript-heavy SPAs from a cron job.
Prompt 5
Explain how to use monolith with a cookies.txt file so it can save a page that requires login.

Frequently asked questions

What is monolith?

A Rust command-line tool that saves a complete web page as a single self-contained HTML file with all images, CSS and scripts inlined as data URLs.

What language is monolith written in?

Mainly Rust. The stack also includes Rust, Cargo, Docker.

Is monolith actively maintained?

Maintained — commit in last 6 months (last push 2026-05-01).

How hard is monolith to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is monolith for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.