Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oba-one/web3-starter-kit
Template for Web3 projects | Easily bootstrap a Web3 project with a monorepo structure with client, api, and contract packages.
https://github.com/oba-one/web3-starter-kit
dapp ethereum express graphql javascript next nextjs privy react solidity starter-kit starter-template typescript vite vitejs wagmi web3
Last synced: about 1 month ago
JSON representation
Template for Web3 projects | Easily bootstrap a Web3 project with a monorepo structure with client, api, and contract packages.
- Host: GitHub
- URL: https://github.com/oba-one/web3-starter-kit
- Owner: Oba-One
- Created: 2023-10-07T08:16:48.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-04T04:44:36.000Z (11 months ago)
- Last Synced: 2024-01-04T05:36:07.841Z (11 months ago)
- Topics: dapp, ethereum, express, graphql, javascript, next, nextjs, privy, react, solidity, starter-kit, starter-template, typescript, vite, vitejs, wagmi, web3
- Language: Rust
- Homepage:
- Size: 3.94 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Overview
Web3 starter kit gives developers the simplest and quickesrt way to start a Web3 project with a web client, API, and contracts. With a minimalist and web3 focused structure the kit offers a flexible template anyone can easily modify to fit their use case. The kit has different branches that provide more complex functionality out the gate such as Mud for autonomous worlds and Tokenbound accounts.
## Getting Started
The repo is a monorepo using **pnpm** with all code held under packages directory.
Packages consists of API, Clients, and Contracts and can be ran simultonolesouly E2E in a local environment.In order to run this project you need these dependencies:
- [Node](https://nodejs.org/en/download/current) version 18+ for running scripts and PNPM.
- [PNPM](https://pnpm.io/installation) version 6+ for package management.
- [Docker](https://docs.docker.com/get-docker) for database services Postgres and Redis.
- [Foundry](https://book.getfoundry.sh/getting-started/installation) for compiling/deploying smart contracts and running local blockchain node.### Tests
Test can be ran at both the package level and root with `pnpm run test`.
Testing Structure:
- Clients use vitest and testing library for writing and running tests
- API uses Supertest in conjunction with Jest for writing and executing tests
- Contracts tests are written in Solidity and ran via MUD which uses Foundry's Forge for running tests.## Architecture
The repo is architected with packages holding different code for dirrefent aspect of an application from clients to contracts. API and contract packages are singletons while clients may hold multiple for different interfaces (web, mobile)
Languages used:
- [Typescript](https://www.typescriptlang.org/download) - Used for both client and API code with a types folder holding global type declerations and types created directly in routes, hooks, components, and views.
- [Solidity](https://docs.soliditylang.org/en/latest/installing-solidity.html#npm-node-js) - Language for writing Ethereum based contracts, compiling, and deploying.Core libraries:
- [React](https://react.dev) - Library for rendering UI and controlling basic state
- [Vite](https://vitejs.dev) - Build library for client UIs
- [Express](https://expressjs.com) - Server based library handling server setup, routing, middleware
- [Prisma](https://www.prisma.io) - Database client and schema manager controlling SQL based DB
- [Mud](https://mud.dev) - On chain autonomous world based on ECS model with an indexer for querying chain state.## Contributing
Project is open sourced and open for contributors who want to help add new feqtures to the kit.
If you would like to contribute here are the following steps:
- Fork the repo and get your local environment up and running, if any issues post in the [issues](https://github.com/Oba-One/web3-starter-kit/issues) tab.
- Pick up an open needs help issue from the [issues](https://github.com/Oba-One/web3-starter-kit/issues) that's not in progress and create a branch with the issue name.
- Once done open a [PR]([https://github.com/wefa-labs/wefa/pulls](https://github.com/Oba-One/web3-starter-kit/pulls)) to merge into the development branch of the starter kit repo
- Once approved make sure your branch is up to date with main and complete the merge.