Buidler: compounding value for Ethereum developers

👷‍♀️ One plugin at a time.

Franco Zeoli
Nomic Foundation
4 min readMay 7, 2019

--

Buidler is a command line development tool used to facilitate frequent tasks that are essential to a developer’s workflow. It unlocks productivity through flexibility, interoperability, and standardization — leading to compounding value across all developer tools.

How?

To give you some context first, with Buidler developers can compile, test, and deploy their Solidity code, as well as quickly write ad-hoc tools to facilitate working with smart contracts. Pulling data from the blockchain, triggering actions, and changing state all require little work with Buidler when compared to doing it from scratch using an Ethereum library. Most of the boilerplate stuff is taken care of so the user can focus on functionality.

Some of the plugins shown above are currently under development.

Buidler also brings together all other developer tools. It works with them, all of them, rather than replace any specific ones. Its value comes from being the connective tissue, rather than from specific functionality. It’s an integration platform for other tools to build upon. A robust plugin system is the key component to make this possible.

Why?

Today, most specific tools for smart contracts in the Ethereum ecosystem are built by teams for their own projects, for their own needs. It’s valuable that these are open-sourced, but they’re usually hard to use. Realistically, these tools weren’t built as products, but as ad-hoc productivity boosts for private teams that profit from a core business unrelated to the tool itself. Their success doesn’t depend on the tool’s adoption. This leads to a lack of polish, documentation, and compatibility.

The tools are still valuable, but integrating them — when it’s even possible — requires a lot of work. When things change, these tools tend to break down because they’re designed for:

  • specific dependencies
  • specific project architecture
  • ad-hoc development workflow
  • a specific context or setup

This is the core problem that we aim to solve with Buidler. A single piece of software in the form of a Buidler plugin can deal with the complexities of a given tool to make it work in any Buidler project, making it available seamlessly to every Buidler user.

A similar dynamic can be seen in the JavaScript web development ecosystem with the role Webpack plays. At its core, it’s an asset bundler. But in reality, it’s a platform where tools built as plugins are made available to every modern JavaScript project with functionality that can include static site generators, image compressors, duplicate CSS detectors, hot module reloading, language compilers, and a WASM binary loader. These tools work in unison, thanks to Webpack’s key role as a standardization layer for other tools to integrate upon.

At its core, Buidler is a task runner for building smart contracts that helps automate workflows. In reality, it plays a much bigger role in making sure the tools available in the ecosystem compound in value for developers, making them much more powerful in combination, and easier to use.

That’s why Buidler has plugins for Truffle 4, Truffle 5, Web3 0.x, Web3 1.0, Ethers.js, Solhint, Solpp, Etherscan, and solc-docker. And we want to bring ganache, Embark, Etherlime, solidity-coverage, sol-trace, sol-profiler, Vyper, and others on board as well.

Using Buidler doesn’t mean leaving other tools behind. It only means that more tools become easier to use, and the project’s own ad-hoc tools become easier to build.

Some projects, such as Decentraland and SpankChain, are starting to take notice and are adopting Buidler for their smart contract projects.

“Buidler’s extensibility, clean interface and excellent design is the most significant advancement in the professionalization of tools for Ethereum of the past year. Our development experience improved significantly, and the quality of the development process is reflected in the fact that our team went from fearing updating packages to the latest version, to watching out for the next release”. Esteban Ordano, CTO at Decentraland.

There’s still a lot of work ahead of us to bring Buidler’s full vision to fruition, but you can use it today to get a productivity boost and customize your workflow.

Check out Buidler’s new website to learn how, and get the word out! 👷‍♀️

--

--