I'm creating a decentralized social media protocol and have begun trying to figure out the right data storage scheme. It feels like storing directly on chain would prove costly, inefficient, and wouldn't scale, but maybe I'm wrong. I'm wondering which of two systems would be ideal or if there are any other options I am missing.
The first is pure Ethereum (or StarkNet). Have storage contracts for posts, users, etc and functionality contracts that interact with them. Images for posts would be stored on IPFS and the hash would be stored with the other post info in the storage contract.
The second is a more disintermediated version. Have storage contracts for posts, users, etc that instead of holding information like address, follower count, etc, just holds an IPFS hash pointing to a json file with that info. This feels like it would be cheaper but be much more of a headache to read and write for.
Which of these do you guys think is better or do you have another suggestion?