Some turtles got together this weekend to hack on a thon—err, for a Group Income hackathon!
Group Income: A Currency-less Form Of Group CurrencyLast year we published a document describing Group Currency: a way for any group to provide its members a basic income. This year our focus will be on Group Income.1
Group Income is a decentralized automated accounting system that tries to guarantee a minimum income to all members in a fair manner. Unlike Group Currency, Group Income does not create its own token but works with any existing token, even fiat.
We are focusing on Group Income (as opposed to Group Currency) for a few reasons:
- Other folks are working on group currencies and we are happy to support them.
- Group currencies are potentially more likely to be subject to regulation.
- Group currencies are more ambitious projects that will likely take more time to adopt.
Group Income Hackathon #2Technically, this was our second hackathon. Our first was the San Francisco Basic Income Create-a-thon (covered by Tech Crunch), where we created a GitHub repo and this presentation.
Our vision for Group Income is a fully decentralized system running on Ethereum. However, we'd like to begin testing Group Income with real groups ASAP,2 and for that we realized that we needed a quick & dirty centralized prototype to work with. So for Hackathon #2, that's exactly what we went about creating.
Hackathons are a great way to get meaningful work done and have a great time of it. We chose a beautiful AirBnB overlooking San Francisco and spent two days designing and coding the prototype version of Group Income.
Here's some of the things we accomplished during those two days:
Simplified, Monthly Dispersement Algorithm
For the final version of Group Income, we envision a system that routes streams of income instantaneously in a way that gets members their minimum income as quickly as possible, and without tying up anyone else's income.
That will obviously take some time to get right, so for the prototype we designed a far simpler approach based on a simplified model suggested by Jason: people report their income during the month, and at the end of the month the software tells them who needs what and how much, while at the same time keeping the number of payments that members asked to send down to a minimum.
We now have an actual UI for the prototype (with real markup, not just photoshop designs) thanks to great work from Aaron. Our next task is to make it talk to the backend that Simon created (described below).
We researched various modern front-end frameworks and seem to have settled on Vue.js (see Architecture Notes). We also discovered that Webpack is not well suited for the workflows of most designers (like Aaron), as it doesn't handle plain old HTML files. Instead, it generates websites that are empty of markup, making them difficult to debug and unfriendly to most search engines. For now, it looks like we'll use a combination of Vue.js, Grunt, and Browserify.
Design & Documentation
We brainstormed various aspects of the design and how it will ensure fairness in the face of complex social relationships. These ideas we saved to an internal Wiki, and from those discussions sprang many fruitful concepts, such as "embedded groups" and gems like Alexis' Health Monitor. The Health Monitor keeps group members abreast of how well their group is performing and makes intelligent suggestions as to how the group can perform better. Our (somewhat shoddy) public facing documentation also received updates (thanks to Andrea's attention), and should make our vision for how the final version of Group Income will work a bit clearer.
We now have a functioning backend written in Node.js and powered by Hapi thanks to Simon's excellent work. The backend powers an API that's capable of creating groups, inviting members via email, and reporting income. It even has functioning mocha tests.
Group Income RoadmapWe'll be moving the prototype off of our private GitLab instance and into a public GitHub repo once we've finished integrating the front-end with the backend.
Our roadmap toward the fully-featured decentralized Group Income looks roughly like this:
- Finish the front-end for the prototype and test it with at least one real group.
- Possibly at the same time, launch our first crowdfund campaign to build out the fully decentralized version of Group Income.
Excited about Group Income and want to help? Here's how you can:
- Join us in working on Group Income
- If want to help us test it with a real group, see footnote #2 below
- Share your thoughts with us, either here in the comments below or in the Group Income forum
1 Of course we'll continue to publish educational content, as well as continue the work we started with DNSChain through projects like DPKI.
Donating = Loving!
You can empower our work by donating!