Getting Started
Getting Help
If you need help building, you can always ask questions in our shared Slack (invite link below), where our dev team will get back to you quickly.
Slack
Also useful is our community Discord, where you can post in the #dev-general channel and someone will get back to you:
Discord - A New Way to Chat with Friends & Communities
And if all else fails, you can always get our attention by @-mentioning @nader, @mossified, or @deso on any DeSo app, such as Diamond.
Dev Setup
We recommend using a JetBrains IDE like IntelliJ to get started. Even if you’re more familiar with tools like Emacs or Vim, using IntelliJ will make it a lot easier for us to help you debug what’s going on, and to use valuable plugins like GitHub Copilot for AI code suggestion.
Once you’ve set up IntelliJ, the next step is to import all the DeSo-related projects so that you can hop around the code effectively. You do this simply by executing the following steps:
git clone {repo}
- Open up IntelliJ
- File > Open > {project directory}
- At this point, you will have the option of opening the directory in a new window or attaching it to your existing project.
- We recommend simply attaching all projects to a single window so that you can easily search through all of them using
CTRL+SHIFT+F
We recommend loading up the following projects:
- For basic app development, this is what you’ll need:
- deso-examples-react
- This is the main repo we’ll be playing with in this guide. Follow the instructions on the README page to set it up. Then import it into your IDE by following the previous steps.
- deso-workspace (reference only)
- This repo is intended only as a reference, and it is useful mainly because of the deso-protocol SDK that the example app uses (README for that is here). Attaching this repo to your IDE will allow you to jump to definitions by using
CTRL+B
.
- identity (reference only)
- It’s a bit confusing, but this repo is actually the one that holds the users’ owner keys, which we’ll talk about later, and it’s also the repo that does all of the signing.
- Put simply, the deso-workspace identity library, mentioned above, is a wrapper around this repo, which does all of the real heavy lifting.
- As you will learn later, this repo holds the owner keys, while deso-workspace holds the derived keys, which are used by each app to sign a limited set of transactions.