Share this project

Done

Share this project

Done
A JavaScript library that allows browsers and other restricted JS environments to have working git clones for real offline development.
A JavaScript library that allows browsers and other restricted JS environments to have working git clones for real offline development.
405 backers pledged $19,587 to help bring this project to life.

About

$19,587

405

(EDIT: See the stretch goals.)

I've been a programmer for over 20 years thanks to my parents getting me a Commodore 64 when I was a kid.  The thing I really loved about it was that it booted to a programming environment.  Creating a program was as simple as typing a couple lines and then typing "RUN".

Today there are fewer and fewer kids getting into programming because consumer devices are locked down and don't come with a way to program them.

The web platform in particular has come a long way and now has all the primitives to build a real development environment.  There are sandboxed filesystems, mature javascript libraries for editing code and tools for compilers and transpilers galore.  The main thing that's missing is software configuration management (like GIT).

The main use case this enables is developing offline in environments like ChromeBooks. I worked on Cloud9IDE for a year and it was a great experience as long as you were online with a fast connection. With this library, HTML5 apps will finally be able to do the full developer lifecycle. They can clone from github to the browser's local file storage when online, work offline using an editor like ACE or CodeMirror, and then when they are online again, they can push their changes back to github. I'll implement branching, merging, diffing, and as many other awesome common tasks from git as possible.

The library will be developed in the open and licensed under the MIT license.

By funding this kickstarter, you will enable me to work full time on this and give it the proper attention.  This means full documentation, examples, and sample apps.  Also, you'll get cool prizes!

In case you don't know my background, this isn't my first time building developer tools.  Some of my past projects include:

  • I wrote the initial CoffeeScript compiler in CoffeeScript.
  • I have been a node.js contributor since before it was cool.
  • I implemented the postgres wire protocol in javascript.
  • I implemented fast AES, MD5, SHA1, and SHA256 routines for browsers as cifre.
  • I implemented msgpack codecs for node.js and browser js.
  • I re-implemented node.js in lua as the luvit.io project.
  • I wrote a fast streaming JSON parser.
  • I'm creating a new programming language targeted at kids that runs in a browser called Jack.
  • I wrote webgl bindings for node.js so native webos games could be written in javascript.
  • I implemented a real terminal for Cloud9 IDE and designed their RPC and VFS systems.
  • I implemented a luajit bytecode interperter in browser js.

I can humbly, but confidently say that implementing the git protocol in a browser is something I can do and do well.

Risks and challenges

As with all software projects, we're exploring new territory. There may be unexpected hard problems along the way. I've built several low-level javascript projects before and have studied a couple of git implementations. I have a rough idea how much work this will take.

But in the case that I'm still wrong and it's way harder than I thought, I can promise that the project will have enough of a head start to survive on its own and be usable before the funds run out.

It will be open sourced on GitHub as soon as the kickstarter succeeds. The code will be under a liberal license and I'll allow trusted collaborators to help in the development of the library.

Learn about accountability on Kickstarter

Questions about this project? Check out the FAQ

Support

  1. Select this reward

    Pledge $25 or more About $25

    Supporter. You really support this idea and want to do your part to help see it happen.

    Your name will be in the BACKERS.md file for all history to see.

    Less
    Estimated delivery
    194 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  2. Select this reward

    Pledge $50 or more About $50

    Believer. You believe this project is important and want to enable me to create it.

    I'll send you a vinyl laptop sticker with the awesome JSGit logo on it so you can show off your support.

    Your name will be in the BACKERS.md file for all history to see.

    Less
    Estimated delivery
    Ships to Anywhere in the world
    104 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  3. Select this reward

    Pledge $200 or more About $200

    Open Web Warrior. You believe in enabling the web platform and put your money where your mouth is.

    To reward your generosity, I'll give personal assistance to you or your company integrating the library into your project. This can be up to an hour of video chat or several email/chat sessions.

    You will get a sheet of laptop stickers and your name, and optional url will be in the BACKERS.md file for all history to see.

    Less
    Estimated delivery
    Ships to Anywhere in the world
    23 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  4. Select this reward

    Pledge $4,000 or more About $4,000

    Deep Backer. You really wish this project existed and probably derive some sort of commercial value out of its existence.

    If you're within the continental United States. I'll come to your company and spend a day helping you integrate the library into your project.

    Your name, url, and short blurb will be in the BACKERS.md file for all history to see.

    Less
    Estimated delivery
    Ships to Only United States
    Limited 1 backer
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.

Funding period

- (15 days)