Git Product home page Git Product logo

thomscoder / harmony Goto Github PK

View Code? Open in Web Editor NEW
52.0 2.0 2.0 27 MB

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.

Home Page: https://harmonyland.vercel.app/

License: MIT License

JavaScript 24.72% Makefile 0.20% TypeScript 50.99% CSS 10.23% Go 13.84%
go typescript vite webassembly wasm personal-project git recoil github react

harmony's Introduction

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)

harmony's People

Contributors

thomscoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

harmony's Issues

Directories support

Add directories support.
Nova already has recursive directories reading. Should think how to display them on the client

Improve mobile experience

Mobile experience is not that good.
When the keyboard enters the layout starts suffering.

Especially when writing a commit.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.