Introducing Source

For the past year, I've been quietly building an experimental Git server called Source.

Like many projects it began with a simple question, and this time round that question was: can Git hosting be built differently?

Traditional Git servers use the underlying filesystem as the source of truth, leaving concerns such as durability, replication, backups, and failover to be solved around it. Source explores a different approach, by storing repositories directly in a distributed database.

The motivation isn't to reinvent the distributed systems problems that databases have spent decades solving. Rather, it's to build on the existing guarantees they provide and focus energy on improving the Git hosting experience itself.

Source is still very much a work in progress, and there's plenty left to do before the first release, but my hope is to have that ready in the coming months.

In the meantime, I'll try to spend some time writing about the ideas behind the project, the architecture, Git internals, and some of the engineering challenges I've encountered along the way. If those topics sound interesting, I hope you'll follow along.