Due to the federated nature of Lemmy there’s one small problem: if you link to a community (let’s say https://lemmings.world/c/wwdits) the link takes people out of their instance.
On Lemmy it can be solved easily - use !wwdits@lemmings.world and the community opens on their own instance.
But the problem still exists outside Lemmy, let’s say you write a blog post and link to some community - people who already use Lemmy will again be taken out of their instance.
And to solve this I created this project, available on https://lemmyverse.link and https://threadiverse.link (both are the exact same app).
Instead of https://lemmings.world/c/wwdits you link to https://lemmyverse.link/c/wwdits@lemmings.world and you’re greeted with this:
You can either continue directly if you don’t care, or you can set your home instance and afterwards every link at https://lemmyverse.link will automatically be redirected to your preferred instance (with a small countdown allowing you to change your instance):
If enough people start linking using this service, it will greatly improve the experience for Lemmy users!
Let me know what you think!
Edit: Source code is here: https://github.com/RikudouSage/lemmyverse.link
If you change the format to
https://lemmyverse.link/?id=https://lemmings.world/c/wwdits
, it will automatically work with posts and comments too, as well as objects on other Fediverse platforms. In this case you are storing the Activitypub id of each object, which you can use with resolve_object api call to view it from a given Lemmy instance. Plus it can easily be rewritten by a human to remove the leading domain in case it goes down.Hi there! Looks like you linked to a Lemmy community using a URL instead of its name, which doesn’t work well for people on different instances. Try fixing it like this: !wwdits@lemmings.world
In my opinion this runs counter to the idea of federation; i wouldn’t use it.
You probably do intend to keep it running for ever, but if you can’t for whatever reason, all links created using this service become dead links. If this were client-side, maybe. But this needs a server to be running at lemmyverse.link and/or threadiverse.link. Imagine someone else gets hold of those domains. They can snoop every use.
I have multiple accounts and might want to choose based on what I’m researching. If it were on a client, it should be a widget, but this doesn’t allow me to switch that so easily.
I think the solution should be for all Lemmy clients to detect links when possible and open them up in-app and/or have browser plugins that can redirect requests on the user’s machine. These won’t cover all the cases that your service can, but i would still prefer that over all Lemmy links being resolved by a centralized service that can read your cookies.
I also don’t think this is a proper solution. The proper solution needs to be at a client level and not depending on your server.
Just to give you an example, I’m on lift off app and your link opens in a browser which is annoying.
How do you do it on client level? Let’s say I create a post on Medium, or someone links from Facebook, Reddit, Instagram… anywhere outside Lemmy. How do you solve this on client level?
Sure, you can create a browser extension that does it! But that works only on desktop and not everyone will use, in fact only minuscule amount of people will most likely use it. And how do you do it on phones?
This is a solution that works for everyone, it just requires that the one who creates the link uses it, which is much simpler than forcing everyone to use the same hypothetical client side thing you’re talking about. Just today I learned that Matrix uses the same thing!
Some people here are failing at basic reading comprehension… so many comments talking about “Lemmy clients”, when the whole point is that this for links from OUTSIDE of Lemmy.
That being said, I wonder if this couldn’t be solved by Lemmy directly somehow…? Ideally we could have some way to say “this is my home” that any given instance could know and redirect you from any linked instance back to your home, without any middle-man.
But I don’t know of any way to share that data without some central repository host (which obviously goes against the fediverse vision). Ideally there could be some kind of “shared local storage” in the browser that all instances could use, but I’m not aware any way to do that.
Obviously a browser extension would work, but I don’t think that’s a good solution.