archiveweb.page is a free, open source browsers & extensions project written in TypeScript and released under AGPL-3.0. It has 1,611 GitHub stars, 116 forks and 111 open issues, and was last pushed 2 months ago. On this registry it ranks #114 of 150 tracked projects in Browsers & Extensions, with 5 head-to-head comparisons available. It gained 28 stars over the last 30 tracked days.

What is archiveweb.page?

ArchiveWeb.page is a JavaScript web archiving application that runs directly in the browser as a Chrome/Chromium extension or a standalone Electron app, built for anyone who needs to capture, store, and replay high-fidelity web archives without a server-side capture pipeline.

What it is

ArchiveWeb.page is a TypeScript application from the Webrecorder project that performs interactive, high-fidelity web archiving inside the browser. It ships two ways from the same source code: as a Chrome/Chromium browser extension and as a standalone Electron desktop app. The extension uses the Chrome debugging protocol to capture and save network traffic, then extends the ReplayWeb.page user interface and the wabac.js service worker system for replay and storage. Archives are created, stored, and replayed directly in the browser's storage through IndexedDB, so the capture, the storage layer, and the replay viewer all live inside the same browser environment. The browser extension is distributed through the Chrome Web Store, and desktop builds are published on the GitHub Releases page. The project is licensed AGPL-3.0 and carries topics including archiving, browser-extension, chromium, wacz, warc, and web-archiving.

The problem it solves is the gap between what a person actually sees in a browser and what conventional archiving can reproduce. Because capture happens in the browser session itself, the archive reflects the interactive, high-fidelity rendering of the page rather than a simplified or server-rendered substitute. This replaces depending on an external capture service or a separate crawling workflow to obtain a faithful copy: the tool records the traffic from the browsing session and keeps the resulting WARC and WACZ archives locally, inside the browser's own IndexedDB storage, for later replay.

Key capabilities

  • Records web archives as WARC and WACZ files.
  • Captures and saves network traffic using the Chrome debugging protocol.
  • Replays and stores archives through the wabac.js service worker system.
  • Presents replay through the ReplayWeb.page user interface.
  • Keeps archives in browser storage via IndexedDB.
  • Ships a standalone Electron app from the same source, which is designed to support Flash and provide better support for IPFS sharing.
  • Provides development commands including yarn build-dev, yarn run start-ext, yarn run start-electron, and yarn run pack, which produces a platform-specific binary in ./dist/.

Who uses it and how

  • Individuals and web archiving practitioners who install the extension from the Chrome Web Store and record pages as they browse them.
  • Desktop users who download a release build from the GitHub Releases page, including those who need Flash support or IPFS sharing from the Electron app.
  • Developers working on the project locally, using Node >=12 and Yarn Classic (v1), then loading the development build from ./dist/ext as an unpacked extension at chrome://extensions.
  • Contributors iterating on the code, running yarn run start-ext to rebuild dist/ext on source changes, then reloading the extension from the Chrome extensions page.
  • Developers testing a local build of wabac.js, using yarn link in that repository and yarn link "@webrecorder/wabac" in this one.

Getting started

Install the browser extension from the Chrome Web Store, or download a desktop build from the GitHub Releases page. To build from source, clone the repository, run yarn install, then yarn build-dev, and load ./dist/ext as an unpacked extension or launch the app with yarn run start-electron.

How it compares

ArchiveWeb.page sits alongside two companion tools named in its own documentation: ReplayWeb.page, whose UI it extends, and wabac.js, whose service worker system it uses for replay and storage. It supplies the capture and interface layer for the browser extension and Electron app, while those projects handle replay and the underlying storage mechanics, so the three are complementary rather than competing.

When to use it — and when not to

Choose it when capture needs to happen in the browser session itself, when archives should stay in local IndexedDB storage, and when the AGPL-3.0 licence suits the intended distribution. A self-hoster does not need to run a database or mail server, but does need Node >=12 and Yarn Classic (v1) to build, and must accept that archives live in a single browser profile rather than in shared server-side infrastructure. It is a poor fit for teams that need centralized, multi-user collection management or scheduled server-side crawling, and the README is written for developers, offering little operational guidance for running archives as a service.

project readme (upstream, from github) — read inline

ArchiveWeb.page is a JavaScript based application for interactive, high-fidelity web archiving that runs directly in the browser. The system can be used as a Chrome/Chromium based browser extension and also as a standalone Electron app.

The system creates, stores, and replays high-fidelity web archives stored directly in the browser's storage (via IndexedDB).

For more detailed info on how to use the extension and standalone app, see the ArchiveWeb.page User Guide.

The browser extension is available on the Chrome Web Store.

Downloads for the desktop are are available on the GitHub Releases page.

Architecture

The extension makes use of the Chrome debugging protocol to capture and save network traffic, and extends the ReplayWeb.page UI and the wabac.js service worker system for replay and storage.

Development

The Chromium extension and Electron app are built from the same source code for ease of development.

Prerequisites

  • Node >=12
  • Yarn Classic (v1)

Installation

To build the extension or Electron app locally for development, do the following:

  1. Clone this repo:
    git clone https://github.com/webrecorder/archiveweb.page.git
    
  2. Change the working directory:
    cd archiveweb.page
    
  3. Install dependencies:
    yarn install
    
  4. Make development build:
    yarn build-dev
    

The development build can now be used to develop the extension or Electron app.

Developing the Chromium extension

To install the extension locally, load the development build as an unpacked extension:

  1. Open the Chrome Extensions page (chrome://extensions).

  2. Choose 'Load Unpacked Extension' and point to the ./dist/ext directory in your local copy of this repo.

  3. Click the extension icon to show the extension popup, start archiving, etc...

Update extension on code changes

To watch source code files and recompile the development build on change, run:

yarn run start-ext

Now, saving changes to source will automatically rebuild the dist/ext directory.

After making changes, the extension still needs to be reloaded in the browser.

  1. From the Chrome extensions page, click the reload button to load the latest version.

  2. Click the extension icon to show the extension popup, start recording, etc... The dev build of the extension will be a different color from the production version.

Developing the Electron app

To start the Electron app using development build:

yarn run start-electron

The Electron app will open recording in a new window. It is is designed to support Flash, better support for IPFS sharing.

Update app on change

Currently, the dev workflow for the Electron app does not support automatically rebuilding on file changes.

After making changes, rerun yarn run build-dev and yarn run start-electron to view your changes in the app.

Using a local wabac.js

If you're testing a local version of wabac.js, you can configure your local copy of archiveweb.page to use it.

  1. In the wabac.js repo, run yarn link.
  2. In the archiveweb.page repo, run yarn link "@webrecorder/wabac"

When you want to switch back to a release build of wabac.js, run these steps from the archiveweb.page repo:

  1. yarn unlink
  2. yarn install --force

Standalone Build

To create a platform-specific binary, run:

yarn run pack

The standalone app will then be available in the ./dist/ directory.

Frequently asked questions

Is archiveweb.page free to use?

archiveweb.page is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does archiveweb.page do?

A High-Fidelity Web Archiving Extension for Chrome and Chromium based browsers!

What is archiveweb.page written in?

archiveweb.page is primarily written in TypeScript. Its source is publicly available at https://github.com/webrecorder/archiveweb.page, and it has 1,611 GitHub stars.