---
title: Contributing
description: How to set up your environment and contribute changes
---

> **⚠️ Important**: Before starting work on any new features or major changes, please open an issue first to discuss your proposal and get approval. We don't want you to waste time on work that might not align with the project's direction or get merged.

## Overview

This project is a monorepo with two main apps:

- CLI: `apps/cli`
- Documentation site: `apps/web`

## Setup

### Prerequisites

- Node.js 20+
- Bun (recommended)
- Git

### Install

```bash
git clone https://github.com/AmanVarshney01/create-better-t-stack.git
cd create-better-t-stack
bun install
```

## Develop the CLI

```bash
cd apps/cli
# optional global link for testing anywhere
bun link
# run in watch mode
bun dev:cli
```

## Develop the Docs

```bash
# from repo root
bun dev:web
```

## Contribution Flow

1. Open an issue/discussion before starting major work
2. Fork the repository
3. Create a feature branch
4. Make changes following existing code style
5. Update docs as needed
6. Test and format

```bash
# CLI
cd apps/cli && bun dev:cli
cd apps/cli && bun run test

# Web
bun dev:web

# Format
bun run format

# Type checks
bun check
```

7. Commit and push

```bash
git add .
git commit -m "feat(web): ..." # or fix(cli): ...
git push origin <your-branch>
```

8. Open a Pull Request and link any related issues

## Commit Conventions

Use conventional commit messages with the appropriate scope:

- `feat(cli): add new CLI feature`
- `fix(cli): fix CLI bug`
- `feat(web): add new web feature`
- `fix(web): fix web bug`
- `chore(web): update dependencies`
- `docs: update documentation`

## Help

- Issues and Discussions on GitHub
- Discord: https://discord.gg/ZYsbjpDaM5

See full contributor guide in the repository: `.github/CONTRIBUTING.md`.

