My simple social network

My simple social network

Photo by ROBIN WORRALL

Daniel Lombraña

If you have been looking for a text social network, you probably have ended in Twitter, Bluesky, Threads, or the less known ones Mastodon, Farcaster, or Lens.

When Elon bought Twitter, a lot of people felt that it was time to find a new home for their thoughts. Some people moved into one of the previous platforms, and others stayed. In my case I jumped to Bluesky, Farcaster and Lens. Farcaster became my home for a long time, until it wasn't interesting anymore.

Farcaster and Lens are decentralized social networks built on top of blockchains. As you can imagine, that could give you a lot of red flags as lots of people as soon as they hear blockchain or crypto they feel is a scam (I wonder, why, right?).

The truth is that on paper, they both look nice. Different approaches, but solid ones. Then, from the point of view of the network is not the technology but who is there sharing. Lens was more focused on artists at the beginning, and Farcaster on web3 development. And that is why Farcaster became my home for the last few years.

Do you remember that I said that Farcaster is built on top of a blockchain? Well, the first owners decided that as the network was not growing as expected, the best solution was to tap into the "coin-frenzy that was happening inside the crypto world". Fast-forward, they failed, people left, and they decided to sell the company and network to someone else.

The new owner said it will be focusing more on the developer side, but people stayed doing the same: apps for coins. Everything revolved around money and for me it killed the momentum. Fast-forward again. Farcaster is dying. Something we all knew. Hence, if this is finally happening I need a way to keep posting my thoughts but without getting involved again on a company-owned social network.

Thus, I have decided to create a very simple social network. Let me explain it.

The idea

I am an Android user, which means I can open a terminal on my phone or tablet. How? With the amazing Termux app.

With a terminal in my phone, I can install any Linux tool I need, so I can access my git repositories, and even code if I want to.

My personal site is a Nuxt site that builds as a static site, so I can deploy it anywhere (now in Vercel).

Thus, I have created a few scripts (npm run new) that allows me to create a new blog post or project from any terminal, and then write the post with Neovim (yep, I am that type of guy).

While this might not be for everyone, it gives me the flexibility that I want: writing when I need to without having to carry all the devices with me.

As this new workflow was working well for me, I thought, what if I duplicate the blog post solution but just for thoughts, because a lot of times I only want to share something small, nothing too long. This thought led me to create my /thoughts URL.

How it works

My whole idea is this: I own my website, I can host it anywhere (even my own hardware), so it is "decentralize" (see the double quotes please).

A lot of people have their own sites like mine, so they could add their own /thoughts section.

If I find some person that I like, I can check their site and look for their /thoughts page. If they have one, I can follow them. But how? Easily, all those thoughts are exported as an RSS feed, so nothing fancy is required (if you have a blog, you probably have already an RSS feed as well).

Does any of this ring a bell or sound familiar? To me yes, the good old planet of RSS feeds that you could check from projects like GNOME or KDE. Those planets are a hub of RSS feeds from the developers, contributors, etc. that belong to that community that show a single feed for you to consume. Simple but effective.

With this in mind, we only need to update our /thoughts to become your client, in other words: your planet of thoughts.

Easy peasy: no authentication (I'm tired of the indie-web solutions to just be in the rings, requiring a mastodon user, etc. to just do something), you control everything, it is fully decentralized (it is up to you to subscribe to the people that you want to follow) and most importantly: you handle everything, no third party involved at all. All your data is yours.

How to join

It is really simple, just do the following:

  • On your own blog or site, create a new /thoughts page.
  • Add an RSS feed for your thoughts, so others can follow you.
  • Include in your site a list of who you follow, so your site can parse the RSS feeds and integrate them in your page.

How you do this is up to you. In my case, I used NuxtJS to build it. The publication of thoughts is done via an npm run new command that asks me if I want to create a new blog, project or thought. Then, when I commit the changes and upload them to git, the Vercel integration refreshes the RSS feeds from the people I follow and it builds the page.

An example

I have designed my /thoughts page showing an example of a reply from a fake account named Alice, answering to one of my thoughts, and I have added two real RSS feeds that look a lot like my /thoughts, so I can read something else than just my own thoughts.

Problems or caveats

No notifications

Well, yes, we don't have notifications. But I think this is for the best.

Less noise, more focus on forcing myself to read my own thoughts page to find what others are thinking lately.

No real time updates

As you can imagine, the process to update the feed is not "automatic". In my case, each time I post a new thought, the vercel deployment refreshes the feeds from the people I follow. This is for me a nice thing, as it forces me to write my thoughts as I will get more updates :-)

Replies, how do you reply?

This one is "easy". As each thought has its unique URL we can use that URL to write a new thought that replies to someone's thought. Is it perfect? No. Is it cumbersome? Yes. But it works.

You will only know that someone has answered you if they have added you back, otherwise you will not see anything (again, I think this is good, less spam, more focus on the people you like).

Conclusion

I have built this solution for me, and it works. If you like the idea, I would like to become e-friends of thoughts. If you do, ping me through my official channels so we can test it and see where this goes.