Building dfeatures as legos to remix and share
ReLike is a decentralized ‘Like’ button. With Facebook’s “Like” button you’ve got to live in Facebook’s world. There’s no way to take your “Likes” and go elsewhere, or build a service to use these “Likes” in a new way. What’s nice with ReLike is that it’s build in a way that allows others’ to extend it, to build on top of it, to integrate it. With this project, a feature typically tied to a platform is opened up and linked across other instances that use it (emphasis my own):
When a user joins a new service that implements this feature, all their liking data from all their other services are still in the exact same place, and any new likes on this new service will persist across every other service they use. They are just interfacing with the data through different mediums, in whatever context they desire.
It’s a simple idea, but it’s a proof of concept of a bigger vision. From the author:
With just a couple hundred lines of code you can build small features that can be cobbled together to build complex and compelling applications. These applications can share all their data and infrastructure, but only as programmed and when confirmed or rejected by the user.
I would really like us to explore standalone decentralized features. Since all Ethereum applications live on the same computer, they can easily share things with each other without having to hop across massive infrastructure silos. Imagine trying to physically get an email from a Google database to a Yahoo database. Ethereum makes it so that all apps are in the same room with each other.
They coin the term “dfeature.” Hell yeah 🙌
Design-wise I’m most inspired by this approach because it kind of makes me think of unix tools or npm modules. Make things that are simple and do one thing really well, and that work well together.
Here’s one way to express those principles:
1. Write programs that do one thing and do it well.
2. Write programs to work together.
3. Write programs to handle text streams, because that is a universal interface.~Peter H Salus via Unix Philosophy
Often with tools like this they are built and maintained for free, there’s good-will. I admire that, but it can also be difficult to sustain. What’s next-level with dfeatures is that as the feature gets more adoption, those working on it benefit via microtransactions every time it’s used. This value incentivizes the invention, maintenance, and support of the feature.