About
SOS Airways is an agentic flight monitoring service built for people needing emergency evacuation flights from the Middle East. Users submit their budget and destination — the system then scans DXB departures every 5 minutes, 24/7, and sends a WhatsApp alert the moment a flight within budget is found. Built with a Python agentic pipeline (Railway), Next.js frontend (Vercel), Supabase for session management, SerpAPI for live flight data, Twilio for WhatsApp alerts, and Stripe for payments. Sessions auto-activate on payment and expire after 48 hours.
Screenshots

Build Timeline
First update
Hoping to look into how to support all the folks stuck at airports trying to catch flights to escape. I am thinking of automated alerts to get flight updates, whatsapp for communication as that's what everyone is using these days
Core Pipeline Architecture
Built the core Python pipeline (pipeline.py) that scans Dubai (DXB) departures in real-time using SerpAPI, then filters flights against user budgets. Originally a single-session hardcoded script.
Multi-Session Agentic Architecture
Refactored to a multi-session system with run_all_sessions() — queries Supabase every 5 minutes for all active monitoring sessions, spins each up as a concurrent asyncio.Task, and auto-picks up new paying customers without any manual restart.
Supabase Database Design
Designed the full database schema across 5 tables. Sessions are activated/deactivated automatically based on payment and expiry.
WhatsApp Alerts via Twilio
Integrated Twilio's WhatsApp API to send real-time flight alerts to users. Submitted for Meta business verification (production sender) with EIN/corporation credentials.
Next.js Frontend (Vercel)
Built the customer-facing frontend at sosairways.com using Next.js, deployed on Vercel. Kept in a separate GitHub repo (santamouss/sosairways) from the pipeline for clean deployment separation.
Stripe Payments + Webhook
AI Agents browsing can be expensive so have to control cost and charge users. Built a Stripe webhook at /app/api/stripe/webhook/route.ts. On checkout.session.completed, it extracts the monitoring_id from the success URL, activates the session in Supabase, and sets a 48-hour expires_at. Tested end-to-end: payment → webhook → session activates → pipeline picks up within 5 minutes.
Railway Deployment (24/7 Pipeline)
Deployed the Python pipeline to Railway for always-on execution. Troubleshot outbound networking (upgraded to Hobby plan), $5 plan
Going Live Switched Stripe from sandbox
Live with the Dubai Location