Skip to content

An experiment with WebAssembly ✨ Harmony brings Git in your browser! Create and/or modify local files, on the fly, in your browser. Use git branches and commits to track them.

License

Notifications You must be signed in to change notification settings

thomscoder/harmony

Repository files navigation

Harmony

Quickly upload, create, open, read, modify and download files, on the fly.

Harmony also keep tracks of your changes or "workspaces" through git branches and git commits, all in-memory in your browser.

Just me experimenting with WebAssembly.


Harmony implements via WebAssembly a virtual file system and a in-memory version of Git, written in Go, (a revisited version of my Nova project) where all the file operations happen.

Save and switch between your "workspaces" in few clicks or even quicker with shortcuts.

Harmony supports git commits and branches.

harmonyDesktop.mp4

Navigate back to a specific commit with the graph

commits-graph.mov

Create branches, create files, upload files, change them, save them, commit them, switch branches, repeat.

Simply refresh the page to restart anew.

Run it locally

Requires pnpm, `go

  • Install go packages -
$ pnpm dev

This will compile Nova via make, and also spin up a reverse proxy

Important

Prepend http://0.0.0.0:5000 to the repo url in nova/virtual/functions.go (to not incur in CORS errors - in Development)