Skip to content

Latest commit

 

History

History
127 lines (84 loc) · 3.44 KB

File metadata and controls

127 lines (84 loc) · 3.44 KB

Contributing to Ycode

Thanks for your interest in contributing to Ycode! This guide will help you get started.

Before You Start

Small changes (bug fixes, typos, minor improvements)

Open a pull request directly — no prior discussion needed.

Larger changes (new features, new integrations, new dependencies, architectural changes)

Please open a Discussion first so we can align on the approach before you invest significant time. Describe the problem, your proposed solution, and any alternatives you've considered. This helps us give early feedback on direction and avoids situations where a large PR needs fundamental rework.

Development Setup

Prerequisites

  • Node.js v18 or later
  • A Supabase project (free tier works)
  • A Vercel account (for deployment) or local development

Local Development

  1. Fork and clone the repository:

    git clone https://github.com/YOUR-USERNAME/ycode.git
    cd ycode
  2. Install dependencies:

    npm install
  3. Copy the environment template and fill in your Supabase credentials:

    cp .env.example .env.local
  4. Start the development server:

    npm run dev
  5. Open http://localhost:3002 in your browser.

Database Migrations

To run pending migrations:

npm run migrate:latest

To create a new migration:

npm run migrate:make -- migration_name

Making Changes

  1. Create a new branch from develop:

    git checkout -b feat/your-feature-name develop
  2. Make your changes and ensure they pass linting and type checks:

    npm run lint
    npm run type-check
  3. Commit your changes following our commit conventions:

    feat: add new feature
    fix: resolve specific bug
    refactor: restructure without behavior change
    chore: maintenance or dependency update
    docs: documentation only
    

    Use imperative mood, lowercase after the type prefix, and keep the subject line under 50 characters.

  4. Push your branch and open a pull request targeting the develop branch.

Pull Request Guidelines

  • Target develop — PRs to main will not be accepted
  • Keep PRs focused — one feature or fix per PR
  • Separate unrelated changes into their own PRs, even if small
  • Include a clear summary of what changed and why
  • Add a test plan describing how to verify the changes
  • Link related issues when applicable

Reporting Bugs

  • Use GitHub Issues to report bugs
  • Include steps to reproduce, expected behavior, and actual behavior
  • Include browser and OS information if relevant

Requesting Features

  • Open a Discussion to propose new features
  • Describe the use case and why it would be valuable
  • Wait for maintainer feedback before starting implementation

Code Style

  • TypeScript throughout — no any types unless absolutely necessary
  • Functional components with hooks for React
  • Tailwind CSS for styling
  • Use ShadCN components from components/ui/ for all UI primitives
  • Follow the repository pattern for data access (lib/repositories/)
  • The pre-commit hook runs ESLint and type checking automatically

License

By contributing to Ycode, you agree that your contributions will be licensed under the MIT License.