AirTrail
A modern, open-source personal flight tracking system
Alternative to: flighty, app in the air, tripit
v3.12.0
2026-08-09What’s Changed
This release gives individual flights their own details pane. Select a flight from the map, route details, or flight list, and AirTrail will focus the map on that journey while showing its details. This is especially useful if the flight has a dedicated track.
Uploaded flight tracks can now be colored by altitude, with a legend and dashed sections where the path was estimated. AirTrail can also import readsb trace JSON files and help select the correct flight when a trace contains multiple legs.
Passenger information has also been reworked. Each passenger can now have their own seat, flight reason, and custom field values. Custom fields now support multi-select values too. Existing seat and flight-reason data is migrated automatically.
Importing and browsing flight history is easier as well. v3.12.0 adds a Miles & More importer, mapping for unknown airlines and aircraft, and field-by-field conflict resolution when AeroDataBox returns different information. The flight list now groups connecting legs and separates upcoming flights from past ones.
This release also tightens permissions when importing AirTrail backups and fixes a path traversal issue in custom airline icon uploads.
🚀 Features
- feat: add altitude-colored flight tracks by @johanohly in https://github.com/johanohly/AirTrail/pull/658
- feat: individual flight details pane by @mhlas7 in https://github.com/johanohly/AirTrail/pull/649
- feat: per-passenger custom fields and flight reasons by @johanohly in https://github.com/johanohly/AirTrail/pull/679
🌟 Enhancements
- fix: correct airport last visit date and add next visit by @jonlarson13 in https://github.com/johanohly/AirTrail/pull/640
- feat: add flight track preference option by @achatman in https://github.com/johanohly/AirTrail/pull/655
- fix: respect date and time preferences throughout the app by @johanohly in https://github.com/johanohly/AirTrail/pull/660
- feat: add unknown aircraft mapping to imports by @achatman in https://github.com/johanohly/AirTrail/pull/669
- fix: add additional PWA app icon sizes and fix the apple icon by @mhlas7 in https://github.com/johanohly/AirTrail/pull/680
- feat: in-app changelog enhancements by @johanohly in https://github.com/johanohly/AirTrail/pull/683
- feat: add Miles & More flight history importer by @nicolaus-hee in https://github.com/johanohly/AirTrail/pull/685
- fix: import flights with unknown airlines by @johanohly in https://github.com/johanohly/AirTrail/pull/694
- feat: consider the entered origin/destination when searching aerodatabox by @mhlas7 in https://github.com/johanohly/AirTrail/pull/689
- feat: add aerodatabox data conflict resolution modal by @mhlas7 in https://github.com/johanohly/AirTrail/pull/673
- feat: group layovers and separate upcoming from past flights by @Gaudv in https://github.com/johanohly/AirTrail/pull/696
🐛 Bug fixes
- fix: improve antimeridian flight track rendering and map interactions by @idunwannagotoschool in https://github.com/johanohly/AirTrail/pull/657
- fix: fill visited countries based on flights not working by @achatman in https://github.com/johanohly/AirTrail/pull/659
- fix: secure AirTrail backup imports by @johanohly in https://github.com/johanohly/AirTrail/pull/662
- fix: make Kosovo and Taiwan selectable on visited countries map by @johanohly in https://github.com/johanohly/AirTrail/pull/663
- fix: path traversal in airline icon upload by @bunlongheng in https://github.com/johanohly/AirTrail/pull/695
- fix: prefer precise AeroDataBox aircraft model by @johanohly in https://github.com/johanohly/AirTrail/pull/705
- fix: make the browser-side map caching actually work by @mhlas7 in https://github.com/johanohly/AirTrail/pull/681
- fix: treat an empty METAR response body as no data by @mews-se in https://github.com/johanohly/AirTrail/pull/704
- fix: count dropped FR24 rows and surface unknown aircraft by @mews-se in https://github.com/johanohly/AirTrail/pull/703
- fix: derive FR24 arrival times left empty in the export by @mews-se in https://github.com/johanohly/AirTrail/pull/698
- fix: align arc endpoints at high zoom by @johanohly in https://github.com/johanohly/AirTrail/pull/706
- fix: preserve flight list scroll after edit by @johanohly in https://github.com/johanohly/AirTrail/pull/707
- fix: close date picker after selection by @johanohly in https://github.com/johanohly/AirTrail/pull/708
New Contributors
- @jonlarson13 made their first contribution in https://github.com/johanohly/AirTrail/pull/640
- @achatman made their first contribution in https://github.com/johanohly/AirTrail/pull/655
- @idunwannagotoschool made their first contribution in https://github.com/johanohly/AirTrail/pull/657
- @nicolaus-hee made their first contribution in https://github.com/johanohly/AirTrail/pull/685
- @bunlongheng made their first contribution in https://github.com/johanohly/AirTrail/pull/695
- @trugty made their first contribution in https://github.com/johanohly/AirTrail/pull/688
- @mews-se made their first contribution in https://github.com/johanohly/AirTrail/pull/704
Full Changelog: https://github.com/johanohly/AirTrail/compare/v3.11.1…v3.12.0