Learnings from a Failed Social Media Protocol Launch
A month ago, I created and launched a new social media protocol. It failed to gain interest, both from users and developers.
This post is to analyze the things I did wrong so I don’t make the same mistakes in future projects.
After several well-received AI+Bitcoin-related projects I worked on beforehand (Autonomous Onboarding, LNCURL, and Mail Mike) I felt like I was on a roll and immediately jumped into a new, much more ambitious project: to make a new decentralized social media protocol.
Why did I think this was a topic worth working on? Because just like having keys to our money, it’s important to have keys to our speech, too. For the Global Town Square usecase, Nostr growth seems to have halted. This was my first attempt to create an alternate solution (heavily inspired by Nostr).
OP_RETURN Social (ORS) is a permissionless, decentralized protocol for a Global Town Square, which, unlike Nostr, has a single source of truth (Nostr content is fragmented across tens to hundreds of relays). In ORS, every interaction is an on-chain transaction. It supports permanent, uncensorable interactions on bitcoin, and free/temporary interactions on Mutinynet.
I have made the decision to stop working on it for the time being, as I would rather fail fast than invest more time and energy into something that provides no value. The protocol will stay on GitHub, but I will shut down the reference client and indexers.
Fundamental Issues
Poor Timing
Covid 19 was a terrible example of what can happen when freedom of speech is lost. It created a lot of new bitcoiners - I was one of them.
However, not many people today are impacted by censorship, impersonation or having their account stolen. X is actually doing a good job with Elon Musk advocating for freedom of speech since ~2022.
I think there’s much less incentive to switch social media client than there is to switch from fiat to bitcoin right now.
It’s likely we need to wait for another Covid-size mass censorship event for more people to look for alternative options. Until then, it’s more like a “solution looking for a problem”.
Non-Monetary Data on Bitcoin
Most Bitcoiners do not want non-monetary data on Bitcoin. I knew this already before starting. I thought I could play on the BIP-110 drama to get some anti-BIP-110 bitcoiners to try ORS. But in reality, the majority of bitcoiners who don’t like BIP-110 still do not want non-monetary data to be inside the bitcoin blockchain. (even though we’ve mostly been at 1 sat/vByte for the last few years, which I don’t think is sustainable if it continues long-term. The other proposals I have seen to address this involve contentious soft forks)
Learnings
For ambitious projects like this one, I need to remind myself to share my idea first. Write a blog post, ask for feedback, reach out to people who have publicly raised the issue and would be potential users. Try to find people willing to contribute. Talk to more people about the idea in person. Get honest feedback. Is it a real problem that needs solving right now? If I can’t find people who would find value in my project, then it’s not worth the time and energy to build it.
I didn’t pay enough attention to some red flags. I got caught up in the excitement of my new idea and started building without doing enough up-front research.
I also wasted time building two wire formats for the protocol - one that would support posts being split into 80 byte chunks, and one using a >80 byte OP_RETURN in a single transaction. Proving that this was possible was not worth the additional complexity - I should have just chosen one format or the other and stuck with it.
Final Thoughts
I still think that a decentralized global town square needs a single source of truth, for a good UX that everyday users expect. Bitcoin is an example of a single source of truth - no matter which nodes you sync from, you get the same block data.
I have a few alternate ideas for a social media protocol that don’t require all interactions to be on the bitcoin blockchain, but until enough people see the problem with today’s solutions, I think it’s best I move on to other things.
This was my first attempt writing a full protocol from scratch, building reference clients, documentation, a developer package, and securing domain names and a github organization. I’m sure this experience will be helpful for the future. The only way is up 📈
Write a comment