DEV Community

UlugbekMuslitdinov
UlugbekMuslitdinov

Posted on

How I Built 2Flights: A Cross-Platform Flight Tracker with Flutter, Django, and GPT-4o

When App in the Air shut down, travelers lost one of the most popular flight tracking apps. As both a developer and a frequent traveler, I decided to build a cross-platform alternative: 2Flights.

It’s now live on iOS and Android, with thousands of flights tracked already. In this post, I’ll share the tech stack, the biggest technical challenges, and why I chose certain tools.

Core Features

  • Add flights manually, by forwarding itinerary emails, or importing from Flighty

  • Get real-time push notifications for delays, gates, and schedule changes

  • Track personal stats (miles flown, airports visited, aircraft types)

  • Compete in a global leaderboard (monthly, yearly, all-time)

  • Enjoy over 250+ high-quality airline liveries, including special editions

  • Multi-language support (English, Spanish, French, Simplified Chinese, German, Russian, Czech)

Tech Stack

Mobile: Flutter — one codebase for both iOS and Android. I chose Flutter for fast iteration, smooth animations, and consistent UI across platforms.

Backend: Django — reliable, batteries-included framework with excellent ORM and admin tools.

Database: PostgreSQL + Redis for caching and background tasks.

Hosting: AWS (ECS Fargate for containers, RDS for Postgres, CloudFront for CDN).

Subscriptions: RevenueCat — saved weeks of work for managing in-app purchases and entitlements.

Notifications: Firebase Cloud Messaging + Apple Push Notification Service.

AI: ChatGPT (model 4o) — to parse messy booking emails into structured flight data. This replaced brittle regex parsers and gave us more accuracy.

Technical Challenges

Parsing itinerary emails
Airlines and booking sites format confirmation emails in completely different ways. Instead of writing hundreds of regex rules, I use GPT-4o to extract structured fields (PNR, flight number, airports, times). This dramatically reduced dev time.

Scalability
Flight traffic is spiky — most users check flights just before and during trips. AWS Fargate makes it easy to auto-scale containers, and Redis handles burst caching for high-volume notifications.

Cross-platform polish
Flutter helped, but edge cases (like iOS push background modes vs Android) required platform-specific handling. RevenueCat simplified subscription parity across stores.

Lessons Learned

Don’t reinvent the wheel for subscriptions and notifications. Tools like RevenueCat and Firebase save enormous time.

AI is surprisingly effective for parsing semi-structured travel data. It’s not perfect, but it beats regex in flexibility.

Even niche apps can benefit from community features — the leaderboard has turned out to be more engaging than I expected.

What’s Next

I’m working on:

Deeper statistics (route maps, aircraft type breakdowns)

More social features

Expanding our livery library (already at 250+)

Try It

2Flights is free to download. The free plan lets you track up to 7 flights with real-time alerts. New users get a 7-day trial of the premium “First Class” plan.

iOS - https://apps.apple.com/us/app/2flights-live-flight-tracker/id6742110324
Android - https://play.google.com/store/apps/details?id=io.toflights.app
Website - https://2flights.io/

🙏 I’d love feedback from this community on any new features

Top comments (1)

Collapse
 
onlineproxy profile image
OnlineProxy

The idea behind 2Flights came up when Flighty ditched its free tier, leaving a gap that needed filling. As someone who’s always on the go, I wanted a tool that didn’t just track flights but also respected my privacy and actually used AI in a smart way. The real challenge dealing with the chaos of email itineraries from all sorts of airlines. But by mixing regex, NLP, and GPT-4o, I was able to pull out flight data with some surprisingly solid accuracy. The "Live Sharing" feature It’s been a game-changer, letting friends track each other’s flights in real-time and making the whole thing way more fun. The biggest takeaway from this project its AI is like your trusty co-pilot-it does a lot of the heavy lifting, but you still need that human touch to steer the ship.