Skip to content

LenySauzet/gitglow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŒ€ GitGlow: Cover Generator

GitGlow

The ultimate open-source tool to craft stunning project covers in seconds β€” designed for developers who care about first impressions on GitHub, YouTube, and beyond.


Overview

GitGlow is a browser-based cover image generator built with Next.js 16 and React 19. It provides a live, interactive editor where you pick a template, customize every visual property β€” colors, typography, icons, images β€” and export a pixel-perfect cover in PNG, JPEG, or SVG format with a single keystroke.

No design skills required. No Figma. Just open the app, tweak, and export.


Features

  • 🎨 Multi-template library: Choose from categorized cover templates organized by style category.
  • ⚑ Real-time live preview: Every change is reflected instantly in the preview canvas, scaled to fit your viewport.
  • πŸ–ΌοΈ Multi-format export: Download your cover as PNG, JPEG, or SVG in high quality. Trigger the export with the E keyboard shortcut.
  • πŸ”  Google Fonts picker: Browse and apply any Google Font directly in the editor. Fonts are fetched via the Google Fonts API, cached for 24 hours, and embedded as data URLs in the exported file for full offline fidelity.
  • 🎭 3D animated preview: The preview card reacts to mouse movement with a spring-based 3D tilt effect (Framer Motion). Toggle the animation on or off at any time.
  • πŸŒ“ Dual theme preview: Switch the app between dark and light mode, and independently toggle the preview canvas between light and dark rendering.
  • πŸŽ›οΈ Per-template field system: Each template exposes its own typed fields β€” text, textarea, color picker, icon selector, image upload, combobox, and select β€” all managed through a unified settings panel.
  • πŸ–ŒοΈ Custom color theming: Pick any accent color to drive the template's theme using the built-in color input.
  • πŸ”£ Icon picker: Add Simple Icons directly into your cover design, with drag-and-drop reordering powered by @dnd-kit.
  • πŸ“ Image upload: Upload your own custom screenshots or visuals directly into supported templates.
  • πŸ” Zoom control: Zoom the preview in and out with smooth spring animation to inspect details at any scale.
  • ↩️ Reset controls: Reset all fields to their template defaults or wipe them entirely with dedicated action buttons.
  • πŸ“± Responsive layout: The editor adapts gracefully to mobile viewports, disabling 3D tilt interactions on touch devices.

Project Structure

gitglow/
β”œβ”€β”€ app/                        # Next.js App Router (layout, page)
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ Header/                 # App header: logo, theme toggle, GitHub stars
β”‚   β”œβ”€β”€ Input/                  # Field input primitives (Color, Font, Icon, Image)
β”‚   β”œβ”€β”€ Preview/                # Preview canvas, export button, zoom, animation toggle
β”‚   β”œβ”€β”€ Settings/               # Settings panel: template list, form, reset actions
β”‚   └── ui/                     # Base UI components (shadcn + custom)
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ template-definitions.ts # Template schema and field type definitions
β”‚   └── templates.tsx           # Template components and category registry
β”œβ”€β”€ hooks/
β”‚   β”œβ”€β”€ useCover.ts             # Global Zustand store for all editor state
β”‚   β”œβ”€β”€ useCurrentTemplate.ts   # Resolves the active template component
β”‚   └── ...                     # Utility hooks (media query, mobile, confirm)
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ fonts.ts                # Google Fonts API client with 24h cache + embed CSS
β”‚   β”œβ”€β”€ keyboard-shortcut.ts    # Keyboard shortcut handler factory
β”‚   └── utils.ts                # cn() and general utilities
β”œβ”€β”€ provider/
β”‚   └── theme-provider.tsx      # next-themes provider
└── public/
    └── templates/              # Pre-rendered SVG previews (dark + light variants)

Getting Started

Prerequisites

Installation

git clone https://github.com/LenySauzet/gitglow.git
cd gitglow
bun install

Environment Variables

Copy the example file and fill in your API key:

cp .env.example .env.local

.env.local:

NEXT_PUBLIC_GOOGLE_FONTS_API_KEY="your-google-fonts-api-key"

The Google Fonts API key is required to populate the font picker. Without it, font selection will not work, but the rest of the editor remains fully functional.

Development

bun dev

The app is available at http://localhost:3000.

Build

bun run build
bun start

Contributing

Contributions are welcome. If you find a bug, have a feature idea, or want to add a new template, feel free to:

  1. Open an issue to discuss the change before starting work.
  2. Fork the repository and create a feature branch.
  3. Submit a pull request with a clear description of what was changed and why.

Please keep PRs focused and scoped to a single concern. Code style follows the existing ESLint and TypeScript configuration.


License

This project is licensed under the MIT License.


Header
Eyes
GitHub Repo stars License Last Commit

About

πŸŒ€ The ultimate open-source tool to craft stunning project covers in seconds.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors