Powergit is a local-first Git explorer that mirrors repositories into Supabase (Postgres + Storage) and streams metadata to the UI via PowerSync, so you can browse branches, files, and commit history from a fast local replica.
The explorer is live here.
pnpm install
pnpm dev:stackIn another terminal:
pnpm devpnpm install
pnpm dev:prod
pnpm dev:produses.env.prod(remote Supabase/PowerSync). Usepnpm dev+pnpm dev:stackfor a local Docker-backed stack.
create-repo-console-short.mp4
Create a repo and push to it using the powergit:: remote from your terminal.
observing-created-repo.mp4
Browse branches, files, and history once the repo has been mirrored into PowerSync.
clone-serde-short.mp4
Clone a repository via git clone powergit::/org/repo and let the helper stream packs locally.
creating-org.mp4
Create organizations (and later manage members/repos) directly from the Explorer UI.
Powergit has two parts:
- A Git remote helper (
git-remote-powergit) that streams Git packs + metadata into Supabase when you push to apowergit::...remote. - An Explorer UI that subscribes to PowerSync streams and queries the local replica with TanStack DB (fast + offline after the first sync).
- Explorer calls your local daemon (
VITE_POWERSYNC_USE_DAEMON=true) with a GitHub URL. - The daemon clones from GitHub, then pushes to
powergit::/<org>/<repo>(the helper uploads packs to Storage and writes metadata to Postgres). - PowerSync replicates the tables to the browser; the UI becomes fully local for browsing.
- Explorer calls the Supabase Edge Function (
VITE_POWERSYNC_ACTIONS_IMPORT=true). - The function dispatches
.github/workflows/clone-and-push.yml. - GitHub Actions runs the Powergit daemon on the runner, clones the target repo, and pushes to
powergit::/<org>/<repo>. - Explorer follows progress via
import_jobs(replicated by PowerSync) and can link to the Actions run.
TanStack DB is the query layer. PowerSync is the sync engine + durable local replica (SQLite/IndexedDB) that makes the Explorer fast and usable offline.
- PowerSync handles incremental replication of Git metadata (
refs,commits,file_changes,objects). - The Explorer queries the same replica across sessions (no refetching full history on each load).
- Pack bytes live in Supabase Storage and are downloaded/indexed lazily for file viewing.
docs/supabase.md– local stack, Edge Function + Actions import, production checklist.docs/profiles/remote.example.md– profile setup and remote URL conventions.packages/cli/README.md– CLI usage (powergit login,powergit remote add, etc.).