π¨ Turn your GitHub contribution graph into a canvas for artistic expression
Transform your GitHub contribution graph into beautiful patterns and designs. Create meaningful art with your commits while maintaining a professional developer profile.
- π Secure Authentication: GitHub OAuth integration for safe and easy login
- π Real-time Visualization: Live preview of your current contribution graph
- π¨ Pattern Designer: Intuitive click-to-design interface for creating custom patterns
- β‘ Automated Repository Management: Automatic repository creation and commit generation
- π Global Timezone Support: Works correctly across all timezones
- π± Responsive Design: Optimized for desktop and mobile devices
- π OAuth 2.0: Secure GitHub authentication
- π Private Repositories: Option to create private pattern repositories
- πΏ Separate Branch: Creates commits in a dedicated
commit-canvas
branch - β Validation: Input validation and error handling
- π§Ή Clean Separation: Doesn't interfere with your existing repositories
- A GitHub account
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Internet connection
-
Visit the Application
https://commit-canvas.injun.dev
-
Authenticate with GitHub
- Click "Login with GitHub"
- Authorize the application
- You'll be redirected back to the canvas
-
Design Your Pattern
- Click on cells in the contribution graph to create your pattern
- Use the legend to understand existing vs. new contributions
- Preview your design in real-time
-
Create Your Repository
- Enter a unique repository name
- Click "Create Pattern"
- Wait for the magic to happen β¨
-
View Your Results
- Check your GitHub profile
- Your new pattern will appear in the contribution graph
- Share your creative commit art with the world!
Technology | Purpose | Version |
---|---|---|
Go | Backend server | 1.23+ |
Gin | Web framework | v1.10.0 |
go-git | Git operations | v5.12.0 |
go-github | GitHub API client | v45.2.0 |
OAuth2 | Authentication | v0.23.0 |
HTML/CSS/JS | Frontend interface | ES6+ |
graph TB
A[User Browser] -->|OAuth| B[GitHub]
A -->|HTTPS| C[Commit Canvas Server]
C -->|GitHub API| B
C -->|Git Operations| D[Temporary Repository]
D -->|Push| E[GitHub Repository]
E -->|Reflects in| F[Contribution Graph]
- Web Server: Gin-based HTTP server handling requests
- Authentication: GitHub OAuth 2.0 flow
- Pattern Engine: Converts UI patterns to commit schedules
- Git Manager: Creates and manages repositories and commits
- Frontend: Interactive contribution graph designer
- This tool creates legitimate commits with real content
- All commits include proper attribution and timestamps
- Repositories are created transparently in your account
- Follows GitHub's guidelines for automated content
- Use meaningful repository names
- Don't create excessive patterns (be considerate)
- Understand that patterns become part of your public profile
- Consider the impact on your contribution statistics
- Patterns may take up to 24 hours to fully appear due to GitHub caching
- Limited to 53 weeks of history (GitHub's standard view)
- Requires public repositories for patterns to be visible in contribution graphs
- Cannot modify existing commits or repositories
- Go 1.23 or higher
- Git
- GitHub OAuth App credentials
-
Clone the repository
git clone https://github.com/in-jun/commit-canvas.git cd commit-canvas
-
Install dependencies
go mod download
-
Set up environment variables
export GITHUB_CLIENT_ID="your_github_client_id" export GITHUB_CLIENT_SECRET="your_github_client_secret" export GITHUB_REDIRECT_URL="http://localhost:8080/callback" export SESSION_SECRET="your_random_session_secret"
-
Run the application
go run main.go
-
Open in browser
http://localhost:8080
# Build the image
docker build -t commit-canvas .
# Run the container
docker run -p 8080:8080 \
-e GITHUB_CLIENT_ID="your_client_id" \
-e GITHUB_CLIENT_SECRET="your_client_secret" \
-e GITHUB_REDIRECT_URL="your_redirect_url" \
-e SESSION_SECRET="your_session_secret" \
commit-canvas
- Secure Session Management: HTTP-only cookies with proper security headers
- CSRF Protection: State parameter validation in OAuth flow
- Input Validation: Server-side validation of all user inputs
- Rate Limiting: Protection against abuse (recommended for production)
- Secure Headers: HTTPS enforcement and security headers
- Minimal Permissions: Only requests necessary GitHub permissions
We welcome contributions! Here's how you can help:
- π Bug Reports: Found an issue? Let us know!
- π‘ Feature Requests: Have an idea? We'd love to hear it!
- π§ Code Contributions: Submit pull requests
- π Documentation: Help improve our docs
- π Translations: Help make the app accessible worldwide
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow Go best practices and conventions
- Use
go fmt
for formatting - Add comments for complex logic
- Include tests for new features
- β MVP Complete: Core functionality implemented
- β Security Audit: Basic security measures in place
- β Mobile Support: Responsive design implemented
- π§ Enhanced Patterns: Advanced pattern templates (coming soon)
- π§ Pattern Sharing: Community pattern gallery (planned)
- π§ Analytics: Pattern performance metrics (planned)
Can I delete repositories created by Commit Canvas?
Yes! You have full control over repositories created by Commit Canvas. You can delete them directly from your GitHub account at any time. The patterns will disappear from your contribution graph accordingly.
How long does it take for patterns to appear?
Patterns typically appear immediately, but GitHub's contribution graph cache may take up to 24 hours to fully update. This is a GitHub limitation, not specific to Commit Canvas.
Are the commits "real" commits?
Yes! Commit Canvas creates legitimate Git commits with real content, proper timestamps, and author information. These are not fake or empty commits.
Can I use this with private repositories?
While you can create private repositories, contributions to private repositories don't appear in your public contribution graph unless you enable "Private contributions" in your GitHub profile settings.
Does this violate GitHub's terms of service?
No. Commit Canvas creates legitimate repositories with real commits and content. All activity is transparent and follows GitHub's guidelines for automated content creation.
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub for providing the excellent API and platform
- Go Community for the amazing ecosystem of libraries
- Contributors who have helped improve this project
- Users who create beautiful art with their commits
- π Bug Reports: Create an issue
- π‘ Feature Requests: Request a feature
- π¬ Questions: Start a discussion
- π§ Contact: injun0607@naver.com