Skip to main content

How to Contribute

Thank you for your interest in contributing to Serverless Monolith!

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Set up the development environment
  4. Create a branch for your changes
  5. Make your changes
  6. Submit a pull request

Development Setup

# Clone the repository
git clone https://github.com/your-username/serverless-monolith.git
cd serverless-monolith

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests
pnpm test

Types of Contributions

Bug Reports

  • Use the GitHub issue tracker
  • Include reproduction steps
  • Provide environment details
  • Include relevant logs

Feature Requests

  • Check existing issues first
  • Describe the use case
  • Explain the proposed solution

Code Contributions

  1. Find an issue to work on (or create one)
  2. Comment on the issue to claim it
  3. Create a branch: feat/my-feature or fix/my-fix
  4. Make your changes
  5. Write/update tests
  6. Update documentation
  7. Submit a pull request

Documentation

  • Fix typos and errors
  • Improve clarity
  • Add examples
  • Translate content

Pull Request Process

Before Submitting

  1. Run all tests: pnpm test
  2. Run linting: pnpm lint
  3. Run type checking: pnpm type-check
  4. Create a changeset: pnpm changeset

PR Guidelines

  • Use a clear, descriptive title
  • Reference related issues
  • Include a description of changes
  • Add screenshots for UI changes
  • Ensure CI passes

Changeset

For any user-facing changes, create a changeset:

pnpm changeset

Select the packages affected and describe the changes.

Code Style

  • Use TypeScript
  • Follow existing code patterns
  • Write meaningful comments
  • Use descriptive variable names

Commit Messages

Follow conventional commits:

feat: add new feature
fix: fix bug in X
docs: update documentation
chore: update dependencies
refactor: refactor X component
test: add tests for Y

Questions?

  • Open a GitHub discussion
  • Check existing issues
  • Read the documentation

Thank you for contributing!