Thank you for your interest in contributing to Skillshare App! This document provides guidelines and instructions for contributing.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Pull Request Process
- Coding Standards
- Reporting Bugs
- Requesting Features
By participating in this project, you agree to maintain a respectful and inclusive environment. Please be kind and constructive in all interactions.
- Fork the repository
- Clone your fork locally
- Set up the development environment
- Create a branch for your changes
- Make your changes and test them
- Submit a pull request
- Node.js 18+
- Rust 1.70+
- pnpm
# Clone your fork
git clone https://github.com/YOUR_USERNAME/skillshare-app.git
cd skillshare-app
# Install dependencies
pnpm install
# Start Vite (web UI)
pnpm dev
# Start the desktop app (Tauri)
pnpm dev:tauri├── src/ # React frontend
│ ├── components/ # UI components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities & Tauri API
│ └── types/ # TypeScript types
├── src-tauri/ # Rust backend
│ └── src/
│ ├── commands/ # Tauri IPC handlers
│ └── models/ # Data structures
- Bug fixes: Fix issues reported in the issue tracker
- Features: Implement new features (please discuss first)
- Documentation: Improve or add documentation
- Tests: Add or improve test coverage
- Refactoring: Improve code quality without changing functionality
- Check existing issues to avoid duplicates
- For new features, open an issue first to discuss the proposal
- For bug fixes, check if there's an existing issue or create one
-
Create a branch
git checkout -b feature/your-feature-name # or git checkout -b fix/issue-description -
Make your changes
- Write clear, concise commit messages
- Follow the coding standards below
- Test your changes thoroughly
-
Commit your changes
git add . git commit -m "feat: add new feature description"
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Use a clear, descriptive title
- Reference any related issues
- Describe what changes you made and why
We follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add workflow export functionality
fix: resolve terminal output encoding issue
docs: update installation instructions
- Use functional components with hooks
- Use TypeScript strict mode
- Follow existing code patterns in the codebase
- Use meaningful variable and function names
- Follow standard Rust conventions
- Use
serdefor serialization - Handle errors appropriately with Result types
- Document public functions
- Keep functions small and focused
- Write self-documenting code
- Add comments only when necessary to explain "why"
- Avoid premature optimization
When reporting a bug, please include:
- Title: Clear, concise description of the issue
- Environment:
- OS and version (e.g., macOS 14.0)
- Skillshare App version
- Node.js version
- Steps to Reproduce: Detailed steps to reproduce the issue
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Screenshots: If applicable
- Additional Context: Any other relevant information
## Description
[Clear description of the bug]
## Environment
- OS: [e.g., macOS 14.0]
- Skillshare App Version: [e.g., 1.0.0]
- Node.js Version: [e.g., 20.10.0]
## Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. See error
## Expected Behavior
[What you expected to happen]
## Actual Behavior
[What actually happened]
## Screenshots
[If applicable]
## Additional Context
[Any other relevant information]When requesting a feature, please include:
- Title: Clear, concise description of the feature
- Problem: What problem does this solve?
- Solution: Your proposed solution
- Alternatives: Any alternative solutions you considered
- Additional Context: Mockups, examples, or references
## Feature Description
[Clear description of the feature]
## Problem
[What problem does this solve?]
## Proposed Solution
[Your proposed solution]
## Alternatives Considered
[Any alternative solutions you considered]
## Additional Context
[Mockups, examples, or references]If you have questions about contributing, feel free to:
- Open a Discussion
- Check existing issues and discussions
Thank you for contributing to Skillshare App!