Whole Antidetect Catalog Donut Browser

Catalogue · Colophon

Who keeps this catalogue, how it is set, and how it is corrected

A colophon is the note at the back of a book that says who made it and out of what. This one has more work to do than most, because the catalogue's whole claim — that a status is derived from dated fields rather than asserted by a curator — is a claim about a process, and a claim about a process is worth exactly as much as its description of that process. So: 153 entries in 10 sections, all fields read at 2026-08-14T09:12:00Z, set in two press runs on a newsprint ground, and published under CC0-1.0 as three data files that carry the same numbers this page does.


How the catalogue is built, stage by stage

Five stages, each with one job and one prohibition. The prohibitions are the load-bearing half: a register that can print a state from anywhere will eventually print one from somewhere convenient.

Stage What it does What it may not do
The register
src/data/registry.ts
Holds one object per entry: the measured fields transcribed from the sweep, the project's own sentence about itself, and the curator's declared edges and flags. It may not contain a state. No entry in it says ACTIVE or DEAD — the only place either word appears is the comment at the top forbidding them — which is what makes “derived, not asserted” a property of the code rather than a promise in prose.
The rubric
src/data/rubric.ts
Carries both editions of the rules at once and applies either of them to the same field data, returning the state, the clause that fired, and the exact values it read. It may not consult the clock. Every age is measured against the field-check instant, so this printing prints the same numbers today and in a year — a printing is a fixed thing.
The index
src/lib/catalogue.ts
Applies the rubric once, for the entire site, and reverses the declared edges so the supersession graph cannot contradict itself. No page may derive a state on its own. There is exactly one place in this build where a rule can be wrong, and this is it.
The sheets
src/pages/
Render. Every route — the catalogue, the sections, the entries, the errata leaf, this page — reads the finished index and prints it. A page may not compute, soften or override a state, and none has a special case for any entry, including the keepers' own.
The data files
src/lib/dataset.ts
Serialises the same index to JSON, CSV and a plain-text README from one declared list of 38 columns. A column may not exist in the payload without declaring its provenance, because the column list is the provenance list. Adding a field to the data means writing down where it came from.

The sweep that fills the first stage is, for this printing, a manual one: 64 repository reads and 89 link checks made on 2026-08-14, with 9 targets that refused the check and 2 that came back dead. Both the failures and the refusals are printed in the field check log, because a register that publishes only its successes has never told you when it was wrong. The nightly automated sweep the rubric is written for is not in service yet, and the corrected-to date in the folio is the only claim this catalogue makes about how current it is.

What the two ordinals in the folio count

The folio at the foot of every page reads 2ND ED., 1ST PRINTING. Two numbers, because there are two different things that can change and conflating them is how a versioned document stops being auditable.

Ordinal Advances when Currently What it answers
Edition A threshold, a source field or an endpoint changes — that is, when the rule changes. Second edition
in force 2026-08-14
“By what rule was this entry judged?” Old editions stay in print at /method/1, because a catalogue that deletes its old rules cannot be audited against them.
Printing Only the data is re-swept — that is, when the world changes. 1ST PRINTING
corrected to 2026-08-14
“How stale is what I am reading?” Every dated field on the page belongs to one printing and carries its instant.

They are counted in ordinals and dated, the way a reference work counts them, and never compressed into a dotted version token in the page furniture. The reason is practical rather than nostalgic: a reader who sees v2.1 in a margin cannot tell whether the rules moved or the world did, and on this register those two produce opposite kinds of correction. 107 entries moved when the second edition came into force, and not one of them moved because anything about the project changed — the field data underneath them is a single sweep. The full statement of the rules in force is the imprint on the rubric page.

How a correction is issued

Nothing is deleted when it is corrected; it is struck, and the strike is the record. When a value is superseded the old one stays on the page set in the light impression with a one-pixel rule through it — SEMI — and the replacing value is printed beside it in the second press colour, NRND, with the field and the timestamp that produced the change. Every moved entry for a printing is collected on an errata leaf filed under the date of the sweep that produced it: this printing's is the leaf for 2026-08-14, carrying 107 entries.

Three rules govern the whole correction mechanism, and they are the reason this register can be checked rather than believed. A state set by a superseded edition is marked as such and not silently re-derived. A back edition is never withdrawn from print, so any state it set can be read against the rules that set it. And a correction is issued against a named edition and a dated printing, never as an untraceable edit — if you find a field on this site that is wrong, the fix is a new leaf under a new date, and the wrong value stays visible underneath its own strike. Send corrections to contact@donutbrowser.com; the submission page carries the entry criteria and the address for new rows.

What the stamps are derived from

Four of the six states carry a rubber stamp rather than plain ink. 20 of the 153 entries in this printing wear one. A stamp is not a judgment somebody made about a project; it is the printed form of a clause that fired against a measured field, and the clause is printed beside it here and in every entry's evidence drawer.

Stamp In print The clause that produces it What it means to a reader
NRND
see them
12 pushed 365–1095 days before the field check — or pushed more than 180 days ago while an entry in this registry declares it superseded and that successor is ACTIVE Not Recommended for New Designs. Works; do not start here.
WITHDRAWN
see them
1 the URL answers with a permanent redirect to another entry The source itself says this moved.
ARCHIVED
see them
2 GitHub archived flag is true The maintainer closed it. Historical reference only.
DEAD
see them
5 the last HTTP check returned 400 or worse, or did not complete — or the repository has no push within 1095 days Unreachable, or untouched past the outer threshold.

Two rules constrain how a stamp may be printed, and both exist to stop the device from eating the evidence it is asserting something about. A stamp may never obscure a date, a count or an identifier. It is composited only into the rule field at the foot of an access column — a band where nothing is ever set — and if no free band exists at the current viewport it does not print at all; the state renders as the bracketed token [NRND] beside its plain-ink word instead. And no stamp is ever the sole carrier of a state: every stamped entry also prints its state word in plain ink in the access column, so nothing on this site depends on seeing red, on canvas rendering, or on any image loading at all.

How this catalogue is set

Type. Tanker (Indian Type Foundry, Fontshare Free Font License) carries the masthead, page titles and condition stamps. The operating system's sans serif sets the interface and running copy. Courier Prime (Quote-Unquote Apps, OFL), a genuine typewriter face, carries only measured content: dates, SPDX identifiers, version tags, URLs, HTTP status codes, install commands, and the curator's signed annotation in its italic. It is never used for a display heading. Dates and identifiers retain their own type treatment so they can be distinguished from the catalogue's commentary.

The supplied fonts are self-hosted and served as woff2 with font-display: swap. Nothing on this site is fetched from a third-party origin at read time.

Press. A newsprint stock at #E8E7E1, offset black at #16150F — never pure black, because ink on absorbent paper is not — and two runs on top of it: an ultramarine #1E3FA8 that carries links, active filters and every corrected value, and a stamp red #B5271A that appears on state marks and nowhere else. The dark scheme is the same world photographed as a plate proof, and the site never overrides your system setting in either direction. Corner radius is zero everywhere, with exactly one exception: the half-pixel blade relief on the internal corners of the die-cut condition marks, which is a fact about cutting rubber rather than a style decision.

Hovering an entry offsets the second run by one pixel — a misregistered press, the only hover effect in the system.

Texture, and where it is forbidden. One grain layer and one halftone dot screen exist, and neither carries any information — which is precisely why both are the first thing dropped. Grain is capped at 3.5% on the open field, 2.5% anywhere text sits directly on stock, and zero inside the catalogue region: from the first section bar to the folio there is no texture behind a single row, because grain behind a hundred rows of twelve-pixel Courier is the failure this world is one bad decision away from. The halftone screen carries staleness as dot density in a four-pixel band below an access block, never behind one, and its day count is always printed beside it in ink. No texture of any kind is permitted under type of any size, in any colour. Below 900px the grain goes to zero; below 820px the screen becomes a solid rule and keeps the number; under prefers-contrast: more both vanish and every hairline becomes a two-pixel ink rule. In print output they are omitted entirely — the catalogue is a document that can leave the browser, on Letter or A4, with the folio in the running foot.

Measurement, not taste. Body text over any textured ground is held to 7:1 against the darkest rendered ground pixel rather than to the 4.5:1 the guidelines ask for, because the failure being defended against is a dense table read at speed by a sceptical reader. That is also why the light impression and the ultramarine live only in the flat catalogue region, where they measure 8.30:1 and 8.15:1, and why stamp red never carries body text at all. Motion obeys prefers-reduced-motion; state survives forced-colors, because every mark is printed beside its word.

The data, and what it is licensed under

Everything above is published as data at the same time it is published as a page: 38 columns, of which 15 are readings taken at 2026-08-14T09:12:00Z and at no other instant, in JSON, CSV and a plain-text README under CC0-1.0 — the licence the awesome.re manifesto requires of a list, and deliberately not MIT, BSD or GPL. No attribution is required. The projects listed keep their own licences, recorded in license_spdx as their repositories declare them.

This register publishes no score, no percentile and no rarity figure for any entry, because it has tested no tool; and it publishes no detection-test results, because it has run none. Every number printed about an entry is a date, a count, an identifier or an HTTP status with the endpoint that produced it named beside it.

Why some entries carry no link

This register links to source code freely. What it does not do is link to a hosted service that competes with the browser its keepers work on, or to a commercial anti-detect vendor's landing page. A link to source is a citation; a link to a rival's front door is a referral, and a register whose keepers have a declared interest should not be quietly sending its readers through one. That is the whole of the reason, stated once, here.

The consequence is printed rather than hidden, and it is deliberately the smallest possible consequence. Nothing is dropped from the catalogue: 36 entries are affected and every one of them keeps its name, its own sentence about itself, its licence field, its dates, its derived state and its place in a section. 3 of them have a repository, and the repository is linked in place of the listed address — including where the address is a GitHub Pages host, in which case the repository is recovered from the hostname mechanically rather than guessed at. The remaining 33 have no address this register will link to, so their address is set in plain type beside the marker Address printed, not linked. You can still read it, copy it and go there. This site simply does not hand you through the door.

Naming is not linking, and nothing here is censored: every one of those projects is named in prose, described in its own words, and judged by the same rubric as everything else — including every one of the closed products in section 09, which are listed for completeness and for comparison and whose omission would make this a poorer catalogue and a less honest one. The rule is about where this site sends its traffic. It is not about what this site is willing to say.


Conflict of interest

This register is kept by people who work on Donut Browser. It is listed at /entry/donut-browser in section 01, its access block reads AGPL-3.0 · pushed 2026-08-12 · v0.29.3 · state ACTIVE, and it is judged by exactly the rule printed above. If it stops shipping, the rubric will stamp it NRND without anyone's permission and this paragraph will still be here. The disclosure is printed on the front sheet as well as in the colophon, because a catalogue whose keeper has an interest in one of its entries has one honest option and this is it. Nothing in this catalogue is a detection-test result, including anything said about that entry.

Donut Browser is an open-source anti-detect browser under AGPL-3.0 — the desktop app and the sync server are both in the repository. It ships the Wayfern Chromium fork, which spoofs at the engine level over CDP rather than by patching JavaScript, a local REST API and MCP server on your own machine, self-hostable sync to any S3-compatible store, and a pre-launch gate that refuses to start a profile when the proxy's exit geography contradicts the profile's fingerprint.

Download Donut Browser

curl -fsSL https://donutbrowser.com/install.sh | sh

macOS · Windows · Linux · Nix. Desktop only. Source, AGPL-3.0

The rubric in force · First edition, superseded 2026-08-14 · Field check log · Errata leaf · The data, CC0 · Submit an entry

Everything on this page is a promise that can be broken in public. That is the only kind worth printing at the back of a catalogue. — ED.