Typescript x NestJS x NextJS x Chakra-UI scaffold-eth production ready starter kit.
We are using TypeScript with Next.js on the front-end, and NestJS on the back-end. Ceramic is our main data store in conjunction with Filecoin & IPFS for file storage.
.
โโโ packages # Monorepo using yarn workspaces & lerna
โ โโโ web # Landing page using NextJS, TypeScript, Chakra-UI
โ โโโ dapp # Web3, decentralized app using NextJS, TypeScript, Chakra-UI and ethers.js
โ โโโ ui # Theme/design system shared accross web & dapp folders
โ โโโ schemas # Ceramic and JSON schemas
โ โโโ hardhat # Your contracts, using Hardhat with Typechain and ethers v5
โ โโโ server # TypeScript NodeJS server using NestJS as a production ready back-end framework
โโโ ... config ...
- Node
- Yarn
- Git
- Account and API key for WEB3.storage
In each package individually, create your .env
files by copying the .example.env
and fill in the empty values.
$ cd packages/[dapp, hardhat and schemas]
$ cp .example.env .env
Go to https://web3.storage and set the value of WEB3STORAGE_TOKEN with your web3.storage API key.
$ git clone https://github.com/moonshotcollective/scaffold-moonshot-starter.git
$ cd scaffold-moonshot-starter && yarn install
$ cd packages/schemas
$ yarn build
$ cd packages/server && yarn start:dev
run hardhat locally, get some faucet and ๐ฐ deploy your contract
Create a mnemonic.secret
file or set one of your dev private key as the DEPLOYER_PRIVATE_KEY environment variables in packages/hardhat/.env
$ cd packages/hardhat
$ yarn chain
$ yarn faucet <YOUR_DEV_ADDRESS>
Deploying on localhost
$ yarn deploy --network localhost --reset
Deploying on mumbai
$ yarn deploy --network mumbai --reset
Deploying on an other testnet (make sure to edit the hardhat.config.js first)
$ yarn deploy --network mytestnet --reset
Start the ๐ฑ dApp:
$ cd packages/dapp
$ yarn dev
Start the ๐ฑ landing page:
(Optional, doesn't need anything else to run)
$ cd packages/web
$ yarn dev