Catch Git conflicts
before they reach a pull request.

Lightning Git shows teammates each other's uncommitted edits while they type and predicts the merge conflict while it forms. It is open source and self-hosted, and the backend only ever runs read-only Git commands.

Alpha prototype from a 2026 diploma thesis. MIT licensed.

See it work

Two people have src/auth/session.rs open on different branches: you on the left, your teammate ben on the right, and underneath the web dashboard a product owner would open in the browser. Seven short steps play on their own. Click any step to jump to it; after the last one both editors are yours to type in.

    Your editor mara on feat/grace
    Teammate's editor ben on fix/expiry
    Web dashboard signed in as mara

    How it works

    A Rust backend mirrors the repository read-only and keeps every person's uncommitted edits in memory. Each open file has its own WebSocket. An edit is sent 250 ms after the last keystroke and reaches everyone else on that file in one hop, so a teammate's line updates while it is still being typed.

    On every edit the backend diffs each live overlay and each branch against origin/main and clusters the hunks that overlap. A cluster is reported as a conflict when it comes from at least two distinct sources and their edits differ, because Git resolves identical edits on its own. The editor and the dashboard both render what the backend sends.

    The codebase shells out to five Git commands (clone, fetch, show, ls-tree, branch -r) and none of them write. Live state is gone on restart. The Notbremse resets your own overlays on the server in one click, for the moment a secret ends up in a file you are typing in.

    VS Code extension Teammate peek, conflict badges, inline comments, Notbremse in the status bar.
    Web dashboard Board, live view with comments, members. For people without a checkout.
    Backend, Rust and actix-web In-memory overlay state per user and file. Diffs every source against origin/main and pushes the conflict set.
    Read-only mirror of origin A disposable clone. No push, commit or checkout exists in the code.
    Postgres on Supabase Accounts, projects, tasks and members. Never any live state.

    What is in the repository

    One repository, three packages, each with its own toolchain and full history. Path-filtered CI builds and tests whatever a change touches.

    backend/ The engine. Read-only mirror clones, in-memory overlay state, one WebSocket per file, and the conflict prediction, which runs only here. Rust, actix-web, similar, Supabase JWT auth
    frontend/ The web dashboard from the demo above: the board built from the branch list, the live view with line comments and @mentions, org and project management. Vue 3, TypeScript, Vite, Pinia, Tailwind
    extension/ The developer's surface. Teammate peek with per-person colours, conflict gutter and panel, comments as inline decorations, the Notbremse. VS Code extension API, TypeScript

    docker compose up --build starts the backend and the dashboard on your machine; you bring a Supabase project for accounts and project metadata. There is no public instance to sign into.

    Get in touch

    Built as a Swiss HF diploma project. Reach out if you want to talk.