Resources to Start a Solidity-Powered Project
Here are a few nifty tools & resources, which can help you skip over tedious parts, and focus on learning and creating something that excites you!
Just A Local Solidity Starting Point Please
If you want to start simple, check out this starter kit. It’s pretty straightforward, uses hardhat and ethers.js and comes with an example contract + tests. Really, all you need to get going!
A Complete Solidity Dev Environment
Remix looks like a good place to casually jump into smart contract development. An IDE in your browser, where you can code up your Solidity contract, build it and interact with it directly in the interface.
However, to my current understanding, you’ll need to create a front-end yourself.
A Simple Front-End Would Be Nice
Web3 development can feel pretty front-end heavy. After the smart contract functions are written, it boils down to good old HTML, JS and CSS fiddling.
Here’s a really simple project on top of create-react-app, which can be used to connect to a smart contract using MetaMask.
It’s meant for creating a quick front-end to get something functional, not to serve as a high-quality production grade front-end. But if you’re starting out, I think that avoiding complexity is a good call to make.
If React isn’t your jam, there might be other boilerplate/starter kits out there, but I haven’t looked for any myself, because React is so prevalent when it comes to resources and examples.
Just a Good Wallet Connection Is Enough
If you’re looking for a building block to help your code connect to a wallet, take a look at Aragon’s useWallet().
It looks like a very promising way to connect to many Ethereum wallets, without having to write the usual boilerplate code.
There’s also web3-react, which looks great, but it’s serving a different purpose I neither understand it nor have I used it yet.
Time for fancy stuff! Scaffold-ETH is a complete environment for jumping into Solidity develpoment - with a fancy setup where the front-end adapts to your smart contract.
It was looking a bit too complicated for me, but I’m sure it’s really convenient if you choose to use it.
useDApp is fancy-looking and heavily ‘magical’ looking as well, but once again I haven’t taken the time to check it out nor understand what it does!
I hope some of these resources will help you to overcome some hurdles when you’ll be starting your first Solidity projects!
There are many solutions, and everyone is going to prefer a different set of attributes. For me, simplicity and being able to understand a setup are pretty important. This is why I would choose boilerplate code and tools which are easy to understand, or at least are only responsible for one thing.
If you’re not React-focused, and would like to research some solutions yourself: make sure that the project you go with looks good when it comes to choosingup-to-date tooling (ethers.js, hardhat, some form of testing framework around the smart contract code) and sets helpful constraints (a setup which helps to not-leak (!!!) your development secrets).
All the best for your first Solidity projects!