I'm currently reading Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin, which came out in 2017. It is a book about software architecture and design. And today I was able to put something that annoys me about social network and messaging services into new words.
A clean architecture consists of entities at the core. These are important business rules which would even exist if they are not implemented with a computer, but with a paper file system. Then around that are use cases. These manipulate the entities, but have no specific dependence on any implementation. Around those are components for user interface, data presentation and data storage. The dependencies are only inward, the core doesn't depend on any specifics. This is achieved by letting the inner layer control the interface, the outer layer implements it. A use case might need to store data, so part of that component will be an interface for data storage. A data storage implementation will implement that interface, but live in a different component. The implementation will just be one of many possible ones, the use case doesn't depend on anything specific.
Transfer that to content in social media. I have the text of my blog posts, I have the tracks I rode with the bike, I have taken images, and I want to send messages to friends. All these exist independent of the actual medium that I publish them on. The file formats (Markdown, JPEG, GPX) which I use are an implementation detail. And now I want to post them, that is my use case. And I want to post images to an image service, I want to post blog posts to a blog service, and GPS recordings to such a service.