The Top Blockchain Developer Frameworks for 2021
By: Patrick Collins
Tags: Solidity, Smart Contracts, Ethereum, Programming, Blockchain

Top 3 Smart Contract Development Frameworks

When it came down to it, there are three smart contract development frameworks that I would recommend to anyone. Each has a slightly different flavor and reason why you’d choose it. They are:

Hardhat (JavaScript) Truffle (JavaScript) Brownie (Python)

Let’s go through each and understand why you’d want to use it, why it made the top of the list, and anything else noteworthy.

1. Hardhat

Image source: Hardhat

Hardhat is one of the best frameworks out there, having some of the fastest tests, best tutorials, and easiest integrations. Honestly, everyone who enjoys JS frameworks should try out Hardhat at some point. It’s really easy to get going, it has blazing-fast tests, and getting started is really simple. Their Discord has always been really quick to respond to questions as well, so if you run into issues, you can always ask for help. They use Waffle and Ethers.js for testing, which is arguably the better JavaScript smart contract framework, due to some really nice quality-of-life improvements over web3.js. They also have access to direct integration with OpenZeppelin’s upgradeable smart contract plugin, which is a huge win.

This project has an awesome feel to it: It’s clean. It does what you want it to do. It’s really fast. The project is continuously improving, and they are clearly dedicated to making the smart contract developer's life easier.

Summary

ETH Foundation-funded project, previously Builder

Technology: Javascript, Web3.js and Ethers.js plugins, OpenZeppelin upgradable contracts plugin, Etherscan plugin, blockchain forking

Blockchain: Hardhat runtime environment/local, testnets, mainnet

Has testing: Waffle

Maintainance: very active

Support: active

Open aource

2. Truffle

Image source: TruffleSuite

Truffle has been the default framework for a few years now, and for good reason. It is a powerful framework that sets the standard for many others to follow. You’ll find easily the most projects using this platform, so finding examples is easy. Truffle also can be easily integrated with its sister tools Drizzle and Ganache. Ganache in particular is one of the most popular ways for engineers to run a local blockchain. For those looking for even more tools, you can pay for an upgraded Truffle team account and get access to smart contract continuous integration, visual deployments, and monitoring. They also have access to direct integration with OpenZeppelin’s upgradeable smart contract plugin, which is a huge win. They clearly are a group of talented engineers who want to make the world a better smart contracted place.

Truffle tests don’t run as fast as Hardhat’s do, and due to the high volume of users, getting support can be difficult. I’m looking forward to seeing how they will improve this project since being acquired by ConsenSys. Their documentation appears to be starting to fall off and can be hard to follow, but if you google an error you run into, you’ll most likely run into someone who has run into the error and solved it before. I’ve found some of the best ways to improve the project is to leave an issue on their GitHub. It’s our open source duty anyway to keep the ecosystem growing stronger and better!

Due to almost everyone is familiar with it, getting support from your peers is usually easy. I really hope to see the team get some more support on this project, as they have so many users. I hope they see this article and work to improve their documentation so that they can stay as one of the go-to platforms for testing and deploying smart contracts.

Summary

The most widely used platform; recently acquired by ConsenSys (Nov. 2020)

Technology: Javascript, Web3.js, OpenZeppelin upgradable contracts plugin, Etherscan plugin, blockchain forking

Blockchain: Ganache/local, testnets, mainnet

Has testing

Maintainance: very active

Support: active

Open source with paid upgrades

3. Brownie

Image source: Brownie

Heavily inspired by Truffle, this is basically the Python equivalent, with some added quality-of-life changes. This project literally came about from the same frustration most Python engineers share: They don’t like JavaScript. Due to it being written in Python, a lot of the headaches that come with working with JavaScript are removed, and you get this wonderfully simple framework for working with and deploying smart contracts.

Being someone who loves Python myself, I’m really excited for the future of this project, and as adoption picks up, it looks like more and more projects are looking at Python and this framework to deploy their smart contracts. I’ve started using Brownie as my go-to framework and have been loving it. I’ve chatted with a few of the people who work on it more, and they are a really intelligent group. Yearn.finance seems to have bought in as well.

If you come from the Python world or want a really simple, clean framework, this is for you. No questions asked.

One more! I know I said only three, but I think this next one deserves a spot up here as well.

Summary

The best Python framework, used by DeFi projects like yearn.finance.

Technology: Python, Web3.py, blockchain forking, Etherscan plugin, Vyper support

Blockchain: Ganache/local, testnets, mainnet

Has testing

Maintainance: very active

Support: active

Open source

4. Embark

Image source: Embark

I was surprised to see a framework outside of the top three with so many stars on GitHub (3.1k). This tool has a ton of bells and whistles. It took me a little bit of work to understand quite what was going on, but that’s because Embark is meant to be an entire dApp framework. It’s a full-stack blockchain platform. I was able to deploy my Chainlink contracts to the Kovan network after some help from their Gitter (and an issue created on their GitHub; remember, open source duty!). It comes with a UI that allows you to interact with the blockchain and your contracts in a GUI. It looked like there was a bit of a learning curve that I didn’t spend enough time to get over, but it showed a lot of promise. This is why I wanted to include it here, as I feel there was a lot that I didn’t fully digest.

I’d love to see people try this framework out some more and see the power. I feel like I might not be able to do it justice here due to my limited time spent with the project. I do think decoupling your frontend from your backend is still best practice, but if you need to spin up a project with a good frontend and don’t care about decoupling, then you should 100% check this project out.

Very cool project, and would recommend anyone check it out if they like Hardhat and Truffle but want to integrate with a full-stack solution.

Summary