What is wasm-git and how does it work on petersalomonsen.com?

Updated

wasm-git is a project by Peter Salomonsen that brings Git into web applications by compiling it to WebAssembly, so version control runs inside the browser instead of on a server. According to the site, it is used together with client-side encryption to give users full custody of their own application data, with complete change history — and, as the site notes, the responsibility that comes with holding your own keys. The latest demo runs entirely in the browser using OPFS (the Origin Private File System) and can sync through the NEAR blockchain.

The problem wasm-git addresses

Normally, when you use a web app, your data and its history live on someone else's server. You get whatever history the app chooses to show you, and the operator holds the keys. wasm-git moves that model: Git itself runs in the browser, so the repository and its change history belong to the user.

The site frames this as "Who really controls your data?" — an article about bringing Git to web apps so users get full custody of their application data, complete change history, and the responsibility that comes with holding their own keys.

How it works

Three pieces combine:

  • Git compiled to WebAssembly — the version control operations execute client-side, in the browser, rather than on a remote host.
  • Client-side encryption — data is encrypted before it leaves the user's control, so the storage layer does not see plaintext.
  • A storage and sync layer — the latest demo uses OPFS for in-browser storage, with sync backed by the NEAR blockchain.

The result is a repository whose history the user holds, not the application operator.

Where it shows up in practice

wasm-git is not only a standalone demo — it is the delivery mechanism for other projects on the site:

  • At the International Faust Conference 2026 in Cannes, the concert and the Faust-to-AssemblyScript demo loaded directly from git repositories stored on the NEAR blockchain via wasm-git.
  • The WebAssembly Music environment uses the same approach: songs, Faust synth instruments, sequences and reactive visuals are code compiled to WebAssembly and running live in the browser.

What to keep in mind

Full custody cuts both ways. If you hold your own keys and your own history, no operator can restore access for you or quietly recover lost data. The site states this directly: holding your own keys comes with responsibility. Before adopting this model for a real application, decide who is accountable when a key is lost and how users will be expected to manage that.

Where to start

  • Read the article "Who really controls your data?" on petersalomonsen.com for the reasoning behind wasm-git and client-side encryption.
  • Try the latest wasm-git demo, which runs in the browser with OPFS and NEAR-backed sync.
  • Explore webassemblymusic.pages.dev to see the same Git-in-WebAssembly approach applied to live-coded music.