atproto has a bit of a discovery problem.

By default, a PDS (Personal Data Server) announces itself to only one relay: bsky.network.

Every other relay in the ecosystem, including the firehose.network relays, has to discover new PDSes on its own, either by polling the Bluesky relay on a cadence, relying on scrapers, or running separate services.

Inspired by Dane's scatter, vsky.network is a small service that fixes this. Send a crawl request to the service, and it fans the request out to every community relay in firehose.club.

vsky.network

Add it to the PDS_CRAWLERS alongside bsky.network:

PDS_CRAWLERS=https://bsky.network,https://vsky.network

Then run pdsadmin request-crawl

Crawl requests return instantly. The actual fan-out happens in the background. Per-relay results are logged and exposed at /fanouts?hostname=<host>, with the relay list at /relays, and stats at /stats.

Form submission result on vsky.network, showing each relay and whether it accepted the crawl request.

The whole thing runs on . Check it out here.

Alternate url: vsky.val.run


PDS distributors: consider including vsky.network as a default crawler in your distribution.

Relay operators: open a PR in the firehose.club repo with opt_ins = ["vsky.network"] to be included in the fan-out.



Huge thanks to and for the feedback and inspiration.