Local-first Git cartography01 / The archive

Your repository has a memory. Walk through it.

RepoRewind turns a local Git history into a living city—files become buildings, folders form districts, releases mark landmarks, and deleted code remains as ruins.

Cloud uploads
None
Archive contract
Schema v1
First experience
Fictional demo
Exhibit AThe rebuilding years
RepoRewind showing a warm, daylight 3D repository city with commit details and a timeline

A deterministic fictional archive, ready on first load.

What it reveals02

Not a chart of activity. A place with history.

Scrub across a real first-parent timeline and the city reconstructs states that actually existed. Stable path hashing keeps districts in place, so a neighborhood can grow, change, disappear, and still make geographic sense when you rewind.

Files stand

Height follows current line count.

Folders gather

Top-level paths become stable districts.

Releases remain

Tags become landmarks in city and time.

Deletions endure

Removed files leave selectable ruins.

One local loop03

Repository evidence in, portable history out

From Git to city in four moves.

  1. 01

    Analyze

    The CLI reads metadata, paths, numeric diffs, refs, and tags—never source contents.

    npx reporewind /path/to/repository
  2. 02

    Validate

    The loopback session loads automatically; the same bounded validator protects manual archive imports.

  3. 03

    Explore

    Replay, search every trace, inspect a building, or compare two rename-aware eras.

  4. 04

    Film

    Export a deterministic 1080p or 4K MP4/WebM time-lapse in the current browser tab.

Product plates04

Four views of one archive

Follow any trace.

RepoRewind city timeline

Plate 01

Replay the living city

Scrub, play, pause, jump to landmarks, orbit the camera, and select any building without losing geographic continuity.

  • Stable district layout
  • Keyboard-accessible landmarks
  • Contributor travelers
Reviewed histories05

Three repositories · three evidence trails

The picture starts the question.

Every story records its source head, analyzed range, permission, privacy choices, exact replay command, and interpretation limit. No history archive is hosted.

Public-safe RepoRewind history poster showing 21 commits and one release

Exhibit 01 · RepoRewind

The release became a workflow

After v0.1.0, documentation led the touch count while per-commit churn fell by half.

21 commits · complete range
Public-safe LightClaw history poster showing 79 commits and 16 deleted traces

Exhibit 02 · LightClaw

The monolith became packages

Two module extractions explain why once-central files became ruins rather than disappearing silently.

79 commits · complete range
Public-safe pdf-editor-offline history poster showing 183 commits and four releases

Exhibit 03 · PDF Editor Offline

A rename rebuilt the city

Thirty-two renames mark the visible midpoint of a much larger release-to-release expansion.

183 commits · complete range

A deliberately small trust boundary

Your code never needs to leave your machine.

Analyzer readsGit metadata + numeric diffs
Browser storesMemory only
Application sendsNothing
Reload removesThe imported browser archive

Generated archives can still contain sensitive names, paths, commit messages, and remotes. Review before sharing.

Inspect the full privacy boundary
Open the archive06

Node.js 24 recommended · npm 10+ · Git

A city in one command.

The first run downloads RepoRewind from npm. Your Git history and the local viewer stay on this machine.

Continue to the guide
Terminallocal / reporewind
cd /path/to/your/repository
npx reporewind .

The history is already there.

Make it a place you can revisit.