Micro.blog

paul@tapbots.social
paul@tapbots.social

As part of Ivory 1.3 I added in support for universal links. They should now be enabled for mastodon.social links (assuming Apple has finished caching the association file). Pretty cool, just wish there was a more generic way to do it instead of instance by instance.

mergesort@macaw.social
mergesort@macaw.social

@paul I noticed last week this worked with mas.to links too, is the plan to cover big domains one by one or perhaps some opt-in process?

murat@synaps.space
murat@synaps.space

@paul both you in the app and instance owner needs to do configuration to enable this, right? If you provide a document and an application form for instance owners, maybe supported instance count can be increased quickly.

renchap@oisaur.com
renchap@oisaur.com

@paul we should have enabled it for mastodon.online as well

paul@tapbots.social
paul@tapbots.social

@renchap yeah but I need a new build for that to work, it's queued up for the next release.

paul@tapbots.social
paul@tapbots.social

@mergesort not sure, it's got to be done on the server and client, which is a bit of a hassle specially for hundreds of servers.

krssctt@mastodon.social
krssctt@mastodon.social

@paul hang on, are you able to add multiple apps to the server’s association file? (I assume Ivory didn’t get exclusive rights to .social) What happens if you have multiple apps installed that are associated to the same domain?

paul@tapbots.social
paul@tapbots.social

The process of adding support to an instance is pretty simple, just need a json file at /.well-known/apple-app-site-association with an "applinks" hash. Then it needs to get added to the app as well. Willing to add more in for some of the bigger instances just not sure if there's some kind of limit on Apple's side.
tapbots.social/.well-known/app

plaetzchen@mastodon.social
plaetzchen@mastodon.social

@paul Is there a way to automate that for instances or distribute it through the github repo of instance servers?

lucas@post.lurk.org
lucas@post.lurk.org

@paul Did you consider a Safari extension like Apollo has to open Reddit links?

Not the sexiest solution tho.

danielcolquitt@mathstodon.xyz
danielcolquitt@mathstodon.xyz

@paul how about mathstodon.xyz — we’re not massive, but we’re geeky!

vmstan@vmst.io
vmstan@vmst.io

@paul are we then limited to just one app using this method?

paul@tapbots.social
paul@tapbots.social

@lucas it's problematic for similar reasons, no list of instance domains.

paul@tapbots.social
paul@tapbots.social

@vmstan nope, can have multiple ones, look at the mastodon.social one.

tym@iosdev.space
tym@iosdev.space

@paul @kylewritescode

dustinrue@chateaude.luxe
dustinrue@chateaude.luxe

@paul am I understanding this correctly? I can do some magic on my instance to make additional magic happen in Ivory? What is this magic, can I simply use this same apple-app-site-association on my instance as well?

lio@pounced-on.me
lio@pounced-on.me

@vmstan @paul Nope!

curl'd .social because I was curious and it looks like you just need to add new apps to an Array

paul@tapbots.social
paul@tapbots.social

@dustinrue needs to get added to app as well.

lucas@post.lurk.org
lucas@post.lurk.org

@paul makes sense.
There is no way of knowing by pinging a certain path or looking up a meta tag?

murat@synaps.space
murat@synaps.space

@lio @vmstan @paul Do you know what happens if we have both apps? Does the array order also points to the preference?

dustinrue@chateaude.luxe
dustinrue@chateaude.luxe

@paul yea I just found the apple docs about this and now I see it…bummer but if it can be part of larger instances it is a bonus

lio@pounced-on.me
lio@pounced-on.me

@murat @vmstan @paul No Idea! Sorry

mergesort@macaw.social
mergesort@macaw.social

@paul Yeah, I figured. But I also wonder if getting it on the top N servers will not only get you to 80% of links covered, but set an example for smaller servers who may do it on your behalf going forward. Obviously speculating here, but personally I'd see if it's possible to reach out to some of the bigger servers for this.

eudes@bolha.one
eudes@bolha.one

@paul would be nice something like an auto-add of know instances.

Like ivory discovers a new instance on the user timeline and automatically add it to the list, so would be a nice way to create a list

vmstan@vmst.io
vmstan@vmst.io

@paul a quick Nginx update and I'm ready 😁
vmst.io/.well-known/apple-app-

pixel@social.pixels.pizza
pixel@social.pixels.pizza

@paul I feel like it should be a mastodon feature for the admin to pick its preferred client

demize@unstable.systems
demize@unstable.systems

@paul I get why Apple would require two-way association, but it is sorta sad that it means small and single-user instances can't really benefit from this :(

charlag@birb.site
charlag@birb.site

@paul people kept asking for it for Tusky but we all agreed that it's a bad idea. Need to decide which instances go in. Favoring big instances as well.

I wish apps could register this stuff somehow dynamically.

e38383@infosec.exchange
e38383@infosec.exchange

@paul I’m voting for infosec.exchange. @jerry could you add this?

paul@tapbots.social
paul@tapbots.social

@pixel should be an end user option to pick the app associated with a domain.

jan@toot.io
jan@toot.io

@paul Many admins using the default Nginx conf from the Mastodon repo, maybe you can add it here: github.com/mastodon/mastodon/b

paul@tapbots.social
paul@tapbots.social

@charlag why is it a bad idea though? I would prefer it get done at least a few different ways but better to support some than none, IMO.

pixel@social.pixels.pizza
pixel@social.pixels.pizza

@paul agreed, I’m just talking about which one shows up if you browse to the website, which I think can only be one?

paul@tapbots.social
paul@tapbots.social

@pixel multiple apps can be registered for universal links, adding Ivory doesn't block other clients.

hunter@social.skrasek.us
hunter@social.skrasek.us

@paul is there a way to “dynamically” add these associations? Thinking an API that could add the instances

paul@tapbots.social
paul@tapbots.social

@hunter nope, has to be added to a flat file on each client.

SteveBrazill@mstdn.social
SteveBrazill@mstdn.social

@paul Forgive my stupidity here, but what will I see from the links? Or maybe I won’t, if you haven’t added the instance im on - mstdn.social.

pixel@social.pixels.pizza
pixel@social.pixels.pizza

@paul oh cool I thought there could only be one

paul@tapbots.social
paul@tapbots.social

@pixel wrong movie.

pixel@social.pixels.pizza
pixel@social.pixels.pizza

@paul LOLOLOLOL

troy@opencoaster.net
troy@opencoaster.net

@paul Do the files have to be in the app when you ship an update or can they be created in app?

raygan@bird.rodeo
raygan@bird.rodeo

@paul @lucas weird suggestion but could you build your own list of domains based on Ivory logins?

paul@tapbots.social
paul@tapbots.social

I suppose one decent way to do this is if the Mastodon project would add that file in to the project (it's not highlander rules, multiple apps can be associated). Then assuming Apple doesn't have a limit on associations per app (anyone know?) I could stick in the top 500ish instances easily enough.

paul@tapbots.social
paul@tapbots.social

@raygan @lucas no, we don't have any analytics in the app on purpose.

mdallens@piaille.fr
mdallens@piaille.fr

@paul would it make sense to additionally provide a generic domain for smaller instances? For instance htttps://ivoryapp.com/mastodon.online/dummy would open in the app, with a browser fallback that redirects to htttps://mastodon.online/dummy
This might raise security issues ; in which case adding an allowlist on ivoryapp.com would still be easier than deploying a new app for supporting new instances.

sharding@mastodon.social
sharding@mastodon.social

@paul I have no clue, but this feels like the kind of thing where there might be some undocumented limit that just starts causing weird and hard-to-debug failures once you've exceeded it…

jerry@infosec.exchange
jerry@infosec.exchange

@paul What is the process for generating the hash? (or are there any parameters for what the hash needs to be?)

paul@tapbots.social
paul@tapbots.social

@jerry hash as in dictionary/JSON object, not as in crypto hash.

vmstan@vmst.io
vmstan@vmst.io

@bricks @paul boo.

elliot@social.lgm.ltd
elliot@social.lgm.ltd

@paul couldn’t this be done with a protocol handler?

vmstan@vmst.io
vmstan@vmst.io

@paul or if there was an API from joinmastodon.org you could poll that would give you a list to include.

paul@tapbots.social
paul@tapbots.social

My preferred approach would be to have a community run redirect server that would take URLs of the format abc.org/domain/acct/post_id and redirect or pass to universal links if any of the apps that support that format are installed.

Feels like the cleanest approach and let's apps do some cool things when they see those URLs on the timeline, but “centralization”/“privacy", etc…

sayrer@mastodon.social
sayrer@mastodon.social

@paul acceptance is the better path. if Mastodon/ActivityPub gets huge, then you’ll be handling material as hazardous as “mailto:" links. It's possible to configure GMail in Chrome to open these, but it's a bit of a battle.

paul@tapbots.social
paul@tapbots.social

@vmstan I already have a list of the top instances by user counts.

renchap@oisaur.com
renchap@oisaur.com

@paul but it would also be good to support a lot of clients, and this starts to be massy 😀

april@dummy.cafe
april@dummy.cafe

@paul what if there was a url protocol thing, like how theres irc:// to open an irc server for example

vmstan@vmst.io
vmstan@vmst.io

@paul awe ☺️

dustinrue@chateaude.luxe
dustinrue@chateaude.luxe

@paul feels like it would be a super simple edge function

paul@tapbots.social
paul@tapbots.social

@renchap It's really only a list of app IDs, not super hard to keep track of. I'd be surprised if there's ever over 100 widely used iOS clients.

hunter@social.skrasek.us
hunter@social.skrasek.us

@paul hmm. I understand why Apple made that decision. But also, that sucks

timo@hetzel.net
timo@hetzel.net

@paul if Apple would make this configurable on iPhone per domain, the user could choose an app per domain. Don’t see that happening though.

elvo86@ohai.social
elvo86@ohai.social

@paul you mean like mstdn.link/?to=https://tapbots

Mattmaber@mastodon.art
Mattmaber@mastodon.art

@paul @vmstan mastodon.art go on the list? @Curator 🧐

demize@unstable.systems
demize@unstable.systems

@paul would you believe that Mastodon used to have a URL protocol (and a protocol handler in the web app) but they got rid of it because being asked to register the handler when you first signed up was too intimidating

instead of, say, making you have to click a button in Settings to register it... they just got rid of it...

paul@tapbots.social
paul@tapbots.social

@demize I kind of get it, URL protocols are a bit PITA to deal with all around, the world has kind of settled on https.

schneider@mastodon.social
schneider@mastodon.social

@april @paul i think URL protocols like irc: or mailto: would be the ideal long-term solution yeah, then the browser or app could open it in whatever default client you have set without any clumsiness or middle-man services

Curator@mastodon.art
Curator@mastodon.art

@Mattmaber @paul @vmstan If it requires database access or something changed to the default masto install then we can't - we're hosted, and MastoHost uses the default installation, so it'd have to be something that gets included in the main branch of masto (as Paul said above, if the Masto project added that file).

jerry@infosec.exchange
jerry@infosec.exchange

@paul Got it. Thank you. We have a modestly sized instance. Does this work? infosec.exchange/.well-known/a

Mattmaber@mastodon.art
Mattmaber@mastodon.art

@Curator @paul @vmstan 👍 fair enough.

DataDrivenMD@fedified.com
DataDrivenMD@fedified.com

@paul I can help build a serverless API that does this, assuming there's interest and support from @Gargron + the Mastodon Project for this sort of public service

paul@tapbots.social
paul@tapbots.social

@jerry apparently I'm limited to about 20-30, but since you are #17 on my list I can pop it in.

vmstan@vmst.io
vmstan@vmst.io

@paul hey @supernovae I think you will like this.

demize@unstable.systems
demize@unstable.systems

@paul it's too bad though, it's practically ideal for a case like this... but yeah, seems like the world has locked onto URL recognition more than protocol handling now

gedeonm@mastodon.social
gedeonm@mastodon.social

@paul Waiting patiently for those custom instance emoji in the body of posts.

It sure is fun to be on the giving and not receiving end of requests like this!! 😂

bnut@aus.social
bnut@aus.social

@paul I’ve been thinking inter-server following would also be nicer with something like the community redirect instance. On web at least they seem to have come up with some workarounds.

I wonder if there’s a way to encrypt the redirect source so the community instance doesn’t know. A dynamic well-known file, or a Safari extension to redirect to subdomains like ivory.mastodon.social, … I suppose it all depends on what you want to keep private.

charlag@birb.site
charlag@birb.site

@paul it means using a lot of time for maintaining the list and still shipping half-working (this confusing) feature that encourages centralization

paul@tapbots.social
paul@tapbots.social

@gedeonm they are there now, except the default is off and there's no setting to turn them on.

josephduffy@mastodon.social
josephduffy@mastodon.social

@paul I'm developing a web extension that adds a button to the page that opens the Mastodon post/profile in a native app.

So far it's working great for my needs and it supports any Mastodon instance. In theory any federated content could work too. It just relies on URL schemes for each of the supported apps.

phx@indieweb.social
phx@indieweb.social

@paul is it possible to write a Safari Web Extension which inspects the page for any `link[rel="application/activity+json"], a[rel="application/activity+json"] ` tags and offer launching Ivory on any page that has an activitystreams alternate link?

ptoomey3@mastodon.social
ptoomey3@mastodon.social

@paul the actual mastodon instance owner is the one that has to add the site association though, right? If so, That’s a lot of coordination.

richardloxley@home.social
richardloxley@home.social

@paul I’m not really in the loop for that technology, but I remember the LastMinute app had a problem a few years ago because they added the domains for every hotel in their database and it crashed devices until you deleted the app. Maybe look up that incident and what the resolution was? One hopes Apple may have now put something in place to stop that happening again!

kylewritescode@iosdev.space
kylewritescode@iosdev.space

@paul @heyjaywilson We should do this for iOS dev space!

tylerstone@sfba.social
tylerstone@sfba.social

@seb Can sfba.social please add an Apple App Association file to the server and coordinate with @paul such that Ivory can support universal links from our instance?

blake@fosstodon.org
blake@fosstodon.org

@paul FWIW Matrix has precisely this with matrix.to. Something like tomastodon.app?

axxl@mastodon.social
axxl@mastodon.social

@paul I looked into this as well. There was a limit but that may have changed since they started caching the app files themselves. I'll have to refresh myself on it since I'm on vacation but I'll try to go find what they said on Monday. My vague recollection is that app launch time slowed incredibly, but maybe that's a bug that was fixed.

DanMorgan@vmst.io
DanMorgan@vmst.io

@paul @gedeonm
picard_wtf swidt

billvinson@hachyderm.io
billvinson@hachyderm.io

@paul @gedeonm
So close yet…

gormster@theblower.au
gormster@theblower.au

@paul you could do a safari plugin like @christianselig did with Apollo. It’s not a perfect solution but it’s not bad.

BenCurranDev@hachyderm.io
BenCurranDev@hachyderm.io

@paul @quintessence can I add this to the community repo issues?

Informatiker@nrw.social
Informatiker@nrw.social

@paul I don’t know if there is a limit but at our company we some years ago already decided to not put any more domains inside the app, and rather dealing with * for all subdomains. Has some disadvantages, but will also not work for mastodon unfortunately

alexito4@mastodon.social
alexito4@mastodon.social

@paul i thought the file had to be on the domain itself (mastodon.social) for it to work.

brunoscheele@mastodon.social
brunoscheele@mastodon.social

@paul The main issue is that the comparison can take significant time every time someone taps a link if an app has many associated domains.

I wouldn’t put it past Apple to ding an app (read; cut off the Universal Link support or reject app updates) if opening a Universal Link takes too long to pass an app’s check.

That and if more readers do this, it becomes a toss-up which app is opened.

jesusfdiaz@mastodon.social
jesusfdiaz@mastodon.social

@alexito4 @paul yeah, that got me thinking too. My understanding is you have to own the domain and put the aasa file in each one.

fabianfett@chaos.social
fabianfett@chaos.social

@paul Could the approach that @christianselig took for Apollo work here? Since he’s a third part reddit client, he of course doesn’t have access to the well-known. He wrote a small Safari plugin that detects if you have landed on a reddit page and then forwards the page to the app.

alexito4@mastodon.social
alexito4@mastodon.social

@jesusfdiaz @paul OH WAIT, Paul meant that mastodon.social has Ivory in their own file. That makes sense :) and of course what a pain 😆 I love to see the community getting together to help each other get things right. so nice!

jesusfdiaz@mastodon.social
jesusfdiaz@mastodon.social

@alexito4 @paul that makes more sense, yeah.

tekphloyd@social.lol
tekphloyd@social.lol

@paul please add social.lol 😉

dldnh@mastodon.social
dldnh@mastodon.social

@paul I'm a big Ivory fan, but I have to be honest, this felt a little yucky, that one of the mastodon clients got to put its app button into my browser when I'm looking at the web view of a post. I did not like this.

toph@mastodon.social
toph@mastodon.social

@paul Apollo has a Safari extension that automatically opens the app when it detects a Reddit page, without universal links. That could probably work, no? Detect that you’re on a Mastodon page, open the link in Ivory.

(Technically it redirects Reddit pages to to openinapollo.com)

paul@tapbots.social
paul@tapbots.social

I can probably resurrect the Safari Extension but this looks kind of silly.

endeavorance@astral.camp
endeavorance@astral.camp

@paul this is a really interesting problem! I guess blanket access and trying to detect if a page is running mastodon is out of the question.

rrgeorge@raphus.social
rrgeorge@raphus.social

@paul a safari extension may be cleaner, and allow for unlimited servers. @christianselig uses that method for Apollo and it works flawlessly.

maique@social.lol
maique@social.lol

@paul Happy to see social.lol on the list already prami

fahrni@curmudgeon.cafe
fahrni@curmudgeon.cafe

@paul Paul, it may look ridiculous but it will allow folks to get what they’re after.

MikeBeas@mas.to
MikeBeas@mas.to

@paul The “open in ivory” button in the share sheet has been perfectly sufficient for me honestly

SimbaOne@worldkey.io
SimbaOne@worldkey.io

Yea! If you watch Paul’s video to the very end, worldkey.io is included in good list! @matt

bugdave@infosec.exchange
bugdave@infosec.exchange

@rrgeorge @paul @christianselig it doesn’t work with everything Reddit. Unsure why he’s avoided fixing this for so long. github.com/christianselig/apol

In reply to
manton
manton

@paul Kind of obvious but universal links weren't really designed for when the client and server apps aren't basically a single pair of apps run by the same company. 🙂 My 2 cents, universal links often get in the way and might need an overhaul to not create more problems than they solve for Mastodon.

glauca@glauca.space
glauca@glauca.space

@paul Hi, we've add that file to glauca.space!

joel@msgs.ee
joel@msgs.ee

@paul This would be solving a different problem, but Tapbots could maybe also run such a service, and links shared from Ivory could be (optionally) something like https://<tapbots-service-domain>/<reference-to-post>

Then, opening that link could have a page w/ options like “open post in Ivory”, “open in X”, “open original url”, “open in <enter your instance>” (and a “do the same next time” checkbox)

Would make it easier to share post links so the recipient can open them however they want to…

matt@worldkey.io
matt@worldkey.io

@SimbaOne oh, cool, thanks @paul I appreciate that!

cliophate@overkill.social
cliophate@overkill.social

@paul and it doesn‘t even include overkill.social with a whopping 3 users!

mackuba@martianbase.net
mackuba@martianbase.net

@paul you can remove bitcoinhackers(.)org, it's been shut down a few weeks ago 😉

StevenBarnhart@mastodon.social
StevenBarnhart@mastodon.social

@paul does apple allow the user to add change the list if the app made that option available? You could keep it way slimmer, then.

khaost@mastodon.tz.is
khaost@mastodon.tz.is

@paul Made a "linkto.community" with Cloudflare with the apple-app-site-association setup mirroring the mastodon.social. Not sure if people will use this.
linkto.community/tapbots.socia

christianselig@mastodon.social
christianselig@mastodon.social

@bugdave @rrgeorge @paul Not everything is malicious avoidance 😛 Will fix in next build

scottswezey@mastodon.social
scottswezey@mastodon.social

@paul this may be a good place to copy what 1Password does and include “other websites”

paul@tapbots.social
paul@tapbots.social

@khaost yeah pretty much that minus the @ and widely supported somehow.

khaost@mastodon.tz.is
khaost@mastodon.tz.is

@paul I imagine it’s probably better keep the url as is, since that will be easier to parse by existing implementations? Like they can strip out the “linkto.community/“ and get a working URL that fits existing universal link parsing logic?

Widely supported part is going to be the challenging one 😆

xeenon@mastodon.social
xeenon@mastodon.social

@paul It is messy, but it is better than asking for all sites. You could use the activeTab permission, then the user decides what is a mastodon instance and no permission prompt required. Just need good error handling when it is used on a random site.

via@myf.one
via@myf.one

@paul wouldn’t mind if you added myf.one 😋

luna@social.transpeak.lgbt
luna@social.transpeak.lgbt

@paul I get the sense that we’re probably going to see some changes to make interacting with decentralized services easier at WWDC

gh0sti@mastodon.social
gh0sti@mastodon.social

@paul not long enough. Make it longer.

DigitalKrampus@geekdom.social
DigitalKrampus@geekdom.social

@StevenBarnhart @paul I was wondering about this too. Have a single global switch to open everything the Ivory app lists as a mastodon site, but then the user could add backlist sites to NOT open in Ivory?

bugdave@infosec.exchange
bugdave@infosec.exchange

@christianselig @rrgeorge @paul 😂 woot! Thank you 😊

paul@tapbots.social
paul@tapbots.social

@khaost iMessages screws up URLs with @ in them, its really annoying to deal with.

khaost@mastodon.tz.is
khaost@mastodon.tz.is

@paul How does iMessage screw up those URLs? It looked okay for me?

paul@tapbots.social
paul@tapbots.social

@khaost try in that chat a URL with @ tian, or something like that. I know it happens all the time when @ mark.

khaost@mastodon.tz.is
khaost@mastodon.tz.is

@paul ah I see what you mean, their new @ person thing. It looks like that only kicks in if the user manually types @something in there, if you paste a URL in there, iMessage won’t do anything to it?

paul@tapbots.social
paul@tapbots.social

@khaost seems to for pasting too which is why its always bugging me.

khaost@mastodon.tz.is
khaost@mastodon.tz.is

@paul maybe a bug in iOS? I don’t see 16.4 do that

paul@tapbots.social
paul@tapbots.social

@khaost does it on the latest public Mac.

joshuabeny1999@swiss.social
joshuabeny1999@swiss.social

@paul If you do it this way. Don't forget swiss.social 🙈

zomtecos@zmtdn.de
zomtecos@zmtdn.de

@paul I didn’t see my personal instance. 😢

khaost@mastodon.tz.is
khaost@mastodon.tz.is

@paul that’s annoying 😧

objc@mastodon.social
objc@mastodon.social

@paul really hope someone at Apple reaches out to you about this soon, even if it isn’t in time for WWDC

grandall95@lgbtqia.space
grandall95@lgbtqia.space

@paul nah I agree. BUT! I would welcome this with open arms :) !

flogehring@mastodon.social
flogehring@mastodon.social

@paul makes you think there should be a system side protocol like mailto: for mastodon

paul@tapbots.social
paul@tapbots.social

I put in 500+ app associations (universal links) and it seemed to build, process, work with no warnings. So now thinking the 20-30 limit is maybe obsolete, but still not sure if I trust it not to blow something up.

elias@foxhold.net
elias@foxhold.net

@paul
app store review:

rotopenguin@mastodon.social
rotopenguin@mastodon.social

@paul somebody's iPhone 6S is going to explode spectacularly from this

jswright61@ruby.social
jswright61@ruby.social

@paul what is the number of subscribers at the bottom of the list?
(Asking from an instance of ~ 5k users.

nathan@social.lostinok.com
nathan@social.lostinok.com

@paul Does the universal link registration have to happen at compile time or can it be changed by configuration in the app? Just asking as one of those guys with a self hosted instance.

tommyang@mastodon.social
tommyang@mastodon.social

@paul I remember this iOS 9 crashing bug related to universal link… macstories.net/news/a-mysterio

stairjoke@indieweb.social
stairjoke@indieweb.social

@paul I just hope Apple won’t kick you out, I love Ivory!

esummers@hachyderm.io
esummers@hachyderm.io

@paul We really need a mime-type equivalent for websites. Universal Links don’t really work for decentralized services.

jabwd@mastodon.social
jabwd@mastodon.social

@paul Wouldn't the privacy thing be fixable by using k-anonimity?

thull@mastodon.social
thull@mastodon.social

@christianselig Thank you for serving us 👑

a@pdx.social
a@pdx.social

@paul This is a neat capability, but is there a way to disable it? I have multiple mastodon clients installed and don’t want Ivory grabbing everything.

thisismissem@hachyderm.io
thisismissem@hachyderm.io

@paul have just opened github.com/mastodon/mastodon/i as there didn't seem to be an issue open for it.