Skip to content

Repository files navigation

ContribKit logo

ContribKit

Visualize, customize, and export your GitHub contribution calendar — custom palettes, shapes, and backgrounds. No token required. Available on the web, iOS & Android, with home-screen widgets.

CI Web CI App Codecov License: MIT

Website · Google Play · App Store (soon) · Web docs · App docs


Table of Contents


What You Get

Type a GitHub username and get a fully customizable contribution calendar you can pin, embed, or carry on your home screen:

  • Live SVG endpoint — this image is rendered by ContribKit right now:

    torvalds' GitHub contributions rendered by ContribKit
  • Web app: render any profile, tweak palette and shape, and export as PNG, SVG, or Markdown.

  • Mobile app: native iOS & Android app with home-screen widgets that keep your streak one glance away.

  • README embed: a one-line Markdown snippet that always shows your up-to-date calendar.


Features

  • 🎨 11 color palettes: GitHub, Catppuccin, Nord, Dracula, Gruvbox, Sunset, Tokyo Night, One Dark, Rosé Pine, Solarized, Monokai
  • 🔷 5 cell shapes: rounded, square, circle, dot, hex
  • 📤 3 export formats: PNG for the readme, SVG for the portfolio, Markdown for the bio
  • 🔓 No token required: only public contribution data — no OAuth, no PAT
  • 📱 Home-screen widgets: small (streak counter), medium (full grid), large (both) — iOS & Android, refreshed daily
  • 🗓️ Year selector: any year back to 2005 (GitHub's launch)
  • 🌗 Dark/light theme: follows your system scheme, with manual override
  • 🧩 Shared design tokens: palettes and shapes defined once in shared/, used by web and app

Quick Start

Web

  1. Open contribkit.app
  2. Type a GitHub username and hit render
  3. Customize, then copy or export from the export section

Mobile

  1. Install from Google Play (App Store coming soon)
  2. Enter your username
  3. Add the widget to your home screen

README

![contributions](https://contribkit.app/user/YOUR_USERNAME.svg)

See the embedding guide for palettes, shapes, and background options.


Project Structure

Monorepo with three components sharing design tokens:

Directory Component Stack Docs
web/ contribkit.app + SVG/JSON API Astro · TypeScript · Cloudflare Workers web/README.md
app/ iOS & Android app with home-screen widgets Flutter · Riverpod · RevenueCat app/README.md
shared/ Single source of truth for palettes, shapes, usernames JSON consumed by both apps shared/CONTEXT.md

Both apps follow the same DDD-ish layered architecture (domainapplicationinfrastructure / ui): the domain is pure, validated value objects guard every boundary, errors are typed Failures (nothing throws across layers), and each layer documents its own rules in a colocated CONTEXT.md.


Monorepo Development

Tooling that applies to the whole repo:

GitHub Environments are namespaced by component (<component>-<stage>) because they are repo-global and hold component-specific secrets:

GitHub Environment Component Stage Deployed by
app-production Flutter app production release-app.yml (track = production)
app-development Flutter app development release-app.yml (track ≠ production)
web-production Astro web production ci-web.yml (deploy-production, push to main)
web-development Astro web development ci-web.yml (deploy-development, per-PR preview)

App development and web development map to different things: app development is the internal Play track + RevenueCat sandbox; web development is a per-PR preview Worker on *.workers.dev. The component-scoped configs do not repeat the prefix: wrangler uses [env.production] / [env.development]; Flutter uses production / development flavors.

Component-specific setup, commands, and deploy flows live in web/README.md and app/README.md.


Documentation

Guide Description
Web API reference, embedding guide, architecture, deploys
App Flutter setup, widgets, in-app purchases, releases
Shared tokens Palettes, shapes, and usernames consumed by both apps
Legal notice Privacy · Terms

Support & Contributing

If you find this project useful, consider supporting its development:

Sponsor Buy Me A Beer


Use of AI

This project uses AI assistance primarily for documentation and review purposes. AI tools (GitHub Copilot, Claude) were used to:

  • Write and improve documentation (READMEs, layer CONTEXT.md files)
  • Generate boilerplate code and configuration files
  • Assist with code reviews and refactoring suggestions

The core logic, architecture decisions, and implementation were developed by the maintainer. All AI-generated content has been reviewed and validated.

ContribKit is not affiliated with GitHub, Inc.


MIT © Made with 🤘🏼 by Ferran Buireu

About

Visualize and export your GitHub contribution calendar — web app & Android app

Topics

Resources

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages