Welcome Contributors!
Thank you for your interest in contributing to GitHub Wrapped! This guide will help you get started with contributing code, reporting issues, and improving documentation.GitHub Wrapped is an open-source project. All contributions are welcome, from bug fixes to new features!
Getting Started
Fork the Repository
Click the “Fork” button on the GitHub repository to create your own copy.
Set Up Environment
Copy the example environment file and configure it:Add your GitHub token for development:
Start Development Server
Development Workflow
Creating a Feature Branch
Always create a new branch for your work:Branch Naming Convention
Features
feature/descriptionExamples:feature/add-org-wrappedfeature/export-pdffeature/custom-themes
Bug Fixes
fix/descriptionExamples:fix/rate-limit-errorfix/mobile-layoutfix/cache-invalidation
Documentation
docs/descriptionExamples:docs/api-referencedocs/contributing-guidedocs/deployment-guide
Refactoring
refactor/descriptionExamples:refactor/analytics-enginerefactor/component-structurerefactor/type-definitions
Making Changes
-
Write Clean Code
- Follow TypeScript best practices
- Use meaningful variable names
- Add comments for complex logic
- Keep functions small and focused
-
Follow Project Structure
- Components go in
/components - Business logic in
/lib - Types in
/types - API routes in
/app/api
- Components go in
-
Maintain Type Safety
-
Run Linting
Fix any errors before committing.
Testing Your Changes
While we don’t have automated tests yet, please manually test:Basic Functionality
Test with multiple repositories:
- Small repos (< 100 commits)
- Medium repos (100-1000 commits)
- Large repos (1000+ commits)
Edge Cases
- Empty repositories
- Private repositories (should show error)
- Non-existent repositories
- Repositories with special characters
UI/UX
- Test on mobile devices
- Test dark/light mode
- Test keyboard navigation
- Check accessibility (screen reader friendly)
Code Style Guidelines
TypeScript
React Components
Styling
API Routes
Commit Message Guidelines
Write clear, descriptive commit messages:Format
Types
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, no logic change)refactor: Code refactoringperf: Performance improvementstest: Adding or updating testschore: Maintenance tasks
Examples
Pull Request Process
Create Pull Request
- Push your branch to GitHub
- Click “New Pull Request” on GitHub
- Select your branch as the source
- Fill out the PR template
Write a Clear Description
Include:
- What changes were made
- Why the changes were necessary
- How to test the changes
- Screenshots (for UI changes)
- Related issues (if any)
Wait for Review
Maintainers will review your PR and may:
- Request changes
- Ask questions
- Approve and merge
PR Template
When creating a pull request, use this template:Reporting Issues
Found a bug or have a feature request?Bug Reports
Include:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Screenshots/error messages
- Environment (browser, OS)
Feature Requests
Include:
- Clear description of the feature
- Use case / motivation
- Proposed implementation (optional)
- Examples from other tools
Code Review Expectations
When reviewing PRs, we look for:- Functionality: Does it work as intended?
- Code Quality: Is it readable and maintainable?
- Type Safety: Are types properly defined?
- Performance: Does it impact load times?
- Accessibility: Is it keyboard/screen reader friendly?
- Documentation: Are complex parts documented?
Getting Help
Need help with your contribution?GitHub Discussions
Ask questions and discuss ideas.
Discord
Join our community chat.
Issues
Tag your issue with
question.Recognition
All contributors will be:- Listed in the project README
- Mentioned in release notes
- Added to the contributors graph