Build1 publisher3 min readPublished
Every one passed plagiarism checks, because shingle overlap is measured over sets and dilutes inside a long document. The rebuild swapped variant rotation for hash-picked slots, and its combination floor does not survive a recount.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
The unit of comparison is the whole trick. Jaccard over a document's shingle set divides shared 8-grams by total 8-grams [3], so a paragraph that is word-for-word identical in two articles gets diluted to a small fraction of a long page. The scan in the dev.to writeup does not compare documents. It walks every pair of same-position paragraphs across a batch [5], which is why it surfaced pairs sitting at 1.00 in a corpus that passed uniqueness checks [7][2].
Then the 8-gram budget. A span of W words contains W - 8 + 1 8-grams, so a 20-word slot contributes 13 [18], and the author puts that at 60 to 70 percent of the paragraph's entire shingle set [11]. Run it backwards: 13 shingles at that share implies 19 to 22 shingles in the whole paragraph, about 26 to 29 words [19]. That paragraph was one long sentence plus a clause. Fix the sentence and nothing else in the block can rescue the fingerprint, which is why more variants per block moved the numbers so little [10].
The fix's arithmetic is where I would push back at review. The design calls for 3 to 4 slots per paragraph, each 12 words or fewer, each with 3 to 6 phrasings [13]. The stated space is 216 to 1,296 combinations for a four-slot paragraph [14]. Four slots of six options is 1,296. Four slots of three options is 81, not 216; 216 is 6^3, the three-slot corner at six options each [20]. Take the real floor of the stated range, three slots of three options, and you get 27 combinations serving 70 articles [21], which is the exact failure the post's own rule of thumb warns against [15].
Hashing does not allocate, either. pick() takes an MD5 of slug, slot name and reseed, modulo the option count [13]: sampling with replacement, not dealing from a deck. Seventy articles make 2,415 pairs. Divide by the combination space for the expected number of pairs landing on identical text, and you get roughly 1.9 at 1,296 combinations, 30 at 81, and 89 at 27 [22]. A space three times larger than demand is not a collision-free space. At the top of the range, a couple of shared paragraphs inside otherwise distinct articles is survivable; at 81 it is the old problem in smaller print.
What the material does not establish is the ranking half. That traffic works out to a click-through rate of 0.014% [17], with no penalty notice and no post-fix ranking series, since the text breaks off mid-sentence on the limits of per-slot independence [16]. The Jaccard 0.5 line described as the threshold where near-duplicate detection gets interested is the author's characterization, not a published search engine figure [8]. For the diagnosis to transfer, you would need rotated blocks that survive into the indexed HTML and no competing explanation for the flat positions. The detector itself is two functions over text you already have [5], so the measurement is cheap and yours. The causal story attached to it is one operator's case.
Ranked by verification strength, evidence, and original report placement.
The author reports a batch of AI-generated comparison articles across B2B sites that indexed and rendered normally but ranked nowhere: average position 76 across five domains over three months, about 50,000 impressions and seven clicks.
One block had a single 20-word sentence slot with 6 variants; a 20-word slot contributes 13 of its own 8-grams, roughly 60 to 70 percent of the paragraph's entire shingle set, so with 6 variants across 70-plus articles dozens of pairs shared a variant and collided on most of their fingerprints.
The author says the AI-generated articles shared sentence-level fingerprints with each other while every article passed every plagiarism checker as unique.
Duplicate detection at scale compares n-grams, sliding windows of n consecutive words, usually as a shingle set; two documents are near-duplicates when their shingle sets overlap heavily, measured by Jaccard(A, B) = |A intersect B| / |A union B|.
The writeup uses an 8-gram window, arguing a shared 8-word sequence is almost never coincidence but the window is short enough to catch partial rewrites.
The detector is two functions: one that lowercases text, strips punctuation and returns the set of n-grams, and one that computes Jaccard; the author runs it across every pair of same-position paragraphs in a content batch.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Solid method, unverified numbers
Two kinds of evidence sit side by side and they are not equally strong. The shingle-and-Jaccard method is fully specified: the code is printed, the 8-gram window is argued for, and its arithmetic checks out, since a 20-word span really does hold 13 8-grams. The numbers wrapped around that method, position 76, seven clicks, several hundred pairs at 1.00, come from one author's dashboards and one author's script, and the combination figure that justifies the rebuild does not reconstruct from the design it describes.
One author's three sites
A single self-reported deployment: three sites the author owns, roughly 300 articles, recurring blocks rebuilt on hash-picked slots. No other practitioner in this reporting has run either the scan or the redesign, and the line that would have carried the post-rebuild pair counts breaks off after 'Zero pairs'.
Diagnosis holds up better than the cure
The failure analysis earns its confidence; the remedy is sold ahead of its evidence. The opening promises pages rebuilt 'until every pair was measurably distinct', yet the closing measurements never arrive, and the three-to-18x headroom claimed for the new design rests on a floor of 216 that belongs to a different slot layout. At the leanest configuration the design permits, expected identical-text pairs among 70 pages land near 89 rather than near zero.
Self-diagnosis with a portfolio angle
The author is auditing his own content network and publishing under the dev.to handle toolkitcreators, so the piece works as a demonstration of competence at precisely the job it describes: a collapse found, math reverse-engineered, pipeline rebuilt. That does not touch the printed code, which anyone can rerun on their own corpus, but it does mean the flattering before-and-after has no disinterested check behind it.
The technique checks out; the before-and-after doesn't
One publisher, one practitioner, one corpus, and the single dimension open to outside checking comes out split: the 8-gram counts hold, the combination floor does not. That is enough to rely on the detector and the diagnosis about long slots dominating a fingerprint, and not enough to treat the rebuild's reported outcome as established.
build
A 5x publishing increase cost one site 1,000 indexed pages and every impression1 publisher
build
Allow-list the closed set, block-list the open one: 193 thin geo pages, one gate1 publisher
build
8,664 indexed pages, nine clicks: programmatic SEO now fails at ranking, not indexing1 publisher
build
The ICO fines what you cannot prove: Article 32 makes encryption and erasure an engineering liability1 publisher
Publishers with included, body-backed reporting in this cluster.
1 article · September 7, 2026