I suggest having a look through this thread, I just updated what I am using:
macOS and VSCode are already decided then .
I recommend @juanfranblanco’s excellent VSCode plugin: (see some VSC extension recommendations including how to configure for OpenZeppelin). It also allows formatting (which is awesome and I use all the time).
I would recommend using
nvm if you aren’t already, to easily change node versions. Node 14 is out but I use node 10. There may be issues with dependencies using node 13 and beyond.
For local development,
ganache-cli (you could try the GUI version, though I haven’t properly played with it).
The next choice is tools for developing/testing smart contracts.
I started with Truffle in 2017, I used Embark briefly in early 2019, I the OpenZeppelin CLI and use this wherever possible, I only started playing with buidler this week.
The other thing to consider is web3.js vs ethers.js. I have mostly used web3.js. Though ethers.js users I have come across are fans.
This weeks Annotated edition of May 3 Week in Ethereum News had the following:
It feels like a very undercommented trend how most devs now tell me that their stack is Buidler + Waffle + ethers, and increasingly Typescript as well. Of course, dev tool stacks are perpetually in flux, but this seems to be the stack du jour.
My recommendation would be to use OpenZeppelin CLI, along with OpenZeppelin Test Environment for testing. (see OpenZeppelin Learn guides). I am naturally biased , but believe this is a great place to get started.
It isn’t much effort to swap to Truffle if you need. If you are creating upgradeable smart contracts, then OpenZeppelin CLI is the best choice.
You can also use oz-console to interact with OpenZeppelin CLI deployed contracts using ethers.js.