See ToolsThatRank

Free ledger · 413 links · 16 of my own sites

My 413-link ledger is free. The pipeline is no longer sold.

Short answer. handsofflinks is a free ledger of 413 links built across 16 of the operator's own sites between 2026-06-25 and 2026-07-31: 232 live, 130 published but undiscoverable, 51 failed outright, with a 75% dofollow share across ten distinct referring hosts. The pipeline is no longer sold.

Updated 2026-10-28

Every row, live or dead, stays here so you can see what free developer platforms actually give in 2026. If you build tool sites, the pipeline I use now is ToolsThatRank. Michael

I stopped selling the handsofflinks pipeline on 8 October 2026. Nobody bought it, so there is no customer to move. No ranking or traffic promise is made on this site.

413links built on my own 16 sites, in 37 days
232survived audit, 56%. The number that counts
181failed or undiscoverable. Published anyway, below
$0paid for placement. 0 manual actions

No outreach email. No PBN. No paid placements: $0 went to placement across everything I built. No promise about your rankings, ever.


The mechanism

Counterparty-Zero Publishing

Counterparty-Zero Publishing means the pipeline only touches surfaces where publishing is a right, not a favor. Agents build an asset your site can credibly stand behind, a Go module, a dataset, a short technical article grounded in your own numbers, and submit it through the platform's public API. No pitch. No template email. No reply to wait for. Then the step this category skips: the verifier re-fetches the published page with a browser user agent, reads the rel attribute off the served HTML, and confirms a crawl path reaches the page at all. Until that passes, no row may say LIVE.

You already audit link vendors after the fact, with Ahrefs or Semrush, usually to discover what you actually bought. This machine runs that same audit before anything is recorded, on every link, every time. None of the alternatives I audited publishes a failure rate or any discoverability claim at all. Mine is printed further down this page, denominator first.

The machine behind the ledger kept a 116-entry channel registry where every reject keeps its recorded reason, capped exact-match anchors at 15 percent, refused to write any figure it could not trace to a CSV, and re-fetched every published page before a row could say live.

The ledger, my own properties, 25 Jun to 31 Jul 2026

Every link built, day by day. The dead ones stay on the chart.

232 live 130 undiscoverable 51 failed outright
91450
06/254106/269106/271006/295406/306207/09307/101407/121307/14507/161707/293707/304607/3120

Thirteen publishing days. Two front-loaded bursts put 310 links on the board inside three weeks, then it flattens, because the binding constraint is how many channels genuinely fit a site, not how fast the pipeline can run. The tall bar is 26 June: 91 links, of which 58 came back live, 8 had no crawl path and 25 failed outright. Counts are from my own data/ledger.csv, the file the pipeline writes itself, in the same format ./hol run writes on your machine. My ledger is my operating record and is not distributed with the package; what ships is the pipeline that produces one, so the numbers you can recompute after day one are your own.


Proof

I ran it on 16 of my own sites first. The failures print at the same size as the wins.

413
Links the ledger logged
16 sites, 25 Jun – 31 Jul 2026
232
That actually count
56% of what was built, the number that counts
130
Published but undiscoverable
no crawl path, sandboxed host, or not server-rendered
10
Referring domains earned
distinct hosts, across the whole portfolio
75%
Dofollow, of the 232
174 dofollow, 58 nofollow, measured and reported every run
$0
Paid for placement
0 accounts bought, 0 manual actions

413 links built in 37 days, on my own 16 sites, with my own money. 232 passed audit, which is 56 percent of what was built. 130 published but undiscoverable. 51 failed outright. $0 paid for placement. Of the 232 live, 174 are dofollow and 58 are not.

Read those numbers as what they are: my history with the method, written by the ledger the pipeline kept. They are not a promise about anyone else's results.

Twelve live rows are linked below this section. Open any one, look at the anchor, then paste the URL into Ahrefs, and the numbers reach you from Ahrefs instead of from me.

Now the number that should stop some of you. Across those 16 sites the average was 7.25 referring domains per site; the best site reached 9, and then it flattened. Ten distinct referring hosts across the whole portfolio. That is a ceiling I ran into, not a throttle I chose. It gets worse before it gets better: 130 of my links published fine and then failed the discoverability check, so nothing could find them. 99 had no crawl path to them at all, 28 sat on a sandbox host that serves a crawler nothing, and 3 were never in the served HTML. Telegraph kept 13 of 114 discoverable. Arweave kept 0 of 28. Both are dead in the registry now, reasons recorded. If your plan requires a big referring-domain number, this method will not produce it.


Channels

Eight publishers ship. Eight more channels produced nothing at all.

Ten referring domains produced the 232 live links below. Seven of those domains have a shipping publisher, which is eight ACTIVE entries in the registry because GitHub Pages ships as two, and the last two rows of the first table are marked so you can tell which. Both tables are below, at the same size. The second one cost 169 links and returned 13, and it is the more useful of the two, because those channels all looked like they were working. Several of these are nofollow on purpose. A profile that is 100% dofollow is itself a footprint; the shipped policy targets 78% ±7 and recomputes the real ratio from the ledger on every run, then prints it. It reports the number, it does not refuse a job over it. Live mix across the 232 is 75.0%: 174 dofollow, 58 nofollow. Which rel value a registry actually serves depends on where the link sits on its page, and I read all five off the served HTML in what rel attribute developer registries actually serve. To read the rel values on any markup you have in front of you, paste it into the dofollow nofollow checker, which reports ugc and sponsored separately instead of collapsing everything into one verdict. Whether a published link ever gets crawled at all is the other half of the problem, and the measured odds per platform, 413 links across 22 host families, are published in how to index backlinks. The link velocity page prints the four per-week gates and the measured rate from the ledger. The check if backlinks are indexed page walks the verification ladder and classifies a pasted page into the ledger status. The backlink index checker and the indexation ETA calculator are free tools for both jobs. For the reasons a link never shows up at all, see why backlinks do not show up in Google, whether indexing services actually work, and how long Google takes to index a backlink. The disavow file format validator checks each line of a disavow list against the file rules that Google states. For specific statuses and channels, see discovered, currently not indexed, guest post backlinks not showing, and what tier 2 backlinks can and cannot do. The crawl timing tracker turns your own link log into measured discovery and crawl gaps. If Google reports an unnatural links manual action, the unnatural links manual action guide builds a reconsideration record in your browser. To find out whether a linking page is blocked by crawl rules, the robots.txt tester tests the exact URL against the pasted robots.txt rules of the host.

What works

Referring domainAsset typeMethodLink relLive / built
mataroa.blogLong-form articleREST APIdofollow69 / 70
github.comRepo + profile READMEREST APInofollow43 / 44
*.github.ioTechnical article / hubGit pushdofollow33 / 45
pkg.go.devGo module docsGit push + proxy fetchdofollow25 / 27
docs.rsRust crate docscargo publishdofollow23 / 24
njump.me (Nostr)Long-form noteRelay publishdofollow15 / 15
code.dlang.orgD package docsDub registrydofollow9 / 9
huggingface.co (experimental)Profile / model cardmanualnofollow1 / 1
jsr.io (experimental)Package READMECLI publishnofollow1 / 1

219 live of 236 built, 93%. The last two rows are marked experimental: they have one verified link each, but no publisher was built for either. The seven rows above them had working publishers. In the registry that is eight entries marked ACTIVE on day one, because GitHub Pages ships as two publishers, and every one of them has a working publisher behind it. Statuses re-verified 1 Aug 2026 with a browser user-agent, each confirmed to still contain a live anchor to the target and confirmed not noindex.

What did not

Referring domainLive / builtWhat went wrong
telegra.ph13 / 114Published, HTTP 200, index-follow, and almost nothing links to it. 101 of 114 have no crawl path.
arweave.net0 / 28Same failure, total. Permanent storage is not the same as a discoverable page.
zenodo.org0 / 14Record pages carry noindex. Nine reporting cycles missed it.
stackexchange.com0 / 4Reputation-gated before a link renders. Not automatable honestly.
crates.io0 / 3SPA shell. The link is not in the server-rendered HTML.
r-universe.dev0 / 2404 at the published URL.
surge.sh0 / 2robots.txt blocked.
gitlab.com0 / 1The account behind it never existed. A logging error, mine.
hub.docker.com0 / 1No outbound link rendered at all.

169 links, 13 survivors. Telegraph and Arweave alone account for 142 of them, a third of everything ever built, and returned 13 live links between them: Arweave 0 of 28, Telegraph 13 of 114. Nearly every one returned HTTP 200 and passed every rel, robots and noindex check in the suite. They failed the check nobody was running: is there any path a crawler can actually follow to this page? That check now runs before a row is allowed to say live, which is why the working table above is worth anything.

Eight channels are ACTIVE in the shipped registry today (code.dlang, docs.rs, the two GitHub Pages publishers, GitHub repo homepage, Mataroa, Nostr, pkg.go.dev), out of 116 catalogued. The rest are 58 candidates, 48 rejected with the disqualifying evidence written next to them, and 2 paused. Run ./hol channels on day one and count them yourself rather than taking this page's word for it.


Verifiable

Twelve of them. Click any one.

Twelve rows drawn from the 232 that passed audit, one or two per referring domain, covering nine of the ten. Every one was re-fetched on 1 Aug 2026: HTTP 200, with the destination link present in the served HTML. Not screenshots. Screenshots are what the vendors who burned you used.

ChannelPublished assetLink rel
Mataroa theluckystrike.mataroa.blog/blog/how-to-read-the-permiss… → zovo.one dofollow
Mataroa theluckystrike.mataroa.blog/blog/writing-for-readability… → belikenative.com dofollow
GitHub profile README github.com/theluckystrike → goldgramprice.com nofollow
GitHub Pages hub theluckystrike.github.io/empire-hub/ → goldgramprice.com dofollow
pkg.go.dev pkg.go.dev/github.com/theluckystrike/gold-melt-value → goldgramprice.com dofollow
pkg.go.dev pkg.go.dev/github.com/theluckystrike/dscr-ratio → dscrradar.com dofollow
docs.rs docs.rs/gold-melt-value → goldgramprice.com dofollow
docs.rs docs.rs/dscr-ratio → dscrradar.com dofollow
Nostr (njump.me) njump.me/npub1dqy20m3cem7e0wx889hjd8zhxwl3tppsy48k5l204p… → zovo.one dofollow
code.dlang.org (Dub registry) code.dlang.org/packages/mv3permrisk → zovo.one dofollow
HuggingFace profile huggingface.co/theluckystrike → belikenative.com nofollow
JSR (jsr.io) jsr.io/@theluckystrike/ext-permissions-risk → zovo.one nofollow

All twelve are live, because these twelve were chosen to be checkable. The failures are not hidden, they have their own table in Channels and their own bar on the chart. Nine of the twelve are dofollow and three nofollow: 75%, the same dofollow share the full ledger runs at, 174 of 232. This dozen is spread one-per-domain rather than weighted by volume.