@dalias @boogah well spotted, thank you. it's not a complete replacement in this case, but I think it's worth knowing about the redirector extension, which allows arbitrary user-configurable redirect rules, instead of needing to trust a patchwork of individual redirect extensions for each site. you can import the following rule to redirect explicit substack subdomains to archive.org:
{
"createdBy": "Redirector v3.5.3",
"createdAt": "2026-04-22T04:15:24.436Z",
"redirects": [
{
"description": "",
"exampleUrl": "
https://somebody.substack.com/p/article",
"exampleResult": "
https://web.archive.org/web/https://somebody.substack.com/p/article",
"error": null,
"includePattern": "*.substack.com/*",
"excludePattern": "",
"patternDesc": "substack -> archive.org",
"redirectUrl": "
https://web.archive.org/web/$1.substack.com/$2",
"patternType": "W",
"processMatches": "noProcessing",
"disabled": false,
"grouped": false,
"appliesTo": [
"main_frame"
]
}
]
}
unfortunately, the reason this is not a complete replacement is that there is no way to detect substack pages on custom domains with redirector.
it is also fairly straightforward to edit the userscript linked in the original post to redirect to archive.org instead of archive.is (archive.is is no longer trustworthy). it's possible this script was LLM-generated (especially since it is from the same author), but it is short enough to be trivial to audit, and automatic updates can be disabled so that future upstream versions do not need to be trusted. this does have the disadvantage that the script only runs after the page has already been loaded through substack's servers, unlike with redirector and unlike the extension from the original post (after a domain is in the cache).
// ==UserScript==
//
@name Substack Is Wack (archive.org edit)
//
@description Automatically redirects Substack articles (including custom domains) to their archive.org analog.
//
@author boogah, olivia
//
@match https://*.substack.com/p/*
//
@match http://*/*
//
@match https://*/*
//
@exclude https://archive.today/*
//
@exclude https://archive.fo/*
//
@exclude https://archive.is/*
//
@exclude https://archive.li/*
//
@exclude https://archive.md/*
//
@exclude https://archive.ph/*
//
@exclude https://archive.vn/*
//
@license GPL-2.0
//
@grant none
//
@run-at document-idle
// ==/UserScript==
// originally from
https://raw.githubusercontent.com/boogah/userscripts/refs/heads/main/substack-is-wack.js modified to replace.is with archive.org
(function () {
'use strict';
var host = window.location.hostname;
if (host.endsWith('.substack.com')) {
redirect();
return;
}
if (isSubstack()) {
redirect();
}
function isSubstack() {
if (document.querySelector('meta[name="generator"][content="Substack"]')) return true;
if (document.querySelector('link[href*="substackcdn.com"]')) return true;
if (document.querySelector('script[src*="substack.com"], script[src*="substackcdn.com"]')) return true;
if (document.querySelector('[data-component-name="AppFrame"]')) return true;
var rss = document.querySelector('link[type="application/rss+xml"]');
if (rss && /substack\.com/.test(rss.getAttribute('href'))) return true;
return false;
}
function redirect() {
window.location.replace(
'
https://web.archive.org/web/' + encodeURIComponent(window.location.href)
);
}
})();
I'm a little suspicious about false positives from the [data-component-name="AppFrame"] query personally. am going to run this for a bit and see if I encounter any.
I am just... so, so exhausted, that "antifascist software from the slop machine" is a thing that we have to watch out for :( I hope that the bubble pops soon, and that the cleanup process is healing