Open SourceDeveloper Tools

Walgit: The Git Server Shopify CEO Built in a Weekend

Walgit Git server backed by S3 object storage - single binary architecture diagram with Git branch icon and cloud storage

Shopify’s CEO spent one weekend building a Git server from scratch, dropped it on GitHub, and walked away. Within 24 hours, walgit had 1,300 stars, a front-page Hacker News thread, and a running debate about whether Tobias Lütke actually wrote any of it.

What Walgit Is

Walgit is a single Rust binary that runs in front of an S3-compatible object store. No database. No leader node. No local state that matters. You point it at a bucket, and you have a Git server.

Every push lands in a write-ahead log (WAL) stored as immutable objects in S3. Commits are serialized using compare-and-swap (CAS) operations — the same atomic primitive that S3 added support for in 2024. Multiple walgit instances can run against the same bucket simultaneously, because CAS handles the contention at the storage layer without any coordinating database.

What walgit supports: Smart HTTP git protocol (v0 and v2), Git LFS, webhooks, OIDC authentication, a web UI, and a JSON API. What it explicitly does not support: pull requests, issues, CI, or code review. Lütke listed those as out of scope — and meant it.

Why the Architecture Matters

This is not a weekend hack for the sake of it. Lütke was frustrated with Shopify’s internal Git infrastructure and was inspired by Cursor’s “Git at Scale” blog post, which detailed how Cursor rebuilt their repository service around a WAL in S3. Cursor called their engine Continuity and kept it proprietary. Lütke built an open-source version of the same idea and shipped it. ByteIota covered Cursor Origin when it launched — walgit is the unlicensed, build-it-yourself version of that architecture.

Traditional self-hosted Git — Gitea, Forgejo, GitHub’s own Spokes system — treats replicated disk copies as the source of truth and uses consensus algorithms to keep replicas in sync. That works until you add enough replicas. Then push latency degrades because the system waits on the slowest node. Walgit sidesteps this entirely. S3 is the source of truth. Local disk is a cache. More servers means more read capacity, not more coordination overhead.

Ryan Dahl, who built Node.js, noted the pattern directly: “Like celld, walgit depends only on S3 for storage and coordination. This has all become possible because of S3’s support for Compare And Swap since 2024. It’s just a practical pattern for reliability and costs.” S3 CAS is enabling a class of tools that treat object storage as coordination infrastructure. Walgit is the Git-specific implementation of that approach.

What This Means for Developers

Self-hosting Git traditionally means running PostgreSQL, a deployment of Gitea or Forgejo, a backup strategy, and ongoing maintenance. Walgit’s install story is a single binary and an S3 bucket. That is genuinely simpler.

It also scales differently. Repositories can grow larger than the disk on any individual walgit server because large binary data streams via HTTP range requests from S3 directly. For teams running large monorepos or storing binary artifacts in Git LFS, this is a meaningful operational advantage over disk-bound alternatives.

The timing matters. GitHub reported that AI-driven automation doubled commit volume on the platform in four months. More commits mean more Git traffic, and Git infrastructure designed in the era of human-paced development is showing strain. S3-backed Git is one answer to that problem — and it is now open source.

# Set up walgit against an S3 bucket
export WALGIT_BUCKET=my-git-repos
export WALGIT_REGION=us-east-1

# Run the single binary
./walgit serve

# Clone a repository
git clone http://localhost:8080/my-repo.git

The Controversy

The Hacker News discussion had its moments. Several developers flagged that walgit’s README and AGENTS.md read like LLM output and argued Lütke did not write the documentation himself. The “no database” framing drew pushback — S3 is a database; the claim is technically accurate but architecturally misleading. You are entirely dependent on a persistent, highly available storage system. It is just a cloud service instead of a Postgres container.

Production readiness concerns were also raised. Walgit is alpha software. The installation approach — curl-piped-bash — is a known security risk that multiple commenters flagged. The project’s rapid star growth was attributed at least partly to the author’s social media reach rather than organic technical discovery.

None of that makes the architecture wrong. However, it does mean treating walgit as an experiment to evaluate rather than infrastructure to deploy right now. For production Git hosting with issues, PRs, and CI, Gitea and Forgejo remain the better choice. For raw Git protocol at scale with no database overhead, walgit is worth watching closely. Cursor proved the architecture works at scale. Walgit makes it open source and free to build on. The broader developer community reaction is mixed, but the design earned the attention it got. Stars are not the same as production stability — but 1,300 in 24 hours is a signal worth taking seriously.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:Open Source