I understand the need to link back to an app. It’s important, but I’m voting for the open web.
All the search and discovery interactions *should* start out on a website somewhere, then link back to your home website (or possibly an app) to share and like.
But, using a new URL scheme will lock out everyone who doesn’t have an app installed, and that’s a bad UX.
Plus, I think we can solve this “back to my server” issue in other ways WITHOUT needing a URL scheme, like: #FEP3b86
Re: It’s really surprising to me that the #fediverse hasn’t agreed on a standardized way to open cross-instance #activitypub objects and instead relies on links that open in the browser.
@ricferrer@mastodon.social the only implementor I know of who has recently played around with this is @rimu@piefed.social of Piefed. They use web intents I think, but the UX leaves much to be desired (many clicks and popups just to register the web intent)
I don't recall whether there was a SWICG task force about this topic... perhaps the HTML Discovery Task Force might be related?
@ricferrer @julian @rimu@piefed.social @evan Here's a video of web+ap url handling in PieFed
https://peertube.wtf/w/7VwgZJ9UkH3REbcngaKn4Z
I'm not claiming it's the **best** solution but thought it was worth trying out.
@ricferrer @julian @rimu@piefed.social @evan Instead of putting web+ap links everywhere, PieFed just silently rewrites urls in post bodies so they go to the local copy of each post, if we have it.
In the threadiverse every instance has every post so this works pretty well.
@rimu@mastodon.nzoss.nz @ricferrer @julian @rimu@piefed.social @evan this is the way for web frontends, which are effectively "browsers in browsers". 👍
if you are starting with a link in your "level 1" web browser, you need to copy it into your "level 2" web browser. https://www.devever.net/~hl/webappcoupling
Re: It’s really surprising to me that the #fediverse hasn’t agreed on a standardized way to open cross-instance #activitypub objects and instead relies on links that open in the browser.
I had a quick back and forth with Gemini about the state of protocol handlers, and there are some options for getting it working without the terrible UI flow in Rimu's video (no shade to you Rimu, it was entirely out of your control!!)
Since NodeBB is installable as a PWA, it is possible to pre-register the web+ap protocol handler, in which case it should "just work" to open those types of URLs.
The other half is having a graceful fallback to opening the HTTPS URL if there is no handler... and to do that you need an interstitial page.
... aaaaand now I completely understand why those stupid "open in app/open in browser" pages exist!!!
It's to trigger the protocol handler.
@ricferrer @julian @rimu We already have an URI scheme for ActivityPub objects; it's https: .
this is a serious issue Evan and dismissing it with replies like this really doesn’t help anything. Its fine to not like the solution of using a custom uri scheme but currently there is not an easy way to interact with a remote object from your home server, and this is one solution to that issue that some people are already familiar with.
@wakest For good or ill, ActivityPub objects are supposed to use HTTPS URIs. It's in the spec: "Publicly facing content SHOULD use HTTPS URIs."
The discovery document shows a few good ways to discover if an HTML page, like a page loaded in a browser, represents an ActivityPub object.
https://swicg.github.io/activitypub-html-discovery/
One of the reasons I'm working on ActivityPub API adoption is to make this use case easier. You can see an explanation here:
https://evanp.me/2024/04/22/cross-server-interactions-in-activitypub/
@wakest Using a custom URI scheme is also going to give absolutely terrible UI for most users, who won't have an app installed.
@ricferrer @evan @julian @rimu
https: is not for web pages. it's for http resources, which can be any content type. the content should be dispatched to the appropriate content handler; for example:
- html opens in an html viewer
- pdf opens in a pdf viewer
- png opens in a png viewer
- mp4 opens in an mp4 viewer
activity+json could be opened in an activity viewer. see firefox for example in pic 1:
How about we start by acknowledging that this is indeed a pain point, and it's been widely discussed that it needs a fix;
@ricferrer
> it’s horrible UX. It opens a browser where I am not logged in instead of opening my default app
In @moshidon, fediverse URLs are often (but not always) recognised as such, and opened in the app, instead of sent to a browser. Can you explain how you achieve this Lucas, and why it doesn't work with every fediverse URL?
How about we start by acknowledging that this is indeed a pain point, and it's been widely discussed that it needs a fix;
@ricferrer
> it’s horrible UX. It opens a browser where I am not logged in instead of opening my default app
In @moshidon, fediverse URLs are often (but not always) recognised as such, and opened in the app, instead of sent to a browser. Can you explain how you achieve this Lucas, and why it doesn't work with every fediverse URL?
@trwnh @evan @julian @rimu while this is true now, it was an evolution. As you probably know, the ht in html and http stands for HyperText, the fundamental concept that enabled websites in the early 90s
The question is what is more realistic for wide adoption… that all browsers start recognizing activities and decide if rendering in a viewer inside the browser or redirecting outside to an app makes sense.