To start working with the Hey monorepo, ensure the following tools are installed:
- Node.js (v18 or higher) β the JavaScript runtime used in this project.
- pnpm β the package manager used throughout this repository.
- Postgres App β the Postgres database used in development.
This repository uses pnpm workspaces to manage multiple packages within a monorepo structure.
git clone [email protected]:heyverse/hey.gitOn macOS you can install both with Homebrew:
brew install nvm pnpmUse nvm to install the required Node.js version:
nvm installFrom the repository root, install dependencies with pnpm:
pnpm installCopy the .env.example file to .env for each package or application that requires configuration:
cp .env.example .envRepeat this process for all relevant packages and applications in the monorepo.
The example environment files define the following variables:
NEXT_PUBLIC_LENS_NETWORKβ Lens network to use (mainnet,testnet, orstaging).DATABASE_URLβ Connection string for the main Postgres database.LENS_DATABASE_URLβ Read-only Postgres connection for Lens data.REDIS_URLβ Redis connection string for caching.PRIVATE_KEYβ Private key used to sign Lens requests.EVER_ACCESS_KEYβ Access key for 4EVERLAND storage.EVER_ACCESS_SECRETβ Secret key for 4EVERLAND storage.SHARED_SECRETβ Token for internal API authorization.OPENROUTER_API_KEYβ API key for OpenRouter AI services.
VITE_IS_PRODUCTIONβ Boolean flag indicating production mode for Vite.NEXT_PUBLIC_LENS_NETWORKβ Lens network used by the web app.
To run the application in development mode:
pnpm devGenerate Prisma clients and GraphQL types across all workspaces:
pnpm codegenCompile the application:
pnpm buildValidate the codebase with the TypeScript type checker:
pnpm typecheckExecute unit tests across all workspaces:
pnpm testEach workspace provides its own vitest.config.ts, so test behavior is scoped
to that package. Vitest prints a summary for each workspace showing how many
files and tests passed along with the execution time.
Check code quality and formatting with Biome:
pnpm biome:checkAutomatically fix linting and formatting issues:
pnpm biome:fixConvenient Node.js helpers are in the script directory:
node script/clean.mjsremoves allnode_modules,.nextdirectories,pnpm-lock.yaml, andtsconfig.tsbuildinfofiles.node script/update-dependencies.mjsupdates packages across the monorepo, removes old installs and commits the changes in a new branch.node script/sort-package-json.mjssorts allpackage.jsonfiles in the repository.
This project is released under the GNU AGPL-3.0 license. See the LICENSE file for details.
πΈ