Monorepo for the Torus Network TypesSript Ecosystem. It's managed with Turborepo and pnpm.
.github
└─ workflows
└─ CI with pnpm cache setup
.vscode
└─ Recommended extensions and settings for VSCode users
apps
|─ torus-cache
| └─ Blockchain data caching service
|─ torus-governance
| └─ Governancel Portal
|─ torus-page
| └─ Main / Landing Page
|─ torus-allocator
| └─ Torus Allocator
|─ torus-wallet
| └─ Wallet App
└─ torus-worker
└─ Background services
packages
├─ api
| └─ tRPC v11 router definition
├─ db
| └─ Typesafe DB calls using Drizzle
├─ providers
| └─ Substrate / React Query / toast provider library
├─ subspace
| └─ Substrate client library
├─ ui
| └─ UI components library
├─ utils
| └─ Common code
├─ wallet
| └─ UI components library
└─ types
└─ ==> TODO: migrate to `packages/utils` <==
tooling
├─ eslint
| └─ shared, fine-grained, eslint presets
├─ prettier
| └─ shared prettier configuration
├─ tailwind
| └─ shared tailwind configuration
└─ typescript
└─ shared tsconfig you can extend from
You must have Vault installed, configured and authenticated
vault kv get -format=json torus_infra/turbo_remote_cache | jq '.data.data' > .turbo/config.json
# Install dependencies
pnpm install
# Configure environment variables
# There is an `.env.example` in the root directory you can use for reference
cp .env.example .env
# Push the Drizzle schema to the database
pnpm db:push
This stack comes from create-t3-app.
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
- Turbo