Portify is a lightweight, offline-first tool that lets you instantly share text, files, images, links, PDFs, and videos between your phone and computer β without internet, without accounts, and without any external dependency.
Think KDE Connect + Snapdrop, but fully local, transparent, and 100% yours.
Instantly send messages or text snippets across devices over your LAN.
Drag & drop or select files to send directly:
- Images, videos, PDFs, ZIPs, etc.
- Files auto-save neatly in your
~/Downloads/Portify/folder.
Every new server start generates:
- A unique Session ID
- A 6-digit OTP
Only verified clients can connect and exchange data.
Simply scan the QR from your phone to connect β no typing IPs.
Old files and messages older than 24 hours are automatically deleted.
Minimal, dark/light glassmorphism interface inspired by iOS.
No internet, no external APIs.
Everything stays within your network.
git clone https://github.com/afnash/portify.git
cd portify2οΈβ£ Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate3οΈβ£ Install dependencies
pip install -r requirements.txt4οΈβ£ Run the server
python server.pyOnce started, youβll see something like:
[Portify] Session: a6c39df12b88b5cd
[Portify] OTP (share locally only): 381024
Portify running on http://192.168.1.9:5000π± Connect a Device
Ensure both devices are on the same Wi-Fi / LAN.
On your phone or another computer, open the shown URL, e.g.:
Enter the OTP shown in the terminal.
Done β you can now chat, copy, or transfer files instantly.
π Project Structure portify/
β
βββ server.py # Flask + Socket.IO backend
βββ requirements.txt # Dependencies
βββ portify-tray.sh # Linux tray integration
β
βββ static/
β βββ index.html # Frontend UI
β βββ app.js # Client logic
β βββ style.css # UI styles (glass theme)
β βββ manifest.json # PWA metadata
β βββ service-worker.js # Caching / install script
β βββ assets/
β βββ logo192.png
β βββ logo512.png
β
βββ ~/Downloads/Portify/ # Default file save directory
Layer Technology Backend Python, Flask, Flask-SocketIO Frontend HTML, CSS, Vanilla JS Realtime WebSockets Styling Tailwind-inspired glassmorphism Security OTP verification, isolated LAN communication System Linux, YAD tray integration
Portify is meant for trusted local networks. Data is transferred directly between devices using WebSockets over LAN. No external servers, databases, or tracking systems are used. Each session resets with a new OTP to prevent reuse.
Status Feature β Text & file transfer
β OTP-secured session
β Auto file cleanup
β Modern dark/light UI
π Android WebView app
π Push notifications
π Windows tray client
π Optional HTTPS PWA support
π Share-to-Portify Android intent
π Development Notes
Works best on Python 3.10+
To run headless:
./portify-tray.sh(Starts the Flask server and adds a tray icon.)
Files uploaded are auto-served via /uploads/ and can be downloaded anytime.
Flask & Flask-SocketIO community
Inspiration from KDE Connect, Snapdrop & LocalSend
##π Support
If you found Portify interesting, β Star this repo β it helps more developers discover it!


