https://github.com/adrianmcli/dapp-boilerplate
⚡A minimal types-first boilerplate for Ethereum frontend dapp development.
https://github.com/adrianmcli/dapp-boilerplate
Last synced: 7 months ago
JSON representation
⚡A minimal types-first boilerplate for Ethereum frontend dapp development.
- Host: GitHub
- URL: https://github.com/adrianmcli/dapp-boilerplate
- Owner: adrianmcli
- Created: 2020-12-31T21:59:46.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-03-02T04:32:50.000Z (about 5 years ago)
- Last Synced: 2024-12-28T11:24:57.403Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 113 KB
- Stars: 113
- Watchers: 6
- Forks: 17
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
A minimal types-first boilerplate for Ethereum frontend dapp development.
# Dapp Boilerplate
Includes:
- [Next.js](https://github.com/vercel/next.js)
- [Typescript](https://github.com/microsoft/TypeScript)
- [ESLint](https://github.com/eslint/eslint)
- [Prettier](https://github.com/prettier/prettier)
- [Ethers.js](https://github.com/ethers-io/ethers.js/)
- [Typechain](https://github.com/ethereum-ts/TypeChain)
## Rationale
- **Next.js** because it does automatic code-splitting and has a very minimal API. Much more performant and minimal than Create-React-App.
- **Typescript** because you don't want to guess what type everything is.
- **ESLint** to catch dangerous patterns that can cause bugs. The official recommended Typescript linting config is also included.
- **Prettier** to enforce consistent formatting. This is setup to work with ESLint from the official Prettier documentation instructions.
- **Ethers.js** has the best abstraction for working with the Ethereum blockchain so far.
- **Typechain** so that all your contract instances have types. This means you always know what methods exist, what arguments they take, and also what the return type is.
# Getting Started
Click "Use this template" at the top of this page, or click [here](https://github.com/adrianmcli/dapp-boilerplate/generate) to create your repo and clone locally.
1. Run `yarn` to install dependencies.
2. Run `yarn typechain` to generate the types for your contracts.
3. Run `yarn dev` to begin developing.
# Adding Contracts
To add a contract and have [Typechain](https://github.com/ethereum-ts/TypeChain) generate types for it, simply drop the contract's ABI (as a JSON file) into the `contracts` directory. Types are then generated by running `yarn typechain` and output to the `contracts/types` directory.
# Contributing
Make an [issue](https://github.com/adrianmcli/dapp-boilerplate/issues) to talk about what you'd like to see!
**PRs welcome, let's build this together! Frontend devs unite!**