Article Complete
AIM
Shopify CEO Builds Open-Source Git Server Over a Weekend
Shopify CEO Builds Open-Source Git Server Over a Weekend

Shopify CEO Builds Open-Source Git Server Over a Weekend

Tobias Lütke said he was inspired by Cursor’s “Git at Scale” post, which came just as he was frustrated with Shopify’s internal Git system.

Published Updated

Key takeaways

  • Shopify CEO Tobias Lütke created an open-source Git server called 'walgit' after frustrations with the company's internal system.
  • The project was inspired by Cursor's 'Git at Scale' post, highlighting the need for improved Git infrastructure.
  • Walgit is designed as a single Rust binary that operates in front of an S3-compatible object store without needing a separate database.
  • The architecture of walgit eliminates the need for a fixed repository location and uses a write-ahead log for storage.
  • Local machines act as caches while the object store serves as the main repository, allowing for flexible deployment options.
5 min

Shopify CEO Tobias Lütke has built and open-sourced a Git server over a weekend after becoming frustrated with the company’s internal Git infrastructure. 

The resulting project, called ‘walgit’, is a single Rust binary designed to run in front of an S3-compatible object store without requiring a separate database.

Lütke said on X that Cursor’s recent “Git at any scale” post prompted the project. “It came right when I was frustrated with Shopify’s internal git system,” he wrote, describing the implementation as an exercise that he completed over the weekend.

Cursor’s system, called Continuity, uses a write-ahead log (WAL) stored in S3-compatible object storage as the source of truth for Git repositories. Local repositories remain on fast NVMe drives for Git operations, but are treated as rebuildable caches rather than authoritative copies.

Continuity removes the need to maintain a fixed location for each repository or a relational database to track those locations. Any server can reconstruct a repository from the WAL when needed.

Lütke’s walgit follows the same basic architecture. Its repository describes it as a Git server with “no database, no leader and no local state that matters”, with the object-store bucket serving as the repository and local machines acting as caches.

A deployment can point the binary to an S3 or Google Cloud Storage bucket, and multiple server instances can use the same underlying store.

The system uses a WAL and compare-and-swap (CAS) operations to publish repository changes. A push is uploaded to object storage and becomes visible only after the repository manifest updates successfully. This lets multiple instances operate against the same repository without a leader or a conventional coordination database.

Walgit also addresses the storage and download challenges of very large repositories. It supports Git’s bundle-uri mechanism, allowing large repositories to be distributed as chains of static bundles stored in the object store or delivered through a content delivery network (CDN). 

Lütke specifically said this makes large repositories such as Shopify’s monorepo “very fast to download”.

The project also includes smart HTTP support, Git LFS, a web interface, JSON API, webhooks, repository-level push policies and OpenID Connect authentication. 

It can keep commits and trees locally while reading large blob data remotely through HTTP range requests, allowing repositories larger than the machine hosting the Git server.

The repository is MIT-licensed and is currently almost entirely written in Rust.

Membership

Stay ahead with AI insights.

Unlimited access to premium articles, exclusive analysis, and the stories shaping India's AI economy.

Subscribe now

AIM Americas

1190 Miraloma Way Suite P, Sunnyvale, CA 94085

AIM India

1st Floor, Sakti Statesman, Bellandur, Bengaluru – 560103

© 2026 AIM. All rights reserved.