Building on Serum’s Vision
A long-term vision for Serum was recently published. A number of people reached out asking for advice building on Serum. What should they build? How should they build it? Who should they work with?
So here’s some advice. It’s split into two parts: a high-level description, and some specific suggestions.
What Makes a Great Project?
There are lots of really cool things being built across the world. Most of those will never become more than a hobby project that dies off, but a few will become huge. What separates those?
Well, first, it’s worth clarifying that I do think that your goal should be for the project to become huge, or at least big. That’s where all the value and use is.
You can get really lucky and catch lightning in a bottle, essentially winning a lottery ticket. Or you can go about it intentionally, maximizing your odds of significant success.
So what’s necessary for a project — specifically a project on Serum — to become big?
1. The project has to be useful.
2. The project has to be well-built.
3. The project has to attract a large userbase.
Useful
When you’re trying to decide what to work on, ask yourself: what do people want? Here is a list of projects people have asked for, but it’s definitely not exhaustive! There are tons of things that would be awesome.
Just make sure that, theoretically, a bunch of people would be glad it existed if you built it. Most of the big projects in DeFi are ones people want and use: borrow/lending, DEXes, oracles, etc. Even among the forks, the ones that stuck around are the ones that kept building, pushing the project further or in a different direction than their predecessors.
Well-built
Some of this is super generic: do things better, not worse. But there are a bunch of specific things too.
Here’s a list of common feedback for projects on Serum. Make sure to read through this!
Second, think hard about how the average end user would feel using the product. One really common mistake people make is to forget that the average user isn’t really much of a programmer. People want GUIs, and they want GUIs to be intuitive and self-explanatory; they don’t want to have to get explanations from Github. Think really specifically about GUI design. Little things like reducing the number of clicks that common actions take go a long way.
Third, make sure that it works, and doesn’t have bugs. I think that the ‘audit’ narrative is a bit over-emphasized here. The truth is that most projects are so buggy they need a thorough set of fixes before they could even get an audit started; and many projects that made it through audits still have fatal flaws. Test your product out for common flow; stress-test it; and show it to other smart people.
Users
In some ways this is the hardest part of making something great. You can build the best product in the world but if no one uses it, it’s mostly wasted.
You don’t have to have this figured out in detail at the beginning, but you do have to have a high-level pathway for it. How are you eventually going to get it to users?
Some options here:
- If you have a large following, show it to them
- If you are a master marketer, then spin your magic
- You can hire a team for marketing, customer service, etc.
- You can join forces with an existing project with reach
- In the extreme case, if your project is extremely useful, you can buy ads for it
Any of these can succeed; unfortunately most projects fail because they do none of them.
Specific Advice
So, here is a jumble of advice on how to address the three major factors.
Useful Projects
- Look through here
- Ask people in Discord
- Think about what you’d want to use and build it
- Think about which things from outside of Serum (or outside of DeFi/crypto altogether) would make sense on-chain
- Ask others for ideas
- Generate a list of ideas and run them by people (again, discord is a good place for this!)
- Try to map out revenue projections, as an exercise to prove to yourself that there is a plausible pathway to usefulness
Building Well
- Read through this doc
- Build a GUI
- Mercilessly click through every function people would use and fix thing that don’t feel right
- Put more explanation in the GUI than you think it needs
- Show it to a friend and see where they get stuck
- Look at how other projects are built and copy that
- Test your project with a huge range of possible inputs to see if it’s robust
- Make sure you understand the whole flow of the system and that it makes sense
- Ask others for input on what could be improved
- Have others ready through the code
Users
- Lots of people want to launch tokens. I wouldn’t tell you not to! But make sure you really have a project before you make a token.
- If you do want to make a token, you can use a ton of resources to make the process easy!
- Token minting GUIs
- Add your own markets to a DEX or Swap
- Take a lot of feedback from your users and testers, and implement it
- Use word of mouth, Twitter, etc. to broaden your reach
- If you don’t want to be the main marketer, hire someone or work with someone who does
- Consider finding an app with existing users and building on that
- Bonfida is a good resource to talk to!
- Remain dedicated to your project; don’t give it up just because you’ve released a version. There’s always more to do on it!