Dapps with smart contracts have to constantly choose between being developer-facing or user-facing.
They all have the same goal. They want to increase the volume being passed through their smart contracts.
The golden age question that many of these teams are trying to answer is if they should spend their time creating a really great user experience or focus on their developer experience.
PoolTogether vs. rDAI
PoolTogether vs. rDAI is a really example of this battle. PoolTogether and rDAI are dapps built upon Compound’s smart contracts. PoolTogether is more consumer facing than rDAI, but both take the interest accrued and route them to a specific user address. There’s been a handful of dapps being built on rDAI, like rDAI trees. Meanwhile, PoolTogether recently passed $1mil DAI held in their contracts for the no-loss lottery.
In order for PoolTogether to grow over the long run, they must depend on really great onboarding tools and educating users on how to use applications. On the other hand, rDAI only needs to focus on creating really great documentation.
Today, you can build applications on top of PoolTogether’s contracts, but it’s more likely that someone would want to build on top of rDAI’s contracts instead. PoolTogether created a more specific use case than rDAI, thus reducing the creative surface area for another dapp to emerge on top of it.
Charting developer-facing and user-facing dapps
I spent some time analyzing a handful of dapps and giving them a “user-facing score” and a “developer-facing” score. Variables I took into account included documentation available, focus on attracting developers, and improvements to the core user experience. Obviously these aren’t perfect variables, but they give a good enough estimated input to see how they match up.
Here were the results below (Developer-facing score, User-facing score):
MakerDAO (9, 2)
Unlock Protocol (7,1)
PoolTogether (1,8)
Set Protocol (3, 5)
Sablier (6, 5)
Uniswap (8, 7)
Compound (8, 4)
rDAI (4, 3)
OpenSea (4, 7)
I’ve spent a few months thinking about what the best position to be in is. Do you want to be developer-facing or user-facing to start?
When we launched Cheeze Wizards at Dapper Labs last summer, we wanted to be both user-facing and developer-facing. We ran a hackathon with CoinList before the game was even released. The goal was to have multiple interfaces to interact with the game as well as multiple developers hosting tournaments of Cheeze Wizards. The problem that we ran into was that the game was somewhere at the middle of the bottom chart. Cheeze Wizards didn’t have a lot of creative surface area.
If you want to developers to build on top of your product, you need a lot of creative surface area for them to build on top. Sablier has a lot of creative surface area. Money streaming is a concept that anyone can understand right away. A few weeks ago, the team behind Sablier published a list of use cases you can build with Sablier.
Uniswap has the most creative surface area currently of any other product in the market. Anyone that wants to launch a token for anything can instantly create an exchange.
There are a few open questions I’m thinking about around this topic:
How can PoolTogether attract developers to build on top of their contracts in order to increase the amount of DAI in their pools? Do developers have enough creative surface area to build on top of their contracts?
How will Augur V2 perform with affiliate markets? The creative surface area for prediction markets are immense but has failed in the past because of regulatory concerns.
Progressive decentralization with a token - At what point do these applications think about introducing a token in order to completely decentralize? Do they need to have products building on top of it that will evangelize itself? Or will these projects build their own competitor in order to capture a larger opportunity?
If you have any thoughts on this subject, I would love to chat!
Disclaimer: I work at Dapper Labs. The opinions expressed in this post are solely mine and do not represent the opinions of Dapper Labs.