Files
create-better-t-stack/.github/CONTRIBUTING.md
2025-07-30 23:42:42 +05:30

141 lines
3.3 KiB
Markdown

# Contributing to Better-T-Stack
Thank you for your interest in contributing to Better-T-Stack! This document provides guidelines and setup instructions for contributors.
## Project Structure
This repository is organized as a monorepo containing:
- **CLI**: [`apps/cli`](apps/cli) - The scaffolding CLI tool (`create-better-t-stack`)
- **Documentation**: [`apps/web`](apps/web) - Official website and documentation
## Development Setup
### Prerequisites
- Node.js 20+
- Bun (recommended)
- Git
### Initial Setup
1. **Clone the repository**
```bash
git clone https://github.com/better-t-stack/create-better-t-stack.git
cd create-better-t-stack
```
2. **Install dependencies**
```bash
bun install
```
### CLI Development
1. **Navigate to CLI directory**
```bash
cd apps/cli
```
2. **Link the CLI globally** (optional, for testing anywhere in your system)
```bash
bun link
```
Now you can use `create-better-t-stack` from anywhere in your system.
3. **Start development server**
```bash
bun dev:cli
```
This runs the CLI in watch mode, automatically rebuilding on changes.
### Web Development
1. **Start the documentation website**
```bash
bun dev:web
```
This starts the Next.js development server for the documentation site.
## Contribution Guidelines
### Before You Start
**Please ask before working on any new features!** We don't want to waste your time on features that might not align with the project's direction. Open an issue or discussion first to discuss your proposed changes.
### Standard Contribution Steps
1. **Create an issue** (if one doesn't exist)
- Describe the bug or feature request
- Include steps to reproduce (for bugs)
- Discuss the proposed solution
2. **Fork the repository**
3. **Create a feature branch**
```bash
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
```
4. **Make your changes**
- Follow the existing code style
- Update documentation as needed
5. **Test and format your changes**
```bash
# For CLI changes
cd apps/cli
bun dev:cli
# For web changes
bun dev:web
# Format files
bun run format
# Run type checks
bun check
```
6. **Add changeset** (for CLI-related changes)
```bash
bunx changeset select create-better-t-stack
# Choose 'patch' for small fixes, 'minor' for features
# Never choose 'major'
```
7. **Commit your changes**
```bash
git add .
git commit -m "feat(web): add your feature description"
# or
git commit -m "fix(cli): fix your bug description"
```
8. **Push to your fork**
```bash
git push origin feature/your-feature-name
```
9. **Create a Pull Request**
- Link to the related issue
- Describe your changes
### Testing
- **Manual testing**: Test your changes manually to ensure everything works as expected
- For CLI changes: Test with different configurations and options
- For web changes: Ensure the site builds and displays correctly
## Getting Help
- Open an issue for bugs or feature requests
- Join discussions for questions or ideas
- Check existing issues and PRs for similar work
- Join our [Discord](https://discord.gg/ZYsbjpDaM5) if you have any problems
## License
By contributing to Better-T-Stack, you agree that your contributions will be licensed under the MIT License.