# Contributing to Sim Studio Thank you for your interest in contributing to Sim Studio! Our goal is to provide developers with a powerful, user-friendly platform for building, testing, and optimizing agentic workflows. We welcome contributions in all forms—from bug fixes and design improvements to brand-new features. > **Project Overview:** > Sim Studio is built with Next.js (app router), ReactFlow, Zustand, Shadcn, and Tailwind CSS. Please ensure your contributions follow our best practices for clarity, maintainability, and consistency. --- ## Table of Contents - [How to Contribute](#how-to-contribute) - [Reporting Issues](#reporting-issues) - [Pull Request Process](#pull-request-process) - [Commit Message Guidelines](#commit-message-guidelines) - [Local Development Setup](#local-development-setup) - [License](#license) --- ## How to Contribute We strive to keep our workflow as simple as possible. To contribute: 1. **Fork the Repository** Click the **Fork** button on GitHub to create your own copy of the project. 2. **Clone Your Fork** ```bash git clone https://github.com//sim-studio.git ``` 3. **Create a Feature Branch** Create a new branch with a descriptive name: ```bash git checkout -b feat/your-feature-name ``` Use a clear naming convention to indicate the type of work (e.g., `feat/`, `fix/`, `docs/`). 4. **Make Your Changes** Ensure your changes are small, focused, and adhere to our coding guidelines. 5. **Commit Your Changes** Write clear, descriptive commit messages that follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#specification) specification. This allows us to maintain a coherent project history and generate changelogs automatically. For example: - `feat(api): add new endpoint for user authentication` - `fix(ui): resolve button alignment issue` - `docs: update contribution guidelines` 6. **Push Your Branch** ```bash git push origin feat/your-feature-name ``` 7. **Create a Pull Request** Open a pull request against the `main` branch on GitHub. Please provide a clear description of the changes and reference any relevant issues (e.g., `fixes #123`). --- ## Reporting Issues If you discover a bug or have a feature request, please open an issue in our GitHub repository. When opening an issue, ensure you: - Provide a clear, descriptive title. - Include as many details as possible (steps to reproduce, screenshots, etc.). - **Tag Your Issue Appropriately:** Use the following labels to help us categorize your issue: - **active:** Actively working on it right now. - **bug:** Something isn't working. - **design:** Improvements & changes to design & UX. - **discussion:** Initiate a discussion or propose an idea. - **documentation:** Improvements or updates to documentation. - **feature:** New feature or request. > **Note:** If you're uncertain which label to use, mention it in your issue description and we'll help categorize it. --- ## Pull Request Process Before creating a pull request: - **Ensure Your Branch Is Up-to-Date:** Rebase your branch onto the latest `main` branch to prevent merge conflicts. - **Follow the Guidelines:** Make sure your changes are well-tested, follow our coding standards, and include relevant documentation if necessary. - **Reference Issues:** If your PR addresses an existing issue, include `refs #` or `fixes #` in your PR description. Our maintainers will review your pull request and provide feedback. We aim to make the review process as smooth and timely as possible. --- ## Commit Message Guidelines We follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#specification) standard. Your commit messages should have the following format: ``` [optional scope]: ``` - **Types** may include: - `feat` – a new feature - `fix` – a bug fix - `docs` – documentation changes - `style` – code style changes (formatting, missing semicolons, etc.) - `refactor` – code changes that neither fix a bug nor add a feature - `test` – adding or correcting tests - `chore` – changes to tooling, build process, etc. - `high priority` – a high priority feature or fix - `high risk` – a high risk feature or fix - `improvement` – an improvement to the codebase _Examples:_ - `feat(auth): add social login integration` - `fix(ui): correct misaligned button on homepage` - `docs: update installation instructions` Using clear and consistent commit messages makes it easier for everyone to understand the project history and aids in automating changelog generation. --- ## Local Development Setup To set up your local development environment: 1. **Clone the Repository:** ```bash git clone https://github.com//sim-studio.git ``` 2. **Navigate to the Project Directory:** ```bash cd sim-studio ``` 3. **Install Dependencies:** - Using Yarn: ```bash yarn install ``` - Or using NPM: ```bash npm install ``` 4. **Run the Development Server:** - With Yarn: ```bash yarn dev ``` - With NPM: ```bash npm run dev ``` 5. **Make Your Changes and Test Locally.** --- ## License This project is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the MIT License as well. --- Thank you for taking the time to contribute to Sim Studio. We truly appreciate your efforts and look forward to collaborating with you!