Money is technology

Information technologies have developed various financial instruments to help us transact online. If you have online business, you can accept payments via Stripe. When you want to pay for a product/service abroad, or maybe send some euros to your family abroad, you can do it directly from your bank app.

This is not true If you reside in Serbia. And likely not true in the large part of the world. But even in the most developed societies banks sometimes fail, and bank applications break. In such scenarios it takes time to recover access to your funds.

News article. Such a case happened just a few days before I started writing this.

In the digital age we are witnessing a transition from centralised platforms to decentralised protocols. Like a recent exodus of X users to Bluesky and Mastodon. I gave a talk last year about decentralised social media protocols. Now I will talk about the digital cash protocol.

But before that, let’s first examine what money is.

Read More →

super fast TURBO JS

I’ll be presenting at the first BELGRADE.js sessions about my favorite frontend stack. These are my notes for the talk.

Single page applications significantly improved user experience over traditional server-side rendering.

Client requests only the data that is needed to update the page segment in the same process without rebuilding the DOM. A positive impact on server response time (reduced server load), client gets data faster and updates the page in-place. No white page, scroll position maintained. Great!

Unfortunately, all the good stuff came at the expense of complexity and developer experience. As a full-stack developer now I have to maintain a separate codebase and think about state management, routing, SEO, async data fetching…

Read More →

Online communities and decentralised technologies

Online communities are a bastion of meaningful communication in a growing unidirectional networking. Groups I’ve joined over time are all hosted on Slack, Discord and Telegram - all proprietary software handling well public and invite-only groups.

What about paid memberships?

Paid membership is a great filter for spam.

Paid membership amplifies my motivation to immerse into an activity, like a gym or a language course.

A useful feature rarely available. Discord offers community subscriptions only to US based server owners, with high fees and strict terms. Other platforms outsource to third-party integrations - bots and automations - another layer of complexity and risk.

With technology at disposal, we can do better.

  • Nostr is a social protocol which facilitates identity, direct and group messages.

  • Lightning network is a payment protocol for fast and cheap transactions.

Here is an idea: open-source app tailored for online communities, built on top of Nostr and Lightning.

How would the flow look like?

  • Group landing page has an input field for your Nostr public key.

  • Enter and get Lightning invoice generated.

  • Pay invoice and your Nostr account can connect to the group private relay through a custom client with familiar experience.

Unique features

As paid community grows, valuable content needs to scale. Owner can allocate funds to stimulate other members' contributions.

Community members usually want to connect on public media. Besides internal view, the app would offer public feed (visible only to group members) of all member activity over public relays.

Sounds interesting?

Fediverse, Mastodon and social networking protocols

A month ago I gave a talk at TX Conference 2023 about the Fediverse. The video is here.

Social networks are tools to keep us up to date with what others are doing. But they come with flaws. I will focus on centralization.

Instagram (Meta), Facebook (Meta), LinkedIn (Microsoft)… You see the pattern here?

Major social media is owned by tech giants.

The business of attention and data is a lucrative one, and there’s abundance to keep them running. Revenue is maximized by advertisements and algorithms amplifying content to keep your attention… these features make user a product and communication unidirectional - parasocial media.

But businesses often fail.

When a social network is gone, there is no way to migrate your connections.

Remember MySpace?

The above-mentioned platforms were created 10, 15+ years ago, when hardware was expensive and developer resources limited. To build such a system was a massive technical and financial challenge. Cheaper hardware and developer resources enabled a number of smaller platforms, often powered by open source software.

In 2018 ActivityPub is presented, a social networking protocol authored by W3C.

Protocol is a set of rules for communicating data. You are probably familiar with HTTP protocol - rules web browsers and servers follow to show you requested web page. Or email protocols - rules email clients and servers use to exchange email messages. ActivityPub is a protocol created for social media.

Let’s imagine X (ex Twitter) and Instagram have integrated ActivityPub protocol - Instagram is actually rolling it out for Threads. I could see, like, comment my friends' Instagram posts all inside the X app. They could see, like, comment my X content without leaving Instagram. While this is still an imagination, there are similar platforms which allow this kind of communication. They implement ActivityPub and form a decentralized network known as the Fediverse.

Mastodon is an ActivityPub-supported social network and the most popular one in the Fediverse, with many instances open for registration. It is open source - you can self-host or use a hosting provider. It is used at Medium, Vivaldi (the web browser), and Swiss authorities - to name a few interesting entities.

Other notable ActivityPub-supported platforms include:

  • Pixelfed, a decentralized photo sharing platform
  • PeerTube, a decentralized video sharing platform
  • Lemmy, a social link aggregation and discussion platform

But also WordPress (via official plugin), and soon Threads (docs), Tumblr, GitLab (experimental)… All setting the stage for widespread adoption.

There are drawbacks to this system.

In Fediverse, your identity is tied to an instance where you registered an account. The concept of instance and having to select one is an obstacle for newcomers. Like centralized platforms, you cannot rely on an instance run by communities and individuals to always be available, and when it disappears you have to migrate to a new one. Self-hosting is a choice, but that’s another issue.

Nostr is a social networking protocol with a different approach over ActivityPub.

We’ve covered centralized media, then partially decentralized (Fediverse) - if your instance disappears, so does your identity. Nostr is fully decentralized.

In Nostr you own your identity.
It does not link your identity to a specific server.

How? By using public-key cryptography.
Your public key is your identifier. Everything you publish to the network includes a signature only your key combination can create, in such a way that client can verify it’s you by just knowing your public key. Servers are called relays and serve as a database. They are not federated, do not talk to each other. Clients connect to multiple relays to publish and fetch data. As long as two users have mutual relay, they can exchange content. Moderation, filtering, and blocking are all client-side.

It’s a very interesting protocol I plan to cover in another article.