An open API service indexing awesome lists of open source software.

https://github.com/bigint/hey

Hey is a decentralized and permissionless social media app built with Lens Protocol 🌿
https://github.com/bigint/hey

blockchain crypto dapp graphql hacktoberfest lens-protocol nextjs react social-media tailwindcss turborepo typescript vitest wagmi web3

Last synced: 5 days ago
JSON representation

Hey is a decentralized and permissionless social media app built with Lens Protocol 🌿

Awesome Lists containing this project

README

          

# Hey Monorepo

## Requirements

To start working with the Hey monorepo, ensure the following tools are installed:

- [Node.js](https://nodejs.org/en/download/) (v18 or higher) – the JavaScript runtime used in this project.
- [pnpm](https://pnpm.io/installation) – the package manager used throughout this repository.
- [Postgres App](https://postgresapp.com/) – the Postgres database used in development.

## Installation

This repository uses [pnpm workspaces](https://pnpm.io/workspaces) to manage multiple packages within a monorepo structure.

### Clone the Repository

```bash
git clone git@github.com:heyverse/hey.git
```

### Install NVM and pnpm

On macOS, you can install both with Homebrew:

```bash
brew install nvm pnpm
```

### Install Node.js

Use `nvm` to install the required Node.js version:

```bash
nvm install
```

### Install Dependencies

From the repository root, install dependencies with pnpm:

```bash
pnpm install
```

### Set up Environment Variables

Copy the `.env.example` file to `.env` for each package or application that requires configuration:

```bash
cp .env.example .env
```

Repeat this process for all relevant packages and applications in the monorepo.

### Environment Variables

The example environment files define the following variables:

#### API (`apps/api/.env.example`)

- `PRIVATE_KEY` – Private key used to sign Lens requests.
- `SHARED_SECRET` – Token for internal API authorization.

### Start the Development Server

To run the application in development mode:

```bash
pnpm dev
```

## Build

### Build the application

Compile the application:

```bash
pnpm build
```

### Type-check the project

Validate the codebase with the TypeScript type checker:

```bash
pnpm typecheck
```

### Lint and Format Code

Check code quality and formatting with Biome:

```bash
pnpm biome:check
```

Automatically fix linting and formatting issues:

```bash
pnpm biome:fix
```

### Maintenance Scripts

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,
removes old installs and commits the changes in a new branch.
- `node script/sort-package-json.mjs` sorts all `package.json` files in the
repository.

## License

This project is released under the **GNU AGPL-3.0** license. See the [LICENSE](./LICENSE) file for details.

🌸