WebFinger and why it makes things simpler
If you are playing with the idea of creating a distributed social network or service, there are standards that you have to be aware of.
One of them is the WebFinger protocol.
Let's look at an example of "a decentralised, minimalist microblogging service for hackers" that does not use the WebFinger protocol.
If you want to follow someone with twtxt, you do:
twtxt follow bob http://bobsplace.xyz/twtxt
But Alice, because twtxt is configurable, can choose to expose their posts somewhere other than twtxt
.
So when you want to follow Alice, you'll type:
twtxt follow alice http://alice.space/updates.txt
The question: how do you know each individual's twtxt URL if there's no standard, only a sensible default?
You have to find out. But how? The answer is: depends. You can try the default, make an educated guess, you can ask Alice, or Alice can share the link on their website.
This is where WebFinger comes into a play.
WebFinger (...) can be used to discover information about people or other entities on the Internet using standard HTTP methods.
For a person, the type of information that might be discoverable via WebFinger includes a personal profile address, identity service, telephone number, or preferred avatar.
Information returned via WebFinger might be for direct human consumption (e.g., looking up someone's phone number), or it might be used by systems to help carry out some operation (...)
To translate this into practice, if twtxt had implemented WebFinger, the following part would look like this:
twtxt follow bob@bobsplace.xyz
twtxt follow alice@alice.space
There would be no need to know the exact location of the twtxt files.
By the way, even though they look like email addresses, they are not. In the same way, those things that look like email addresses on Mastodon (account usernames) are not. Yes, indeed! Mastodon uses WebFinger.
With WebFinger, you can have a standardized protocol to discover the URLs "for you". Since URLs are retrieved instead of directly used, they can be changed without worry since they can be "rediscovered" anytime.
But as twtxt proves, it's not a requirement. While somebody misses it, the project had its fair share of success without it.
Nevertheless, IMHO, if you are playing with the idea of creating a distributed social network or service, use WebFinger.