Skip to content

The website

The public pages of vulture-web (app/public.rb, views/). The API the apps call is in vulture-web API, the /open/* page in Open page on the web.

PathShows
/Home: the hero with both store badges, the features in cards with opening a Soaring Spot competition up front, the ambassadors, Free and Pro, the services it works with, the browser extensions, the latest posts, and the badges again
/featuresEvery feature as one index, filterable (see below)
/downloadNew. Both stores, the visitor’s own first, and how Android and Apple differ (see below)
/why, /faqWhy Vulture, and the questions; the FAQ now answers for Android too
/blog, /blog/<slug>The blog; a whole card is the link, and a screenshot opens full size on a tap
/terms, /privacyThe legal pages, with a table of contents
/delete-accountOn main only so far: how to delete an Android account (routes)
/open/*The fallback for a Vulture link without the app; see Open page on the web
/sitemap.xmlThe pages above and the published posts; the branch lists /download but has lost /delete-account

The header links to Features, Why, Blog (when a post is published) and FAQ, with a theme button and a Download button; on a phone they fold into a menu.

Wherever the site offers the app it shows both badges (views/partials/store_badges.haml), the visitor’s own store first, read from the user agent (Vulture::Platform#visitor_platform):

User agent containsOrder
AndroidGoogle Play, App Store
iPhone, iPad, iPod or Macintosh (iPadOS reports a Mac)App Store, Google Play
anything else (Windows, Linux, a crawler)Google Play, App Store
  • App Store: Apple’s localised badge, black on light pages and white on dark ones; Czech has no white badge and falls back to English.
  • Google Play: Google’s localised badge, one version for both themes, linking to be.fousa.vulture; a missing language falls back to English.

Two cards, Android and “iPhone, iPad, Mac, and Apple Watch”, the visitor’s own marked “Your device” and first. Below them a comparison:

TopicAndroidApple
PriceFree to download; Vulture Pro starts with a free trial (both)same
SyncAn optional Google sign-in syncs flights, tasks, files and settings between Android devicesiCloud syncs everything between Apple devices
Between Android and AppleLogbooks stay separate for now; move a flight with its IGC file or through WeGlide (both)same
Vulture ProBought in Google Play, “also unlocks Pro on your Apple devices”Bought in the App Store, “unlocks Pro on Android too”
Watch—Stats and health on the Apple Watch

/features lists every feature as data (app/features.rb, the features locale tree), one topic per section with at most one screenshot. With scripts it adds a filter bar:

  • a search field over the feature texts;
  • Platform: All, Android or Apple;
  • Plan: All, Free or Pro;
  • tags: Pro (needs Vulture Pro), New, and Apple (not on Android).

The Pro tags follow ProFeature in the apps: creating, editing and scanning tasks, SkySight and the satellite clouds, the Debrief’s parts, the thermal sheet, several flights on a map, your own airspace files, recording, statistics and uploads. They must match the paid flags in the feature pages and Vulture Pro; a change to what is Pro changes both. Without scripts every feature is simply listed.

  • Theme: the site follows the system’s light or dark setting. The footer’s System / Light / Dark picker and the header’s moon/sun button override it; the choice is kept in the browser (localStorage) and applied before the page paints. The live site has no picker.
  • Language: detected from the browser’s Accept-Language, in the eight languages. The footer’s language menu sends ?lang=<code>, which sets a lang cookie for a year and redirects to the same page without the parameter; the cookie then wins over the browser. The live site has no picker.

Calm on purpose: Geist and Geist Mono, one accent (#EC7F2C, the app icon’s orange) used sparingly, white cards without borders on a light gray page (#f6f7f9), a frosted header, and generous space between sections. A dark set (#0d1015 page) applies under the system’s dark mode or a picked dark theme. Text colours clear WCAG AA in both, and the orange is never used behind white text. Layouts are checked at 412 px, a common Android width. Everything is in one stylesheet, public/css/site.css. These docs use the same fonts and colours.