Hey is a decentralized and permissionless social media app built with Lens Protocol šæ
To start working with the Hey monorepo, ensure the following tools are installed:
This repository uses pnpm workspaces to manage multiple packages within a monorepo structure.
git clone git@github.com:heyverse/hey.git
On macOS you can install both with Homebrew:
brew install nvm pnpm
Use nvm
to install the required Node.js version:
nvm install
From the repository root, install dependencies with pnpm:
pnpm install
Copy the .env.example
file to .env
for each package or application that requires configuration:
cp .env.example .env
Repeat this process for all relevant packages and applications in the monorepo.
The example environment files define the following variables:
apps/api/.env.example
)NEXT_PUBLIC_LENS_NETWORK
ā Lens network to use (mainnet
, testnet
, or staging
).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.apps/web/.env.example
)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 dev
Generate Prisma clients and GraphQL types across all workspaces:
pnpm codegen
Compile the application:
pnpm build
Validate the codebase with the TypeScript type checker:
pnpm typecheck
Execute unit tests across all workspaces:
pnpm test
Each 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:check
Automatically fix linting and formatting issues:
pnpm biome:fix
Convenient Node.js helpers are in the script
directory:
node script/clean.mjs
removes all node_modules
, .next
directories,pnpm-lock.yaml
, and tsconfig.tsbuildinfo
files.node script/update-dependencies.mjs
updates packages across the monorepo,node script/sort-package-json.mjs
sorts all package.json
files in theThis project is released under the GNU AGPL-3.0 license. See the LICENSE file for details.
šø