Progress and Round 2
Thanks to your generous donations, I was able to quit my job and work on JS-Git full-time for a few months. At this point there is a lot of the hard code done and several proof-of concept modules written.
The first while I spent most my time working with Chris Dickinson and seeing how I could reuse his code. I designed the min-stream interface so that node code and browser code could have a common interface that worked well everywhere. (Also it's pretty awesome in it's own right). Chris has his own modules scattered across his github account and gave a talk at nodepdx showing off a JS powered git client and server proof of concept.
I worked on my own proof-of-concept and ended up with two programs. One is a chrome app you can install from the chrome app store that clones a repo over TCP and logs the output to the screen. The other is a node CLI tool that makes a real clone to your hard-drive. Both of these have a mix of stable modules and hacked up monolithic code. The goal was to get them out fast and get a good feel for what is really needed. This was a great success. The bulk of the unorganized code (like the clone protocol logic) is in progress of being extracted into it's own module as clean, stable, reusable code.
Once I figured out how I wanted to organize everything and finalized the min-stream stuff, I wrote up interface specs for the core parts of js-git and put them in the main js-git repo on github. There are interfaces for how custom back-ends can be implemented for both bare and full repos (bare repos don't have a working/staging area). Back-ends can be written using anything from some K/V persistence engine to a real file system over node or HTML5 APIs. The idea is that all other js-git code will adhere to this standard interface and make back-ends pluggable.
The next steps include cleaning up the clone logic to use this new repo interface. Progress is really picking up speed and things are starting to get very exciting.
I have a problem though. As generous as your donations were, I've already gone past my budgeted time and am completely out of money. (I even sent my new lawnmower back to the store and didn't buy a replacement).
I would love to finish js-git! It's so close to being useful. Now that I understand a little more about how the pieces fit together, I've partnered up with bountysource to run a second fundraiser so that I can finish the project and still feed my family.
Several companies told me they would have donated to this kickstarter, but it was too fast. You all hit the minimum in just over 24 hours and the entire thing ended in just two weeks.
If you still believe in this project, I would love if you did your part to help me. I've worked very long hours the last few months trying to make this idea a reality and I'd hate to have to give up now. Spread the word, contribute again if you're able, talk to your employer.
Thanks again for all you've done to help me through this journey so far. It's been amazing to be able to work on a project that is 100% owned by the open community while still providing for my family. I hope we can make this into a sustainable model for myself and others in the future.