What is your smart contract development environment setup?

What is your smart contract development environment setup?

[Updated May 2020]

I am running:

I also heavily use the OpenZeppelin documentation

Please share with the community your recommendations.

  • Lubuntu 18.10
  • Nvm
  • Node 10.15.3
  • VS Code
  • aragonCLI
  • aragonOS
  • Truffle
  • Ganache GUI
  • Chrome
  • metamask/Frame

I haven’t given OpenZeppelin SDK ago yet but I will soon.

I also have a machine on google cloud I use which is pretty much the same except

  • Ubuntu 19.04
  • hd-wallet-provider
  • vim

Hi @Aaron Welcome to the community :wave: and thanks for sharing your setup.

I really like the interactive commands of OpenZeppelin SDK and find it quick and easy to spin up projects.

What are you building with Aragon?


At the moment, just a basic fundraising app. I’m using the OpenZeppelin crowdsale contract and turning it into an Aragon app.

It’s mainly just an orientation project, still figuring out how all the parts work together


My setup is somewhat similar to yours @abcoathup (after all, we don’t have too many options yet, do we?)

I’m on Linux and using VS Code. I give Webstorm a go every once in a while, simply because I enjoy some of Jetbrains’ other IDEs… but I keep going back to VS Code.

  • Node
  • Truffle
  • Ganache GUI & CLI (preferring the former)
  • Remix (quite often, actually - for “manual” testing early on in a project)
  • Chrome for debugging the front ends
  • GitHub
  • web3 read the docs
  • OpenZeppelin Test Helpers
  • Drizzle [just getting started with it]

And dual monitors, because … I can never go back. :wink:


Hi @CallMeGwei thanks for sharing. I’m interested to see if there is anything missing from my setup.
e.g. npx

I wasn’t a Remix user but have become a convert for small contracts.

I haven’t got my physical layout right to use my second monitor. Do you take a second monitor when you travel? There is a topic on the variety of physical setups: What does your computer setup look like?

1 Like

I’m lugging two 32" monitors with me to the Philippines next month! :slight_smile:

For really small projects I suppose I wouldn’t miss some big external screens too much… but for everything else they absolutely increase my productivity.

My last laptop sported a 4k 17" screen - but as my eyes get a little older I find that extreme pixel densities can contribute more to migraines than to efficiency.

I can’t post on the physical setup thread - my desk is littered with wires, arduinos, breadboards, and other various SBCs :-/ sort of in disarray at the moment.


One other tool worth a mention is oneclickdapp.com

Now they have a handy npm package. With one line in the terminal, you can get a UI for your smartcontract. It generates a shareable URL for your dapp on the one click dapp site. Very very cool

I’ve been using one click dapp for a while now but you had to go through the web app, copy the abi and all that jazz. It didn’t take long but this is super easy.


Hi @Aaron
Thanks for sharing.
I have used oneclickdapp.com and suggested it a couple of times in the forum. I didn’t know they had an npm package, that is pretty cool. I will try that out today.

I was previously using udapp.

These days for upgradeable contracts the OpenZeppelin SDK has great interactive commands, for non-upgradeable contracts verifying through etherscan gives a read and write interface. I have also been using Remix more for small contracts.


MacOs Mojave
node js
brew - npm
VSCode - Atom
Truffle - Ganache
github bitbucket gist
Remix - pipeline


Has anyone here used Waffle? They make some pretty strong claims while comparing themselves to Truffle…

  • Win10, with WSL
  • Ubuntu 18.x VM running in HyperV
  • Docker
  • Portainer for managing containers
  • Chrome mostly, but use Firefox dev edition for some of things
  • Postman
  • Greenshot for screenshots and documentation
  • surge.sh for hosting random apps/sites

@abcoathup One extension for VSCode that you may want to try is the new Remote-WSL one. Allows you to essentially run an instance of VSCode as if it were running from the subsystem, and has all of the Linux functionality. It’s really sweet actually. I can’t wait for the full Linux kernel release that is coming to Win10 soon.

1 Like

Hi @pantsme welcome to the community :wave:.

I am excited for WSL2! Otherwise I would finally have to move to Linux.

I tried Remote WSL extension briefly but disabled it as had an issue with what I was doing. Have reinstalled to try it out properly.

Thanks for sharing your setup. Great to have you here.

I am running:

What I have done is
(A) base ubuntu docker image
(B) installed, git, node, npm, nvm
('C) installed ganache-cli global {plus a 1000 other apt install that are needed for keccak, truffle and solc}
(D) installed geth {for ganache-cli fork}

after tons of experimenting and learning came to conclusion that I will HAVE to
(E) install OZ right in this container

docker commit this image

Now use it for my OZ projects as separate containers. Each of these child containers has to go through a lot of mess for updating any global npm package.

Hope this is helpful. More than happy to elaborate more. Thank you.

I also heavily use the OpenZeppelin documentation

1 Like

@amateur-dev Can you share your Dockerfile?

1 Like

I’d like to redo my local setup environment 6 months after the fact.

  • VSCode
  • Windows Terminal for CLI
  • PSCore
  • WSL2 Ubuntu 18.04. This is my main development environment since you can launch VSCode on WSL2 which is super nice for Windows users
  • Docker of course, its just nice to be able to spin stuff up
  • scoop for package management on Windows. Its seriously amazing go check it out
  • Lazydocker for increased container laziness

This is really about it. Other than online docs and such, I don’t think you need much more. I’m sure I’m missing some extensions that are vital or CLI tools that I don’t even think about using anymore since they’re second nature.

1 Like

Hello @pantsme. Here you go:


Please note, you will have to install ganache inside the container. I had not install ganache-cli while I created the image.

1 Like


let me add buidler EVM to this list.
enables logging from the contract. and the log passes even if tx fail.
this saved us tons of debugging

1 Like

I’m a fullstack so my setup also have more front end stuff like drizzle and react,

  • Ubuntu 18.04
  • Vscode
  • Remix
  • Geth
  • Ganache
  • Truffle
  • Drizzle
  • React
  • Scss
1 Like

Hi @NTTMai,

I unfortunately know very little front end.

Do you use a node version manager?
Do you use Ganache GUI or ganache-cli? I use WSL2 and need to sort out why I can’t connect to Ganache GUI. ganache-cli is my go to.

1 Like