Backlink is a small Node.js CLI that checks a backlink list against your domain.
The current project is JavaScript only and runs through a single entry point:
backlink.js.
The tool reads backlink templates from backlinks.json. Those templates usually
contain the placeholder gelbeseiten.de.
When you run the CLI:
- It reads
backlinks.json. - It replaces
gelbeseiten.dewith the domain you pass in. - It fetches each generated URL.
- It writes URLs with HTTP
200responses tocompleted.txt. - It writes everything else to
failed.txt.
- Node.js 22+
- No third-party runtime dependencies
git clone https://github.com/ju8z/backlink.git
cd backlink
node backlink.js example.comRun it with a domain:
node backlink.js example.comOr let the CLI prompt you for one:
node backlink.jsYou can also control concurrency:
node backlink.js example.com --workers 50
node backlink.js --workers 100CLI rules:
- Only one positional domain is accepted.
- The worker flag must be written as
--workers <number>. - Worker count must be a positive integer.
During a run, the CLI:
- Prints the banner.
- Shows the target domain in light blue.
- Shows HTTP
200in green. - Shows failed responses in red.
- Prints clickable backlink URLs in terminals that support OSC 8 hyperlinks.
- Prints clickable links to
completed.txtandfailed.txtin the summary.
Example output:
[17/1287] example.com > Response: 200 > Backlink: www.some-site.com/example.com
backlinks.json: Input source file for backlink templates.completed.txt: URLs that returned HTTP200.failed.txt: URLs that did not return HTTP200.backlink.js: CLI entry point.package.json: Package metadata.
backlinks.json must contain a JSON array like this:
[
{
"url": "http://www.some-site.com/gelbeseiten.de"
}
]The loader checks only basic structure before requests start:
- The top-level value must be an array.
- Each entry must be an object.
- Each entry must contain a
urlfield. - Each
urlmust be a non-empty string.
What it does not do:
- It does not run a separate valid-URL check before fetches start.
- It does not reject a malformed URL until runtime fetch handling reaches it.
src/
application/
services/
use-cases/
domain/
errors/
models/
utils/
interface/
backlink.js is the composition root and wires the CLI, repository, reporting,
and use-case classes together.
- Default worker count is
20. - The runtime uses Node's built-in
fetchwith a 10 second timeout. - Anything other than HTTP
200is treated as a failed backlink. - Backlink URLs without a scheme are normalized to
https://...for terminal links. - Higher worker counts can speed things up, but they can also increase timeouts or remote blocking.
