Contributing to daed

November 29, 2025 · View on GitHub

First off, thanks for taking the time to contribute! ❤️

All types of contributions are encouraged and valued. See the Table of Contents for different ways to help and details about how this project handles them.

Table of Contents

Code of Conduct

This project and everyone participating in it is governed by our commitment to providing a welcoming and inclusive environment. Please be respectful and constructive in all interactions.

Reporting Bugs

Before Submitting a Bug Report

  • Check the existing issues to see if the problem has already been reported
  • Make sure you are using the latest version
  • Collect relevant information (OS, browser, Node.js version, etc.)

How to Submit a Good Bug Report

  • Use a clear and descriptive title
  • Describe the exact steps to reproduce the problem
  • Describe the behavior you observed and what you expected
  • Include screenshots or recordings if applicable
  • Include any relevant logs or error messages

Open a Bug Report →

Suggesting Features

Before Submitting a Feature Request

  • Check if the feature has already been requested or implemented
  • Consider whether your idea fits the scope of the project

How to Submit a Good Feature Request

  • Use a clear and descriptive title
  • Provide a detailed description of the proposed feature
  • Explain why this feature would be useful
  • Include mockups or examples if possible

Open a Feature Request →

Development Setup

Prerequisites

Getting Started

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://github.com/<your-username>/daed.git
    cd daed
    
  3. Add upstream remote:

    git remote add upstream https://github.com/daeuniverse/daed.git
    
  4. Install dependencies:

    pnpm install
    
  5. Start the development server:

    pnpm dev
    

Keeping Your Fork Updated

git fetch upstream
git checkout main
git merge upstream/main

Pull Request Process

  1. Create a branch from main:

    git checkout -b feature/your-feature-name
    # or
    git checkout -b fix/your-bug-fix
    
  2. Make your changes and ensure:

    • Code follows the project's style guide
    • All tests pass (pnpm test)
    • Linting passes (pnpm lint)
  3. Commit your changes following the commit guidelines

  4. Push to your fork:

    git push origin feature/your-feature-name
    
  5. Open a Pull Request against main

  6. Wait for review — maintainers will review your PR and may request changes

Tips for a Successful PR

  • Keep PRs focused and atomic — one feature or fix per PR
  • Write a clear description of what your PR does
  • Link any related issues
  • Add screenshots for UI changes
  • Be responsive to feedback

Commit Guidelines

We follow Conventional Commits specification.

Commit Message Format

<type>(<scope>): <description>

[optional body]

[optional footer(s)]

Types

TypeDescription
featA new feature
fixA bug fix
docsDocumentation only changes
styleChanges that do not affect the meaning of the code
refactorA code change that neither fixes a bug nor adds a feature
perfA code change that improves performance
testAdding missing tests or correcting existing tests
choreChanges to the build process or auxiliary tools

Examples

feat(ui): add dark mode toggle button
fix(api): handle null response from server
docs: update README with new badges
chore(deps): update dependencies

Style Guide

Code Style

  • We use ESLint with @antfu/eslint-config
  • Run pnpm lint to check and auto-fix issues
  • Use TypeScript for all new code
  • Prefer functional components with hooks

File Naming

  • React components: PascalCase.tsx (e.g., UserProfile.tsx)
  • Utilities/hooks: camelCase.ts (e.g., useAuth.ts)
  • Test files: *.test.ts or *.test.tsx

Project Structure

src/
├── components/     # Reusable UI components
│   └── ui/         # Base UI components (shadcn/ui)
├── hooks/          # Custom React hooks
├── pages/          # Page components
├── schemas/        # GraphQL schemas and types
├── contexts/       # React context providers
└── lib/            # Utility functions

Thank you for contributing! 🎉