Developing for the Ethereum blockchain is like any other programming development ecosystem. There is a language, frameworks/development environments and then a server where the code can be deployed. This is a simplified explanation of the development process, but it does the job for the topic of this newsletter. Where the ecosystem becomes trickier is researching all of the tools available within this ecosystem and making a decision on your development “stack”.
For every language, there are many opinionated, open-source environments. These environments serve to simplify the process of creating applications rather than writing it natively. The variety of tools present within the Ethereum ecosystem are no different than any other language and like my call out in the previous newsletter, can be just as overwhelming as it was in selecting a blockchain to develop on.
There is no right or wrong choice in what you land on and you should not dwell on the decision long. Get past this process as soon as possible so you can focus on what is important, which is building and learning how it all works. A good starting point for researching this process is with the Ethereum websites developer resources section. It is an up-to-date list of projects being used to deploy to the Ethereum blockchain. I won’t dive into details about the individual projects, but I will provide you with my visual interpretation on the silos you will have to decide on within the ecosystem and the stack I landed on.
Provided above is my interpretation of the flow within the Ethereum blockchain ecosystem. Within each silo you will make a decision on what tool you will use for your project. As I have mentioned before, don’t overwhelm yourself by scrutinizing the projects within each silo because there really isn’t a wrong answer.
For the next few projects I plan on using this stack:
Why am I using this stack? I started my decision making process by seeing what I already knew that was present, Reactjs, and then worked backwards from there to find out what was the most widely used developer environments (based on npm trends), their supported front-end frameworks
and also what was closest to the type of programming philosophies I was familiar with.
I tried to keep my process simple so I could run with the development faster. With these hard decisions made, my focus for the next few newsletters will be on the heart of Ethereum blockchain, the Solidity programming language.
Side note: If you were curious how I came up with the categories in my flow, I simply thought about Nodejs development and how it would translate to all of the different tools in the Ethereum ecosystem. Here is how I felt they would compare.