Skip to content

Latest commit

 

History

History
58 lines (43 loc) · 3.41 KB

README.md

File metadata and controls

58 lines (43 loc) · 3.41 KB

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 isn’t 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 Apple’s 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