https://github.com/explosion-scratch/ondrop
⚡ The best way to share files! ⚡
https://github.com/explosion-scratch/ondrop
easy file-sharing javascript nodejs ondrop pwa
Last synced: 9 months ago
JSON representation
⚡ The best way to share files! ⚡
- Host: GitHub
- URL: https://github.com/explosion-scratch/ondrop
- Owner: Explosion-Scratch
- License: agpl-3.0
- Created: 2021-08-04T22:04:12.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-19T19:08:35.000Z (almost 2 years ago)
- Last Synced: 2025-06-25T12:51:24.234Z (12 months ago)
- Topics: easy, file-sharing, javascript, nodejs, ondrop, pwa
- Language: JavaScript
- Homepage: https://ondrop.dev
- Size: 17.2 MB
- Stars: 38
- Watchers: 3
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
⚡ OnDrop ⚡

A lightning fast, secure and encrypted way to share files!
## Features:
- ✔️ Simple to use
- 🔒 End to end encryption
- ⚡ Quick
- 🔥 Supports any device
- 🚀 Easy
- 🚫 No tracking or storing of data for more than 5 minutes.
- This uses your IP adress as the key to find people nearby you on the app, in
no way is this logged anywhere, stored, or sent to other users.
- No analytics, no long term storage, no data sharing.
- 😎 Looks good!
- 🌔 Dark mode
Name by [Jeffalo](https://github.com/jeffalo)
## Stuff that will be added soon:
- [x] END TO END ENCRYPTION!!!
- [x] Only public keys sent, files encrypted in chunks.
- [ ] Minified and self-hosted libraries (no more `` and `<link>` tags)
- [x] Support for pasting images (`Control + V`)
- [ ] Browser extension?
- [ ] UI support for custom keys instead of IP addresses. (Allows you to connect with someone with a different IP address than you. Currently it's `?ip=[anything_here]` in the URL.)
# What people are saying about ondrop:





<br> (Thank you thank you thank you!!! :heart:)
# FAQ
(Not actually asked frequently, this is just stuff that people may ask if they
ever see this project and are interested in it :weary:)
## Why should I use this over other services?
- This doesn't track you, it's easy, you can share between platforms (Airdrop
only works on macs & iPhones :computer:).
- Most other services track you somehow.
- OnDrop encrypts files end to end, this means that nobody but whoever you send
your files can decrypt it! This includes the server itself! Even I can't see
what files people are sending. This uses
[RSA encryption](https://simple.wikipedia.org/wiki/RSA_algorithm).
## How does OnDrop work?
OnDrop uses your
[IP address](https://www.dummies.com/computers/pcs/what-is-an-ip-address/) to
put you into a [room](https://socket.io/docs/v3/rooms/index.html) using
[socket.io](https://socket.io). To send files in realtime it sends the file as a
[blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to a certain
person. This file is then received by that person. All connections are hidden
from IP addresses outside of the current group. To view the full code that I
wrote see
[`index.js`](https://github.com/Explosion-Scratch/ondrop/blob/master/index.js).
## Does OnDrop track you?
Absolutely not! All files are deleted after 5 minutes, and whenever I run the
server. IP addresses are not tracked in any way, they are only used as a
grouping tool to group people together.
## How'd you get that epic name?

## Wowww, I love those shadows and stuff you did
Thanks! That's a style called
[neomorphism](https://uxdesign.cc/neumorphism-in-user-interfaces-b47cef3bf3a6),
which is a super cool way to make stuff look realistic and pleasant using CSS.
## All these other people you show are contacting you on discord and I feel left out
`--Explosion--#6807` is my Discord tag :smile:
## How did you come up with this idea?
Came to me when I realized that multiple people can have the same IP address, therefore it'd be possible to group them and figure out who's near whom.
## Can I use your code?
See
[`LICENSE.md`](https://github.com/Explosion-Scratch/ondrop/blob/master/LICENSE.md)
## Tips and tricks!
- You can click on a user to share a file with them.
- You can create a unique link to share with someone if they don't live nearby
or aren't on the same wifi network by using the `ip` query parameter, (like
this: `https://ondrop.dev/?ip=test`, now if the person you
send it to goes to that link you'll be able to connect)
- You can paste anything and it'll upload it to everyone, an image, some text,
etc!
- You can drag and drop not just files, but images and text from webpages as
well!
- Installable as a PWA!
- Add `?dev=true` to the URL to send errors and logs to the server and view them
at `/errors/${ip_hash_here}`
- Errors are not recorded for users without dev mode on.
<hr>
<div align=right><i>
[OnDrop](https://github.com/explosion-scratch/ondrop) © 2021 by
[Explosion-Scratch](https://github.com/explosion-scratch) is licensed under
[CC BY-NC-SA 4.0 ](http://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1)
</i></div>
<!--stackedit_data:
eyJoaXN0b3J5IjpbNDk0OTk1NTM4LDIyNDI4NDEzMyw3NjI1OT
c0NTMsLTU2MDkwNjg1OSw5NDgyMjE0OTUsLTExNTQwMDYwNzMs
LTI5MTIwOTM5LC0xMTcxNjEzNDE3LC0xMDIwODU2NTk1LC0xOD
E2NzA3Mjk0LC0yMTEzNTg4MjI3LDEyOTMyMjQ3MDMsLTU1NDkx
MTg4Ml19
-->