https://github.com/unable12/codebase-posters
your repository as generative art — npx codebase-posters
https://github.com/unable12/codebase-posters
canvas cli data-visualization developer-tools generative-art git local-first nodejs poster procedural-generation typescript
Last synced: 1 day ago
JSON representation
your repository as generative art — npx codebase-posters
- Host: GitHub
- URL: https://github.com/unable12/codebase-posters
- Owner: unable12
- License: mit
- Created: 2026-07-05T03:04:14.000Z (18 days ago)
- Default Branch: main
- Last Pushed: 2026-07-19T14:57:33.000Z (3 days ago)
- Last Synced: 2026-07-21T00:55:31.515Z (1 day ago)
- Topics: canvas, cli, data-visualization, developer-tools, generative-art, git, local-first, nodejs, poster, procedural-generation, typescript
- Language: TypeScript
- Size: 5.74 MB
- Stars: 109
- Watchers: 0
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# codebase posters
[](https://www.npmjs.com/package/codebase-posters)
[](https://www.npmjs.com/package/codebase-posters)
every repository has a shape.
this paints it.
npx codebase-posters
one command, inside any git repo.
your browser opens an exhibition: nineteen posters, painted live from your commit history.
storms of additions and deletions. your working days as a calendar. the project's
heartbeat. the constellations you committed at 2am.
pick one. watch it paint itself. hang it on the wall.
by [@unable0_](https://x.com/unable0_)
## the gallery
| | |
| --- | --- |
| 
react. thirteen years of weather. | 
express. it's been raining since 2009. |
| 
vite. resting heart rate: not resting. | 
zod. one man's night sky. |
| 
tailwind. nine years of showing up. | 
git. the last 20,000 commits. |
each image is a real open-source repo at a fixed seed. same inputs, same pixels.
## yours stays yours
runs entirely on your machine.
no uploads. no telemetry. no account.
101 kB, zero dependencies. it reads your git log, paints, and forgets.
## save it
**print**: 3600×4800 px. that's 12×16 inches at 300 dpi. real poster, real wall.
**video**: the painting animation as an mp4, encoded in your browser.
every poster is deterministic: same repo, same seed, same pixels.
## read it
blue strokes are code arriving. green is code leaving.
the dots with dates are your biggest commits. they bend everything around them.
each poster explains itself in the gallery.
---
## hacking on it
```
npm install && npm run dev # gallery with repo picker (scans ~/code_base)
npm run build # dist/app + dist/server.mjs for npx
node bin/cli.mjs # run the packaged experience locally
```
add a poster: drop a file in `src/recipes/` exporting a `CanvasRecipe` (`src/core/types.ts`). it auto-registers.
inspired by [zeh fernandes' gencup](https://zehfernandes.com/posts/how-i-turned-world-cup-data-into-posters).
made by [kamil](https://x.com/unable0_). MIT.