PairDrop: Local file sharing in your browser. Inspired by Apple's AirDrop. Fork of Snapdrop.
Go to file
Robin Linus e66598d77f Squashed commit of the following:
commit dd00d53895b824fbe4170c4a34b104303f722ccd
Merge: 2b3698e cb9ea12
Author: Robin Linus <robin_woll@capira.de>
Date:   Wed Feb 10 00:27:32 2016 -0600

    Merge branch 'name-device' into merge123

    # Conflicts:
    #	app/elements/buddy-finder/buddy-avatar.html
    #	app/elements/buddy-finder/buddy-finder.html
    #	app/elements/buddy-finder/personal-avatar.html
    #	app/index.html

commit cb9ea1235001f0cc23514cb622ce711cdc0538af
Author: Robin Linus <robin_woll@capira.de>
Date:   Tue Feb 9 23:43:49 2016 -0600

    #13 Feature Request: Name your device

commit 6fa43b56f4e705a19e68b62bc671a4948b6968fb
Author: Robin Linus <robin_woll@capira.de>
Date:   Fri Jan 1 19:54:56 2016 +0100

    Initial

commit fc55c86f5cf95039355d85be7409e68f27246696
Author: Robin Linus <robin_woll@capira.de>
Date:   Fri Jan 1 18:06:27 2016 +0100

    Fix fullscreen layout on iOS
2016-02-10 08:58:09 -06:00
app Squashed commit of the following: 2016-02-10 08:58:09 -06:00
docs Rename 'Polymer Starter Kit' to 'Share With Me' 2015-12-18 17:09:04 +01:00
server Squashed commit of the following: 2016-02-10 08:58:09 -06:00
tasks initial commit 2015-12-18 16:50:36 +01:00
.bowerrc initial commit 2015-12-18 16:50:36 +01:00
.editorconfig initial commit 2015-12-18 16:50:36 +01:00
.gitattributes initial commit 2015-12-18 16:50:36 +01:00
.gitignore initial commit 2015-12-18 16:50:36 +01:00
.jscsrc initial commit 2015-12-18 16:50:36 +01:00
.jshintrc Import files from Yawim 2015-12-18 17:43:46 +01:00
.travis.yml initial commit 2015-12-18 16:50:36 +01:00
CONTRIBUTING.md initial commit 2015-12-18 16:50:36 +01:00
LICENSE.md initial commit 2015-12-18 16:50:36 +01:00
README.md Add sound notifications 2016-01-02 14:19:11 +01:00
bower.json Cleanup 2016-01-05 04:00:27 +01:00
gulpfile.js Reduce roboto imports 2016-01-02 14:17:42 +01:00
index.js Cleanup 2015-12-30 16:54:18 +01:00
package.json first working version 2015-12-26 13:33:16 +01:00
travis-runner.sh initial commit 2015-12-18 16:50:36 +01:00
wct.conf.js initial commit 2015-12-18 16:50:36 +01:00

README.md

Snapdrop

Snapdrop is inspired by Apple's Airdrop, but is a Progressive Web App built with Polymer and Web RTC.

Snapdrop is built with the following awesome technologies:

Frequently Asked Questions

Instructions

What about the connection? Is it a P2P-connection directly from device to device or is there any third-party-server?

It uses a P2P connection if WebRTC is supported by the browser. (WebRTC needs a Signaling Server, but it is only used to establish a connection and is not involved in the file transfer).

If WebRTC isnt supported (Safari, IE) it uses a Web Sockets fallback for the file transfer. The server connects the clients with a stream.

What about privacy? Will files be saved on third-party-servers?

None of your files are ever saved on any server. Snapdrop doesn't even use cookies or a database. If you are curious have a look at the Server But it does use Google Analytics.

Is SnapDrop a fork of ShareDrop?

No. ShareDrop is built with ember. Snapdrop is built with Polymer. I wanted to play around with Progressive Web Apps and then I got the idea to clone Apples Airdrop. By doing research on this idea I found and analysed ShareDrop. I liked it and thought about how to improve it. ShareDrop uses WebRTC only and isn't compatible with Safari Browsers. Snapdrop uses a Websocket fallback and some hacks to make Snapdrop work due to the download restrictions on iDevices.

Snapdrop is awesome! How can I support it?

  • File Bugs, Give Feedback, Suggestions
  • Share Snapdrop on your social media.
  • Buy me a cup of coffee
  • Fix bugs and do a Pull Request. This is my first open source project, so I am not very used to the common workflow, but we'll figure it out!
  • Do Security Analysis and suggestions

Run the project on your device

  • Install npm, bower, gulp and the dependencies as described here
    • npm install & bower install
  • run gulp serve
  • In a second shell run node index.js

Licences