An interactive, clean, and minimal monochrome design tool to draw custom patterns and text directly onto your GitHub contribution heatmap calendar.
Make sure you have Node.js and Git installed on your system.
-
Install Dependencies:
npm install
-
Run the Development Server:
npm run dev
-
Open in Browser: Open your browser and navigate to http://localhost:3000 to start using the tool.
The core canvas is a replica of the GitHub contribution calendar showing 53 weeks (7 rows per week, starting on Sunday).
- Drawing: Hover, click, or click-and-drag over cells to draw contributions.
- Cell Tooltips: Hovering over any cell displays the date and the number of commits scheduled for that day.
- Clear Grid: Click the Clear button at the top-right of the calendar header to reset all cells to zero commits.
- Invert Grid: Click the Invert button at the top-right of the calendar header to reverse all cells (e.g., empty cells become maximum intensity, painted cells become empty).
- Year Selector: Select a specific calendar year or default to "Last 12 Months" from the dropdown in the calendar header.
Customize your drawing interaction:
- Draw Mode: Paints cells with the currently selected intensity.
- Erase Mode: Resets painted cells back to zero commits.
- Cycle Mode: Rotates through intensity levels on click (0, 1, 2, 3, 4, then back to 0).
- Brush Shade (Intensity): Select the commit weight for your brush:
- Intensity 1: 1 commit per day
- Intensity 2: 3 commits per day
- Intensity 3: 6 commits per day
- Intensity 4: 10 commits per day
Automatically render words or phrases as contribution pixels on the calendar.
- Enter Text: Type a phrase in the input box (up to 15 characters). Supported characters include A-Z, 0-9, spaces, and special symbols
!,-,+,?. - Start Column Offset: Use the slider to choose the horizontal column index where your text should begin drawing.
- Auto-Center: Check the auto-center option to automatically position the rendered text in the middle of the calendar grid.
- Render: Click "Render onto Grid" to convert the text to contribution cells.
- Built-in Presets: Click "Invader" or "Smiley" to draw predefined pixel patterns onto the calendar.
- Fill All: Click "Fill All" to paint the entire calendar grid with the current brush intensity.
- Random: Click "Random" to generate random noise contributions across the calendar.
- Conway's Game of Life Simulator:
- Draw a custom pattern or select a preset on the grid.
- Click the "Simulate Step" button to compute and show the next generation of cells according to Conway's Game of Life rules.
This column offers multiple methods to apply the contribution pattern to your actual GitHub profile.
Pushes commits directly to a new remote repository on your GitHub account.
- Token Generation: Generate a GitHub Personal Access Token (PAT) with
reposcope by visiting https://github.com/settings/tokens. - Connect Account: Paste the PAT and click "Connect GitHub".
- Repository Sizing: Enter your desired repository name (defaults to
hackgit-contributions). - Push: Click "Push Commits". A public or private repository will be automatically created under your GitHub username, and empty backdated commits representing the pattern will be pushed.
- Note: It can take between 3 to 10 minutes for GitHub's cache to index your new repository and render the contributions on your public profile calendar.
Applies commits directly into the local repository folder of this project.
- Refresh Status: Check the current branch status of the project directory.
- Apply: Click "Apply Commits" to trigger Server Actions. The system will create backdated git commits modifying
data.jsonlocally. - Recommendation: Run this on a separate branch to keep your main development history clean.
Generate scripts to apply commits manually inside any other local Git repository.
- Bash Script: Copy or save the
.shfile for macOS or Linux environments. - PowerShell Script: Copy or save the
.ps1file for Windows environments. - Execution: Open a terminal inside the target repository and run the downloaded script to execute the backdated git commits.
Save or load contribution pattern templates:
- Export JSON: Download the current grid state as a JSON file.
- Import JSON: Upload a saved pattern JSON file to restore the grid layout.
The application calculates calendar coordinates relative to the Sunday of the week 52 weeks ago. When commits are applied, hackgit writes empty modifications to a file and commits them while overriding GIT_AUTHOR_DATE and GIT_COMMITTER_DATE to backdate the contributions.