Nostr takes another stab at a decentralised social network after Mastodon. But unlike Mastodon where user identities are attached to servers and servers have a degree of control over registered users, Nostr is a lot more open in that regard. There are two components at play on Nostr: clients and relays. Each user runs a client, while anyone can run a relay. Clients can publish data (i.e. create posts) on any number of relays and fetch data from other relays.
Each user is assigned a public key. When a user follows someone, the user’s client fetches posts associated with that someone’s public key from the associated relay. This process is repeated on start-up, with the client querying data from all relays it knows for all users it follows. The fetched data is then displayed to the user chronologically to make up a feed.