pnpm dbmate up- create the database and run migrationspnpm build- build all the projectspnpm dev- start all the projectspnpm debug- start all the projects with debug logspnpm prod- start all the projects in production modepnpm pgcli- connect to the database with pgclipnpm check- check the codepnpm fix- check and fromat the codepnpm kanel- generate types from the databasepnpm apps- run a script in all the projects (e.g.pnpm apps build)pnpm apps:web- run a script in the web project (e.g.pnpm apps:web build)pnpm apps:indexer- run a script in the indexer project (e.g.pnpm apps:indexer build)
docker compose build- build all the imagesdocker compose build indexer- build the indexer imagedocker compose build web- build the web imagedocker compose build migrations- build the migrations image
docker compose up- start all the servicesdocker compose up -d- start all the services in the backgrounddocker compose up db -d- start the database in the background
dpcker compose rm- remove all stopped servicesdocker compose rm --stop- stop and remove all the services
source ./setup-install.sh- install nvm, node and pnpm.source ./setup-update.sh- install up-to-date versions of nvm, node and pnpm.
DATABASE_URL- Database connection stringINDEXER_CONFIG- The indexer configurationSTARKNET_NETWORK_NAME CONTRACT_BLOCK_NUMBER CONTRACT_ADDRESSfor each contractSTARKNET_NETWORK_NAME- The StarkNet network name (SN_GOERLIorSN_MAIN)CONTRACT_BLOCK_NUMBER- The block number at which the contract was deployedCONTRACT_ADDRESS- The contract address
- Example:
SN_GOERLI 942318 0x05bd17bba6b3cb9740bcc0f20f93ecf443250c4f09d94e4ab32d3bdffc7ebba2SN_MAIN 526494 0x079294c688eb80e025f298b1ab2d30dd7a4a316ed592ac2fc124710564e4e911SN_GOERLI 267275 0x06dc4bd1212e67fd05b456a34b24a060c45aad08ab95843c42af31f86c7bd093SN_MAIN 4982 0x06a05844a03bb9e744479e3298f54705a35966ab04140d3d8dd797c1f6dc49d0
DBMATE_MIGRATIONS_DIR- The directory where the migrations are located (default:db/migrations)DBMATE_SCHEMA_FILE- The file where the schema is located (default:db/schema.sql)INFURA_API_KEY- The Infura API key (nullable)INDEXER_DELAY- The delay between indexing (in milliseconds) (default:3000)LOG_LEVEL- The log level (trace,debug,info,warn,error,fatal) (default:info)
- Biome - Format, lint, and more in a fraction of a second.
- dbmate - A lightweight, framework-agnostic database migration tool.
- Docker Compose - Define and run multi-container applications with Docker.
- Docker - Build, Share, and Run Any App, Anywhere.
- dotenv-cli - A cli to load dotenv files.
- dotenv - Loads environment variables from .env for nodejs projects.
- Kanel - Generate Typescript types from Postgres.
- Kysely extension for Kanel - Generate Kysely types from Postgres.
- Kysely - The type-safe SQL query builder for TypeScript.
- Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions.
- node-postgres- PostgreSQL client for node.js.
- Node.js - JavaScript runtime.
- Pgcli - A command line interface for Postgres with auto-completion and syntax highlighting.
- pkgroll - Next-gen package bundler for TypeScript & ESM.
- pnpm - Fast, disk space efficient package manager.
- PostCSS - A tool for transforming CSS with JavaScript plugins.
- PostgreSQL - The world's most advanced open source database.
- react - A JavaScript library for building user interfaces.
- remix-run - The full-stack web framework for the modern web.
- shadcn-ui - Beautifully designed components that you can copy and paste into your apps.
- Starknet.js - JavaScript library for Starknet
- Tailwind CSS - A utility-first CSS framework for rapid UI development.
- TanStack Table - Headless UI for building powerful tables & datagrids.
- tsx - TypeScript Execute: Node.js enhanced to run TypeScript & ESM
- TypeScript - Typed JavaScript at Any Scale.
- Vite - Next generation frontend tooling. It's fast!
- winston - A logger for just about everything.
- znv - Type-safe environment parsing and validation for Node.js with Zod schemas.
- Zod - TypeScript-first schema validation with static type inference.
- Cairo Contracts
- Indexers
- Frontends