Mastodon URIs, not URLs

One of the annoying things about Mastodon is that it’s tough to share Mastodon links and have them open in your favorite app instead of in a web browser. This is due to the lack of a shared scheme or a shared server—which makes sense for a distributed/federated system, but doesn’t help its usability.

One thing the community should do is use a URI instead of a URL or a Twitter/AOL-style “handle” to refer to an account: A URI is a Uniform Resource Identifier that is resolved to a URL, which makes it easier to have all links to Mastodon accounts go to the user’s preferred app—and also enable the global namespace that ATP cares about so much.

So instead of saying my Mastodon account is either @eschaton@mastodon.social or https://mastodon.social/@eschaton, I should say that my Mastodon account isacct:eschaton@mastodon.social. That will let the Mastodon app—or any other app that registers as a handler for the acct: URI scheme–resolve the URI into https://mastodon.social/@eschaton.

This acct: scheme is already well-defined in RFC 7565, and is very easy to resolve using the WebFinger (RFC 7033) protocol that Mastodon servers are already required to support as part of their support for federation: You transform it into a query against the specified domain, and that tells you what it should resolve to.

So there you go, a global distributed namespace for Mastodon—and other—accounts, based entirely on Internet standards.

The only improvement I could see is to also support the use of RFC 2782 DNS SRV records with WebFinger. This would stop requiring the server that’s sent the WebFinger query be the one named in the acct: URL. That is, instead of sending the query to whatever mastodon.social normally resolves it, it could be sent to any of a number of servers specifically set up for handling the queries. That would allow domains to run social.example.com etc. while still giving their users example.com usernames, without having to run additional software on the main web servers handling the example.com content.

But that’s just an optimization/evolution. For right here and right now, WebFinger is plenty easy, and so are acct: URIs.

Note: One thing this doesn’t resolve is linking to content on another Mastodon server. Thus one might still want a mastodon: URI scheme that works identically to an acct: URI but also allows reference a post or hashtag. That way you can say “this content from this account” and have the resolution happen such that clients don’t need to “shell out” to a web browser to present it. That’d eliminate another supposed advantage of centralized microblogging systems.