Since we are in the fediverse, I think it would be convenient to have a fediverse-wide resolvable fediverse URI scheme, that would look like so:
fediverse://
edit: Found a relevant FEP: https://codeberg.org/fediverse/fep/src/branch/main/fep/07d7/fep-07d7.md
It’s an intriguing idea and might well be in line with the founding principles of the internet.
As I understand it, the URI is supposed to define the type of data you will find at the address, allowing you to use a client dedicated to that type. So: use a Gopher client for gopher://
data, a newsgroup program for nntp://
data, and of course a web browser for http://
.
So the issue here would be to define what “fediverse data” actually looks like. This is quickly becoming quite a technical challenge.
Personally I like the idea of standardizing communication paradigms with a protocol, but you do first have to decide what the paradigms are. A few obvious suggestions:
- IM, or one-to-one message (holy grail! but then not public, by definition)
- many-to-many text message (IRC)
- forum post with comments (this thing right here)
- one-to-many message (Xitter, Mastodon)
Since the ActivityPub protocol seems to be the de-facto glue to this fediverse thing, maybe that’s where to look first.
it’s not really about the type of data, it’s more about how you get it. web browsers could open gopher URIs for a long time, it was just a separate access method.
but the thing is, it doesn’t really make a difference today, because we’ve decided that http is some sort of base protocol.
someone decided to try making a custom matrix://
scheme (it’s called a scheme btw) for matrix clients and it’s just been a nightmare. clients don’t know what to do with the url, servers block it, we had to patch it out to get it to properly encrypt messages to our local homeserver. and matrix just uses http on top anyway.
no, i think they should be reserved for protocols that are important enough to be in the <1000 range of ports. like SSH, or Doom multiplayer.
Changing the scheme doesn’t really make any difference if it’s still just HTTP underneath. The scheme is just for indicating a protocol. So what’s the different protocol you’d actually propose?
Apps (at least on android, no idea both iOS) could claim support for the protocol. Removing the need to claim hundreds or thousands of addresses.
By “claiming addresses” you mean domains? Or what?
You mean because the address in the fediverse scheme would be domain-independent? How in the world would that work? How would it know what to connect to? You’re proposing something completely different than ActivityPub at least.
On android, when you click a link that has an association with an app you get the choice to open the app instead of being redirected to the website. Right now every app developer for the fediverse needs to maintain a list of instances for this. If you had a protocol instead you would only need to specify the one.
Look up what a URL schema is. Examples include https
(obviously handled by your browser), ftp
, mailto
, ms-word
etc. The mailto
one is most well-known for letting you choose between in-browser (Gmail etc.) and native (Thunderbird, Outlook etc.) options on desktop and mobile. There does not need to be a formal protocol and port, it’s just a way to signal support for a kind of content via URL.
Absolutely not. It should run on HTTP, as a website. Unless you want to build a client which would be somehow fundamentally different from a web browser somehow (note: Lagrange and Gopher Browser are just browsers), which would somehow be able to display data from every use of ActivityPub / “the fediverse” in a different context from a web browser, then no. What we need to build is website software more in line with kbin / mbin, collecting together all the different information of the fediverse into one interface.
It could continue running on HTTP(S). Did you know browsers and OSs can handle different URL schemas than the ones they natively open (http
, https
, file
, data
)? Ever saw a mailto
, magnet
, ms-word
etc. URL schema? They can be opened with an in-browser or native app of your choice, and this has worked for years. Yes, clients would need to be patched for support but that’s easy. I would only add “instance’s native UI” as a fallback for people coming from outside the fediverse.
Mail clients, torrent clients, and word processors are fundamentally different from browsers. Yes, we can implement their base functions inside a web browser, but that’s not their function, or their core UX principle. Also, you forgot NNTP. Thee is no value in moving away from HTTP(S).
We’re not suggesting moving away from the HTTPS protocol. Gmail and other web email apps, as well as Word Online etc. still use HTTPS to communicate with their backend infrastructure. They are just registered in your browser as apps that can handle the mailto://
or ms-word://
URL schema. This registering most likely happens automatically when you have visited a page that supports the schema so fediverse://
links would continue working for Fediverse users - they’d see a prompt to open the link with their home instance’s web app (its web interface like the default web UI) or a dedicated web app they are already using like Voyager. What would need to change is just a minor thing: browsers would need to offer the default web UI of target instance as fallback: for example, even if you haven’t visited any Fediverse site yet, the link fediverse://lemmy.example.com/post/1337
will show “lemmy.example.com web interface” in the “Open with…” option list, redirecting to https://lemmy.example.com/post/1337
.
Not that I’m opposed, but I’m not sure if it’s practical to make a fediverse-wide link that’s resolvable between platforms since there are so many differences and little incompatibilities and developers who don’t directly interact with each other – or even know each other exist!
Even if it isn’t though, it would be nice to be able to do something like lemmy://(rest of regular url)
to indicate data from a lemmy(-compatible) server that should be viewable by all other lemmy clients without leaving your particular client and having to open some other website.
silly. this would be like expecting to use IE:// for internet explorer webpages instead of an expected protocol standard like http. defeats the purpose of protocol designed around content not applications.
imagine how shitty email would be if we had to tag the server application somewhere in the uri. silly.
It’s not a particular protocol right now, but it would be a URI that refers to a specific resource. A protocol could also be defined – e.g. a restricted subset of HTTPS that returns JSON objects following a defined schema or something like that – but the point really is that I want to be able to refer to a thread not a webpage. I don’t think that’s a silly thing to want to be able to do.
Right now, I can only effectively link to a post or thread as rendered by a specific interface – e.g. for me, this thread is https://old.reddthat.com/post/30710789 using reddthat’s mlmym interface. That’s probably not how most users would like to view the thread if I want to link it to them. Any software that recognizes the new URI scheme could understand that I mean a particular thread rather than how it’s rendered by a particular web app, and go fetch it and render it appropriately in their client if I link it. (If current clients try to be clever about HTTP links, it becomes ambiguous if I mean the thread as rendered into a webpage in specific way or if I actually meant the thread itself but had to refer to it indirectly; that causes problems too.)
I don’t think lemmy://
is necessarily the best prefix – especially if mbin, piefed, etc. get on board – just that I would like functionality like that very much, and that something like a lemmy URI scheme (or whatever we can get people to agree on) might be a good way to accomplish it.
if anything, the op had it correct with fedi:// or ap://
the requests and responses standardized as with any protocol regardless of underlying server.
objects in the fediverse are urls. thats just how it works.
apps (clients) accessing that content are outside the scope of the protocol… its their own implementation problem with how they render stuff (those object urls).
for example; mbin can already consume/ingest a given fediverse thread, post or comment if it has never seen it before (given the url) and render it correctly.
How would that work? Who would resolve it?