Essay2026-09-014 min readMuhammad Ahmad

Why Commit Canvas?

GitHub shows metrics. Gource shows animations. GitStock shows the last hundred commits. This is the case for focusing on the story itself.

Contents

    Everyone measures, nobody narrates

    Open any repository page and you can find numbers fast: commit counts, contributor graphs, weekly punch cards. The infrastructure for measuring git history is solved. What's strange is how little of it helps you understand a project — what kind of thing it is, what it went through, why it looks the way it does.

    A contribution graph can tell you a repository was busy in March. It cannot tell you that March was a rewrite, that it was followed by three months of silence, and that the project nearly died before its most important release. That's not a smaller version of the same information. It's different information.

    The tools that exist, and what they choose

    There are good tools in this space, and each made a deliberate trade:

    None of these is doing anything wrong. They're all solving the measurement problem, the animation problem, or the summarization problem. The narrative problem — the whole life of a repository as one honest, shareable, self-contained artifact — is the one nobody picked up.

    The bet

    Commit Canvas is built on one belief: git history isn't a database. It's a story. Not a story in the fictional sense — a story in the documentary sense. Chapters, silences, comebacks and launches are all physically present in the commit timestamps. The dates don't lie. The work of this tool is to read them honestly and render them beautifully, with every claim traceable to the data that produced it.

    That belief drives three design decisions that dashboards can't make:

    What storytelling actually adds

    Here's the surprising part: narrative isn't decoration on top of data — it's compression. A chapter strip tells you more about a repository in three seconds than a table of monthly counts does in three minutes, because it encodes transitions: the sprint that ended, the silence that broke, the release that changed the project's shape. Transitions are where projects live.

    That's also why the time machine matters. Scrubbing through a life month by month — watching contributors arrive, the codebase swell, the quiet seasons pass — is the closest thing to remembering a project you never worked on.

    Who this is for

    Maintainers who want a README that opens with something true and beautiful instead of a badge wall. Engineers shipping portfolios who need proof of work, not claims about work. Teams archiving a project's life when it matters. And anyone who has ever looked at a green-square heatmap and thought: I know this is my year, but I can't see it.

    The honest limitations

    Commit Canvas won't tell you code quality, impact, or whether the project was any good — commits measure activity, not value, and pretending otherwise would be dishonest. Its narrative is deterministic pattern-reading, not literary insight; some repos genuinely have boring stories. And the web version only reaches public GitHub repositories, because it refuses to ask for accounts or keys. Private history belongs to the local CLI, which is where it should stay.

    Try it on your own history

    The fastest test is your own most-loved repository — the one with the messy middle. Paste it into the story generator or run ./run.sh /path/to/repo anywhere. If the story it finds isn't worth the ten seconds it took to generate, the tool has failed at its one job.