Vole is a web-based application for sharing words, pictures and videos with others, without a central server. It’s built on the power of BitTorrent, Go and Ember.js.
Vole was founded by myself and my friend Aaron Forsander in May 2013. This was a time shortly after the Arab Spring, when social media was mostly believed to be a force for positive change in the world, and we were all very concerned with NSA spying and privacy.
We created a tool that could help evade government censorship, building on top of some great new BitTorrent technology.
How it works
Vole feels and behaves like the web apps you’re used to (Twitter, mostly), but it works completely differently. Instead of the web browser sending your data to a central server, it connects to your local machine, saving your data to a folder on your computer.
This folder is shared with other Vole users by giving out a read-only key that allows them to see a stream of your posts, updated live on their computers. By exchanging keys with your friends or people who you’d like to follow, you can form a network that is self-supporting and self-controlled.
Twitter has always been blocked in China, and the government also bans the accounts of anti-government activists in Weibo. Vole attracted the attention of a number of big Chinese / Hong Kong activists who did some alpha testing and kicked the tires for us in the early stages. Vole, being P2P, was able to circumvent the great firewall of China. I enjoyed collecting these screenshots and interacting with our users:
Vole has a web frontend and a backend. The backend is a simple web server running on your local machine (written in the very early version of the Go language!). This backend serves data to the browser as JSON over HTTP endpoints, and writes .json files back to your hard drive in a structured way. Your data is thus available locally as simple text files in JSON format.
Because Go applications compile to a single binary file, you don’t have to install any dependencies to run Vole. No language runtime or virtual machine. No Ruby On Rails, Python or node.js. This makes it easy to run and distribute.
The core Vole application doesn’t yet manage any of the synchronization, this is handled by BitTorrent Sync and potentially any other folder sync application that you may find suitable.
BitTorrent Sync (now called Resilio) was released as a closed-source application with a novel key-based sharing mechanism:
We built Vole to be independent of the data layer, but hoped that we could convince the folks at BitTorrent Inc. to release the Sync application with a permissive open source license, so we could integrate more deeply. Aaron and I had a call with the BitTorrent team in 2013 to request this specifically, but we weren’t able to secure any commitments. We also asked for an API to automate a few of the more painful UI interactions, but unfortunately there was never one released.
Following that, we were faced with a choice: we could continue building the project with a closed source dependency, or redirect our resources to working on an alternative sync layer. In the end, we didn’t feel that we had the personal time to recreate BitTorrent Sync and thus the Vole project fell into disuse.
In the years that followed, several projects did produce outstanding open source distributed file sync applications. Some of the ones that landed on our radars were:
The primary domain for the project has since been abandoned, but the text from the original site is reproduced below:
Why another network?
To understand why Vole exists, consider some of the drawbacks of existing social web application design:
Large server processing power
Since every user connects to a central location, the large social networks run server farms that consume huge amounts of bandwidth, energy and space, while often the user’s desktop computer and internet connection are underutilized.
Single point of failure
When the servers go down, the network goes down. This opens up an opportunity for attackers to run denial-of-service attacks and otherwise attempt to disrupt the network by going after the central point. The Vole application is designed to not have a single point of failure.
Existing social networks are typically created and maintained by companies under the jurisdiction of a country’s laws. This makes them vulnerable to censorship and political interference. The Internet, however, is global - and so laws that govern one country don’t necessarily apply in others. The Vole network has no physical location, no censorship and is resistant to political attempts to block it.
Data ownership and legal terms
You shouldn’t have to agree to a terms-of-service legal document in order to create networks with people. Vole gives you full control and ownership of your data.
Vole takes a distributed approach to social networking.
Our goal is to be totally cross-platform, and by building on existing open web standards, Vole can be accessed from any device with a web browser. We currently have builds for Mac, Windows and Linux and are using HTML5 best practices in our front-end development.
With a liberal MIT license, Vole is available for anyone to use, modify or distribute.
In blogs and social media
A few users tweeted and blogged about our efforts: