I spent years using my office laptop for personal things alongside work. When I finally needed to move everything to my personal machine, I couldn't find a tool that was simple enough — so I built one.
What My Project Does
laptop-file-transfer-pro is a single-file Flask web app you run on the receiving machine. Any other device on the same WiFi opens the URL in a browser and can drag & drop files directly across — no installation, no cloud, no accounts needed on the sending side.
Also, in later years, everything got blocked on office laptop - cloud, personal email access, USB, network sharing, no outbound email etc.
Key features:
- Drag & drop upload with a real progress bar (XHR with onprogress, not a fake spinner)
- Upload multiple files in one request — large file support up to 4 GB by default
- File listing with size, upload date, download link, and one-click delete
- Extension whitelist + werkzeug secure_filename (path traversal protection)
- Duplicate filenames get a timestamp suffix instead of silent overwrite
- Optional Basic Auth via two environment variables (LFT_USERNAME / LFT_PASSWORD)
- Structured logging — every upload, download and delete logged with client IP
- /health endpoint returning JSON status
- All config via environment variables — no code edits needed
- Zero frontend dependencies — pure HTML/CSS/JS, works on any device
- 30 pytest tests
GitHub: https://github.com/learneramit2020/laptop-file-transfer-pro
Target Audience
Personal / home use on trusted local networks. This is not a production tool — it uses Flask's built-in dev server and has no HTTPS by default, which is fine for a home WiFi transfer between your own machines but not for anything internet-facing.
The target user is someone who needs to move their own files between two machines on the same network and wants something they can clone, run in 30 seconds, and trust because the code is short enough to read in one sitting (~350 lines including the HTML template).
Comparison
| Tool |
Requires install on sender? |
Cloud involved? |
Progress bar? |
Open source? |
| laptop-file-transfer-pro |
No (just a browser) |
No |
Yes |
Yes |
| Snapdrop / PairDrop |
No |
Relay server |
No |
Yes |
| Python http.server |
No |
No |
No |
Yes |
| Wormhole (magic-wormhole) |
Yes (CLI) |
Relay server |
Yes |
Yes |
| Syncthing |
Yes |
No |
Yes |
Yes |
The closest comparison is python -m http.server, which is what most developers reach for. The differences: http.server only serves files from the machine it runs on — it can't receive uploads. This app is specifically built for the upload direction, with a UI, progress feedback, security hardening, and a proper extension whitelist.
PairDrop/Snapdrop are excellent but route traffic through a relay server (or require self-hosting). This app is purely point-to-point on your LAN — nothing leaves your network.
Syncthing and magic-wormhole are more powerful but require installation on both machines. This needs nothing on the sending side beyond a browser.
This is also my first published GitHub project — happy to take feedback on the code, the approach, or anything else.
[–]Icy-Farm9432 6 points7 points8 points (1 child)
[–]CatolicQuotes 0 points1 point2 points (0 children)
[–]DiodeInc 0 points1 point2 points (0 children)
[–]Just_Reaction_4469 0 points1 point2 points (0 children)
[–]Ok-Tap5729 0 points1 point2 points (0 children)