Skip to content

Product overview

As of 2026-10-19.

Vulture is an app for planning and analysing soaring flights. A pilot imports or records an IGC flight log, and Vulture opens it as a full-screen map with replay, a barogram, thermals, glides, the task and its legs, airspace, and a Debrief that rates the flight. Several flights can share one map to compare a competition day. Around that sit:

  • tasks, waypoints and airspace files;
  • competitions from Soaring Spot and Charron.line;
  • uploads to WeGlide, SkyLines and Charron.line;
  • weather (METAR, TAF, SkySight);
  • on Apple platforms, in-flight recording.

The pilot picks a sport in Settings, or lets Vulture detect it from the flight (VultureDetectSportAutomatically / synced key detectsSportAutomatically). The sport changes the analysis thresholds: see Flight analysis.

SportStored value (iOS VultureAnnotationStyle)
Gliding (sailplanes)0
Paragliding1
Hang gliding (delta)2
RepositoryLanguageWhat it isStatus
vulture-iosSwift (UIKit shell around SwiftUI screens, XcodeGen)The reference implementation: iPhone, iPad, the Mac (Catalyst), Apple Watch, widgets, Live Activity and Control Center control, App Clip, Quick Look and thumbnail extensions, a Safari web extension, Siri and App Intents. Also the Chrome extension (Chrome/)In the App Store (app id 1468252627). Build 564 (XcodeGen/Settings.yml), deployment target iOS 26.0
vulture-androidKotlin, Jetpack Compose, Material 3 ExpressiveA native port that aims for parity with iOS’s analyse flights experience, synced through Google (Firebase) instead of iCloudInternal and alpha builds on Google Play: version 0.1.0, build 4 (version.properties, CHANGELOG.md). minSdk 29 (Android 10)
vulture-webRuby (Sinatra)The website vulture.aero, the /api/* backend both apps call (a Soaring Spot proxy, XCSoar and openAIP file catalogues, elevation tiles, the SkySight catalogue), and the AASA and assetlinks filesDeployed at https://vulture.aero
vulture-docsMarkdown (Astro Starlight)This site: the shared behaviour, data formats, APIs and decisions

How they relate:

  • iOS defines behaviour. Android reproduces it, including the numeric quirks marked Copy (Port decisions). Parity is proven by the golden data that iOS exports. Fixes that Android applies first are listed in ios-changes for iOS to follow.
  • Both apps call vulture-web with one shared API token (routes, API). They call third-party services directly (Integrations).
  • Sync differs. iOS syncs through CloudKit and the iCloud key-value store. Android syncs through Firestore and Cloud Storage, in a schema that iOS will adopt later (Sync schema). Until then, the two platforms’ data and subscriptions are separate.
  • Strings are shared. Android generates its strings from the iOS catalogues (Localisation).
  • Links are shared. https://vulture.aero/open/… opens either app (Deep links).

Out of scope for Android v1 (vulture-android/docs/analysis/00-roadmap.md):

  • FLARM Wi-Fi and LXNAV Bluetooth transfer
  • flight recording
  • SkySight
  • weather and METAR
  • airports and task planning screens beyond what flights need
  • widgets and Wear OS
  • Flight Coach
  • an App Clip equivalent
  • task sharing

The ten facts from roadmap §1, in short:

  1. The analysis domain is pure logic, about 12k lines of Swift. It ports to pure-JVM Kotlin, and parity is proven by golden tests.
  2. 22 numeric quirks are copied bug for bug. Fixing one is a decision for both platforms.
  3. Opening a flight opens a full-screen map with a floating panel (flight chips, barogram, Play). Statistics sit behind the i button.
  4. The shell is a sidebar plus one detail column. The map is pushed over the list.
  5. Comparing means several flights on one map (up to 20 colours) plus a Compare table. More than one flight is Pro.
  6. IGC is the only flight format. Duplicates are dropped silently.
  7. The effective defaults are not the declared ones: replay at 10×, pressure altitude, gallery layout, and unread on import.
  8. Soaring Spot is served by vulture.aero, so the apps do no scraping.
  9. Sync had to be rebuilt for Android: CloudKit cannot be reached from Android, and credentials never sync.
  10. Strings are reused in 8 complete locales.

Vulture is free, with an optional subscription, Vulture Pro: monthly or yearly, with a free trial, sold through RevenueCat (entitlement all). The details, product ids and paywall triggers are in Subscriptions.

FreeVulture Pro
The logbook and importSeveral flights on one map, Compare, a competition day’s flights together
One flight on the map, with replay and barogramThe race ranking and Replay Day
Competitions (Soaring Spot, Charron.line)The pilot’s own airspace files
openAIP airspace and its warningsThe full Debrief (each part and its answers) and Siri’s flight analysis
The Debrief score and bandThe thermal sheet (climb, centring, 3D)
Thermals on the mapCreating and editing tasks (iOS)
Opening, flying and sharing an existing taskOverriding the flights’ task
Resuming a running recording; resetting a task overrideRecording a flight (iOS)
Sync (iCloud; on Android up to 100 MB)SkySight and satellite clouds (iOS)
Logbook statistics
Uploads to WeGlide, SkyLines and Charron.line
Unlimited synced storage (Android)

The free tier is always on in Release. A gate never hides data that a lapsed pilot already has: files stay listed, tasks open, and recordings resume (iOS CLAUDE.md, “Vulture is free, with Vulture Pro”).