From the very beginning of the internet we’ve wanted to talk to our friends. Or to talk to people who might become our friends. At first this was easy because there weren’t many people online so you could know everyone who found their way into an IRC channel or MUD or various other chatroom but as more people got online staying in touch with your friends became harder and it wasn’t long before our online social networks evolved into and were enabled by social networking sites (SNS). In my memory this starts with SixDegrees, for others it might be Friendster, Xing, MySpace or any number of other sites where you could subdivide everyone into a smaller group of people you wanted to connect directly with long before most of the world found their way onto Facebook. And everyone who has every used one of these sites has faced the same dilemma – leaving.
Not that it’s hard to walk away from any particular site but it is hard to walk away from the friends you made there, and in a very real way this became one of the tools used by these sites to keep you there. If you leave the site you are leaving your friends and you wouldn’t want to do that right? They used guilt along with various technical lock ins to make it very hard for you to recreate your social network on some other site. You might think of these people as friends but these sites look at your friends as valuable proprietary data. Of course this isn’t a good thing, they actually are your friends after all, but business models as they are with these sites want you to think you only have friends because they allow you to. So almost since there were social networking sites people have been trying to find ways to export their list of friends (or their social graph if you want to get fancy) and bring it into another site.
But just getting the information isn’t enough, if your friends aren’t using a new site then trying to connect with them there is going to be hard even if you somehow were able to bring over your friend list from another site. This is a problem with centralization, you need people to go to the specific place. There’s other privacy invasive options like uploading your entire address book but maybe you don’t want to show this company everyone you know, or maybe you don’t want to leak your friends private info, or maybe just because someone is in your address book doesn’t mean you want to connect with them on every social media site. Are they actually your friends or work colleague or ex-roommate or a million other potential classifications that makes this problematic? Anyway, this isn’t a new problem and smart people have been trying to solve it for a long time.
I first remember Ryan King talking about it in 2005 though he even notes then that this was a frequent conversation at the time. We were in the beginning of Web 2.0 but already imagining what Web 3.0 might be, and calling it The Semantic Web. (This is not to be confused with Web3 – the distinction between Web3 and Web 3.0 is still lost on a lot of people, and sadly a lot of the people who dreamed about Web 3.0 are missing Web3 because if silly biases, but that’s a different story for another time). Projects and proposals like Microformats and IndieWeb imagined an internet where an individuals personal data was owned by and controlled by themselves rather than by for profit companies. Rather than a website allowing you to see who your friends are you could choose to allow a website to see your friends. It was a revolutionary idea at the time, as Ryan notes, and unfortunately it didn’t catch on in the scale that any of us hoped it would. And as a result of that lack of adoption my Twitter feed right now is full of friends worrying about how they will stay in touch with each other if Twitter suddenly disappears. It’s got people talking about Mastodon again, which while open source is really many of the same problems in a different uniform. And so the dreams of 2005 have gone largely unrealized in the last 17 years.
If you have been paying attention to whats going on in Web3 then this description of “own your own stuff” probably sounds familiar. And this is where things start getting really, really exciting. (Well, I mean if you are a nerd about this stuff it’s exciting, and I clearly am, and if you are still reading I’ll assume you are as well.) There are two new blockchain based protocols I’ve been playing with, Farcaster & Lens, which are super promising and already delivering on some of these dreams and I wanted to share them here.
Farcaster is a “sufficiently decentralized social network” which combines on-chain (ethereum) with off-chain to create something where people own their own information, their usernames, social graphs and posts, and decentralized enough that anyone can build something on top of those profiles – and enables people to switch between services without needing permission from a company. A quick look at the growing ecosystem shows how people are already putting this to work. For example right now the primary Farcaster application (which is not yet publicly released) doesn’t show public profiles, but Discove.xyz is built on the protocol so you can see my profile here.
Lens Protocol is a decentralized social graph built on Polygon which takes the interesting approach of making your username an NFT and then minting NFTs of your connections, which then allows any application using the Lens protocol to just look at your wallet and then immediately build out your profile. For example here is my profile on Lenster which is currently the primary SNS using the protocol, and when I signed into Orb (another currently mobile only option) it instantly populated my profile, posts, and followers/following with everything I’d set up on Lenster.
I didn’t need to export anything from Lenster, I didn’t need to import anything to Orb. Didn’t need permission or anything. When I updated my header image on Orb, the change was immediately reflected on Lenster. I looked at a few other Lens based sites and it was the same everywhere. Possibly even more exciting is that not only the posts were mirrored, so were the reactions. Hearts, replies, shares, etc.. all the same everywhere. It was mind blowing. Of course there are ways to syndicate out a post from a Web 2.0 SNS to others, using IFTTT for example you can write a script to send your Tweets to your Tumblr, or you can connect Twitter to Instagram so that a photo you post on Instagram is announced on Twitter, but the result is that these are still separate sites with individual comment threads and ultimately disconnected. With Lens it’s all the same, because they are decentralized and I as the owner of the post and the profile let each site access it from the blockchain. However we haven’t moved entirely from Web 2.0 to Web3 yet, so luckily there’s a way to send things back as well. I tested it out and it worked brilliantly – this post originated on Orb, was cross posted to Twitter and reflected on Lenster. Obviously any replies on Twitter stay on Twitter, but a reply on Lenster is seen on Orb. It’s magic.
Looking through the ecosystem lists on both projects I don’t see any option to sync the two yet, however I can’t imagine that is going to be too far away. Similar problems being solved in both and a lot of overlapping ideas. I’m really so excited to see this and to realize we don’t need to have the “____ sucks now because [policy/management] change, I’m deleting this app, where is everyone going next so we can connect there?” conversations every few years any longer. Obviously this is early days, these are beta applications on beta protocols but I can see where it’s heading and it’s so much of what I’ve been dreaming about for almost 20 years. I’m sure it’ll take a little while for this to click with everyone, and a lot of people are going to need to get past their crypto biases, but this really is the empowered user world we’ve been hoping for. If we’re friends, if we’re connected on one of any number of current social networks, I do hope you’ll check this out sooner rather than later. I don’t think mass adoption is an if, it’s a when.