airdash is a free, open source file management & sync project written in Dart and released under MIT. It has 668 GitHub stars, 126 forks and 18 open issues, and was last pushed 1 months ago. On this registry it ranks #64 of 65 tracked projects in File Management & Sync, with 5 head-to-head comparisons available.

What is airdash?

AirDash is a free, open-source file-sharing app built with Flutter that lets you transfer photos and files directly between any devices — iOS, macOS, Windows, Linux and Android — from anywhere, for anyone who wants private device-to-device transfers without paying for cloud storage.

What it is

AirDash is a Flutter 3 application distributed through the Apple App Store, Google Play, Microsoft Store, Snap Store and Homebrew, with WebRTC handling the actual file and data transfers. Firebase Firestore carries WebRTC signaling and config storage, Firebase Functions automate device pairing and configuration, Firebase Hosting serves the website and static files, and the release pipeline is driven by the App Store Connect API and Microsoft Store submission API.

The problem it solves is sending files between devices that may not be on the same network or in the same room, without routing content through a storage service. Files are fully encrypted and transferred directly between devices, the app picks the best available connection (Wi-Fi, mobile internet or ethernet), transfers are started from the native mobile share sheet or by drag and drop on desktop, and the service is free forever for any number of files of any size.

Key capabilities

  • Transfers files peer-to-peer over WebRTC, encrypted end to end and sent directly between devices rather than through a cloud bucket.
  • Works across iOS, macOS, Windows, Linux and Android, each distributed through its native store (plus Homebrew cask airdash).
  • Sends files to devices on other networks, with no requirement that both peers share a LAN or be nearby.
  • Automatically selects the fastest available connection, whether Wi-Fi, mobile internet or ethernet.
  • Starts transfers from the native mobile share sheet on phones and from drag and drop on desktop.
  • Pairs devices through Firebase Functions, with WebRTC signaling and config stored in Firebase Firestore.
  • Ships TURN support through the updateTwilioToken backend function and a Google STUN server by default for connecting peers.

Who uses it and how

  • Individuals moving photos and files between a phone and a desktop across platforms, using the share sheet on mobile and drag and drop on desktop.
  • Self-hosters who create their own Firebase project, enable Firestore and anonymous authentication, and deploy the pairing backend function themselves.
  • Users on restricted or mixed networks who rely on STUN/TURN relay (optionally via Twilio STUN/TURN) when a direct peer connection is unavailable.
  • Contributors shipping releases across five app stores, following the documented publish guide covering flutter build ipa, flutter build appbundle, dart run msix:create and snapcraft uploads.

Getting started

Create a Firebase project with Firestore and anonymous authentication enabled, duplicate .env.sample into a .env with your project id and web API key, run dart tools/scripts.dart app_env to generate env.dart, deploy the backend with cd functions && npm i && npx firebase deploy --only pairing, then launch the app with flutter run.

How it compares

No comparable paid products are named in the project documentation, so the registry has nothing to contrast it against on licence or cost; among the tools actually referenced here — Flutter, WebRTC and Firebase — it stands alone as a complete end-user file transfer application rather than a library or service.

When to use it — and when not

A self-hoster must operate their own Firebase project (Firestore, anonymous auth and the deployed Functions) and, for restrictive networks, configure a TURN provider such as Twilio, so it is a poor fit for anyone unwilling to run or pay for that backend. It suits people who want direct encrypted transfers across five platforms under an MIT licence, but should be evaluated against its 18 open issues and the breadth of its release surface before depending on it in production workflows.

project readme (upstream, from github) — read inline

AirDash File Sharing

Transfer photos and files to any device.

Get the app

Analytics

Key features

  • Support for all major platforms and app stores (iOS, macOS, Windows, Linux and Android)
  • Free forever to send any number of files of any size
  • Maximum privacy and security by fully encrypting files and transferring them directly between devices
  • Quickly start transfers using native mobile share sheet and drag and drop on desktop
  • Send files anywhere (no need to be on the same network or nearby)
  • Automatically uses the best and fastest connection available (wifi, mobile internet, ethernet etc)

Key technologies

  • Flutter 3 (iOS, macOS, Android, Linux and Windows apps)
  • WebRTC (file and data transfers)
  • Firebase Firestore (WebRTC signaling and config storage)
  • Firebase Functions (device pairing and config automation)
  • Firebase Hosting (website and static files hosting)
  • App Store Connect API and Microsoft Store submission API (release automation)
  • Mixpanel (web and app analytics)
  • Sentry (app monitoring and error tracking)

Run project

  • Create a firebase project (https://console.firebase.google.com) and enable firestore and anonymous authentication
  • Create a .env file by duplicating the .env.sample file
  • Replace the firebase project id and web API key in the .env file with the ones for your project (firebase console -> project settings)
  • Run dart tools/scripts.dart app_env to get a env.dart file
  • Deploy pairing backend function by cd functions && npm i && npx firebase deploy --only pairing
  • Run app using editor or flutter run

By default a google stun server is used to connect peers. The simplest way to enable turn servers as well is to use https://www.twilio.com/stun-turn. Create functions/.env file similar to the functions/.env-sample file and deploy the updateTwilioToken backend function.

Contribute

Contributions are very much welcome on everything from bug reports to feature development. If you want to change something major write an issue about it first to ensure it will be considered for merge.

Publish guide (for contributors)

Prepare

  • Update libraries
  • flutter pub get
  • cd ios && pod update
  • cd macos && pod update
  • Update changelog.md and version in pubspec.yaml and snapcraft.yaml
  • git commit -am vX.X.X
  • git tag "vX.X.X"
  • git push && git push -f --tags

macOS

  • flutter build macos
  • Archive -> Distribute -> Direct Distribution
  • npx appdmg appdmg.json ./build/airdash.dmg
  • Distribute with transporter

iOS

  • flutter build ipa
  • Distribute with Transporter

Android

Windows

Linux

  • Open Ubuntu in VMWare
  • Open ~\Documents\airdash in vs code
  • git pull -r && flutter pub get
  • snapcraft clean --use-lxd # required
  • snapcraft --output build/airdash.snap --use-lxd
  • snapcraft upload --release=stable build/airdash.snap
  • Copy to mac ./build/airdash.snap (send.vis.ee for example)

Create Github release

Frequently asked questions

Is airdash free to use?

airdash is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does airdash do?

File sharing flutter webrtc app enabling sending files to any device from anywhere

What is airdash written in?

airdash is primarily written in Dart. Its source is publicly available at https://github.com/simonbengtsson/airdash, and it has 668 GitHub stars.