Send folders securely between computers on your network. Files are automatically compressed and encrypted with a password before transfer.
- Go 1.21 or newer
- Both computers on the same local network
git clone https://github.com/kikikian/transfer
cd transfer
go run main.goThen open your browser to: http://localhost:3030
You should see a home page with two options: Send and Receive.
First, determine the receiver's IP address so the sender knows where to send files.
On Windows:
ipconfigLook for IPv4 Address (usually starts with 192.168.x.x or 10.x.x.x)
On Linux/Mac:
ip addrLook for inet under your network interface.
On the receiving computer:
- Go to http://localhost:3030
- Click Receive
- Choose the folder where you want to save files
- Enter a password (share this with the sender)
- Click Receive — it will wait for the connection
On the sending computer:
- Go to http://localhost:3030
- Click Send
- Choose the folder you want to send
- Enter the same password as the receiver
- Enter the receiver's IP address in the format:
192.168.1.45:8080(replace with actual IP) - Click Send — files will compress and transfer automatically
Watch the progress bar as files upload and transfer across the network.
- Backend (logic in [[transfer backend notes]])
- create compressing and decompressing logic
- create function to listen on port
- create function to dial port
- also create
handleConnection funcon server side
- also create
- logic to stream data through port
- create main function to handle everything
- logging
- UI
- Website
- Form requests
- progress bar
- add visualization of logs (graph)
- GUI (Bubble Tea)
- connect to main.go
- Design bubbleTea layout with lipgloss for styling
- Start HTTP server automatically
- Open browser on selection
- Website
- UX Improvements (Send Page)
- Auto-display local IP address
- Copy IP to clipboard button
- Drag and drop file support
- Generate random password button
- Format hints for receiver IP
- Future Features
- Accept page improvements (similar UX enhancements)
- Better error handling and validation
- Desktop app packaging (.exe, .dmg, .AppImage)
- Resume interrupted transfers
- Support for public networks (hole punching)
- File preview before transfer
- Transfer history/logs