An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          


OMG Counters


A minimal types-first boilerplate for Ethereum frontend dapp development.


typescript
typed contracts
typed contracts

# 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!**