It kind of makes me think of how odd it would have been if many of the old forums named themselves like bookclub.phpbulletin.com, metalheads.vbulletin.net, or something.
There’s nothing wrong with doing that, obviously, but it’s struck me as another interesting quirk of fediverse instances/sites. Generally as soon as you visit them you can tell by the site interface or an icon somewhere what software they’re using.
Each fediverse service needs its own domain and cannot share with others.
So we put them as subdomains, (service).domain.com, so we can run multiple under the same top level domain.
The majority of Fediverse instances are run by volunteers at their own cost or subsist strictly on donations. Domain registrations can get expensive and are a variable recurring cost*, so subdomains (which are free) are the natural choice. That also leaves the apex doamin available for other purposes.
*The cost to renew each year can change and often goes up.
You also can’t reuse a domain between software installations (some exceptions apply when migrating between software of the same “family tree”, e.g. migrating from a mastodon instance to glitch, or migrating between misskey forks) due to how federation works. Hell, reinstalling the same exact software can break federation if you wiped your database in the meanwhile.
Some software offer a “split domain” option where the software itself is installed in a subdomain like mastodon.example.com but with user handles on a separate domain (usually the root domain, like @example.com) but I am not too sure on the reusability of that, and it’s not an easy thing to implement (Lemmy won’t deal with that correctly and will always use the full domain for anyone on a split domain instance). There are also a handful of software (like Takahe) which let you “bring your own domain” so to speak.
Or for personal instances like mine, I don’t even know what I would name it that would make sense to have as a whole TLD.
It would be nice if it supported domain delegation like Matrix does.
I’m generally not a big fan of how Lemmy just assumes its got the domain all for itself forever. I would have liked to have the webfinger API live on the root, so I can have clean handles and community names, but the inbox endpoints and UI would be on a subdomain.
I’ve been thinking of making some proxy thing that can intelligently route ActivityPub from the root to Lemmy/Mastodon/Pixelfed and whatnot so that they can behave like one big instance and browse the same content but differently, but it sounds like as big of a project as making Lemmy itself.
That’s basically what SRV records accomplish. When I looked a while back to see if ActivityPub had support/plans to support them, I landed on, I think, a Mastaton feature request where the response was “won’t implement SRV” because “webfinger already does that” (it does not).
Personally, I think SRV records and webfinger solve different problems and can complement each other. The ActivityPub software would lookup the SRV record matching its platform and use the result from that to query the correct webfinger endpoint to resolve the user’s URI for that platform.
I have no idea why SRV records seem to have fallen out of fashion, but they would easily solve the delegation problem since that’s exactly what they were designed for. lol
So much yes. You’d think that’d be the first thing they’d bake in the ActivityPub spec, given it governs how the user handles are handled, they even look like E-Mail addresses. Yet nobody seems to have thought about making the usernames sane. It’s the first thing I looked up while setting my Lemmy, can I make the username look less stupid, as I did with Matrix when I set that one up.
There’s a weird trend towards stuffing everything as HTTP(S) web APIs and JSON. We’re about to get to a point where everything will talk over websockets because we forgot TCP exists.
Ha, one of my biggest pet peeves is developers poorly re-inventing a wheel that already exists as a standard.
ActivityPub does not govern how user handles work. All AP actors are defined by their IDs (which in Lemmy’s case happens to be the URL their profile is hosted in, which is a mistake as you cannot change your username without breaking federation, but at least Lemmy isn’t alone, both Mastodon and I think *oma family of software do the same thing)
AFAIK the @username@instance convention is Webfinger’s doing, and (to the best of my very incomplete knowledge) the convention of “preferredUsername @ the hostname of the object ID” is a hack Mastodon pulled that got adopted as a de-facto standard (as is quite a lot of other things in AP).