Skip to content

Latest commit

 

History

History
279 lines (180 loc) · 4.55 KB

File metadata and controls

279 lines (180 loc) · 4.55 KB

WireSend Roadmap (v1.0)

Vision

Build a secure, offline, cross-platform file sharing application that delivers an AirDrop-like experience across Windows, Linux, and macOS.

Core Principles

  • Cross-platform
  • Offline-first
  • Secure by default
  • Fast
  • Modular architecture
  • Contributor-friendly
  • Extensible transport layer

Milestone 1 — Foundation

Goal: Create the application's architecture.

  • Project structure
  • Module organization
  • Application manager
  • Global state
  • Event bus
  • Configuration system
  • Logging
  • Graceful shutdown
  • Error handling

Deliverable

WireSend starts successfully.

Milestone 2 — Protocol

Goal: Design the communication protocol.

  • Message definitions
  • Serialization
  • Packet versioning
  • Error messages
  • Capability negotiation

Deliverable

A stable protocol shared by every transport.


Milestone 3 — Device Management

Goal: Represent nearby devices.

  • Device model
  • Device manager
  • Device cache
  • Device expiration
  • Device capabilities

Deliverable

The application can manage discovered devices.


Milestone 4 — Discovery

Goal: Discover nearby devices automatically.

MVP

  • mDNS discovery
  • BLE discovery
  • Merge discovery results
  • Device deduplication

Deliverable

Nearby devices appear automatically.


Milestone 5 — Connections

Goal: Connect to discovered devices.

  • TCP listener
  • TCP client
  • Connection manager
  • Connection lifecycle
  • Timeouts

Deliverable

Devices can establish a connection.


Milestone 6 — Secure Pairing

Goal: Securely identify peers.

  • Key generation
  • Public key exchange
  • Session key derivation
  • Trust management
  • Pairing requests

Deliverable

Encrypted communication.


Milestone 7 — File Transfer

Goal: Send files.

  • Metadata exchange
  • Chunk streaming
  • Progress reporting
  • Integrity verification
  • Completion

Deliverable

Files transfer successfully.


Milestone 8 — Transfer Management

Goal: Handle real-world transfers.

  • Queue
  • Pause
  • Resume
  • Cancel
  • Retry

Deliverable

Reliable transfers.


Milestone 9 — Storage

Goal: Persist application data.

  • History
  • Trusted devices
  • Configuration
  • Cache cleanup

Deliverable

Settings and history survive restarts.


Milestone 10 — Desktop UI

Goal: Build the user interface.

  • Device list
  • Send dialog
  • Incoming requests
  • Progress
  • Notifications
  • History
  • Settings

Deliverable

Fully usable desktop application.


Milestone 11 — Testing

  • Unit tests
  • Integration tests
  • Multi-device testing
  • Cross-platform testing
  • Performance testing

Milestone 12 — Release

  • Installers
  • CI/CD
  • GitHub Releases
  • Documentation
  • Contribution guide

Community Roadmap (Post-v1)

These are intentionally independent features that contributors can build without changing the core.

Discovery

  • NFC discovery
  • QR code pairing
  • USB discovery
  • LAN broadcast improvements

Transport

  • QUIC transport
  • WebShare (browser-based sharing)
  • Relay mode
  • Mobile hotspot transport

Transfers

  • Folder transfer
  • Clipboard sharing
  • Text sharing
  • Drag & drop
  • Broadcast to multiple devices

Security

  • Trusted device groups
  • Device verification codes
  • Fingerprint comparison
  • Transfer approval policies

UI

  • Themes
  • Accessibility improvements
  • Localization
  • Custom device avatars

Productivity

  • CLI client
  • SDK
  • Plugin system
  • Shell integration
  • Context menu ("Send with WireSend")

Architecture Principles

To keep the project maintainable and contributor-friendly, we follow these rules:

  1. Discovery is separate from transport

    Discovery finds devices. Transport moves data.

  2. Protocol is transport-agnostic

    The same protocol works over TCP, QUIC, or future transports.

  3. Feature modules are independent

    New discovery methods or transports should plug into existing interfaces.

  4. Everything communicates through events

    Managers publish and subscribe to events rather than calling each other directly.

  5. Every milestone ends in a working application

    The project is always usable, even while new features are being developed.