
Key Takeaways
- Build a functional flight booking app MVP in weeks using Adalo's drag-and-drop interface—no coding required
- Structure your database with Collections for Cities, Flights, Hotels, and Users to enable relational data management
- Integrate external flight APIs like Amadeus for real-time pricing and availability data
- Implement secure payment processing through Stripe integration for booking transactions
- Publish your app to iOS, Android, and web platforms from a single Adalo project
This comprehensive tutorial walks you through building a flight comparison and booking app similar to Skyscanner using Adalo's no-code platform. You'll learn how to create a working app with flight search, price comparison, booking flow, and payment processing—all without writing a single line of code.
While a true Skyscanner handles millions of flight records globally, this guide focuses on building a validated MVP that you can use to test niche travel markets like adventure tourism, corporate travel, or regional destinations.
Prerequisites and Initial Setup
Step 1: Create Your Adalo Account and App
- Go to Adalo.com and sign up for a free account
- Click "Create New App"
- Choose "Mobile App" or "Responsive Web App" based on your target audience
- Name your app (e.g., "FlightFinder")
- Select "Start from Scratch" to build a custom travel interface
Step 2: Configure Your App Theme
- Choose a primary color that reflects travel (e.g., sky blue or airline navy)
- Select a secondary color for call-to-action buttons
- Pick a clean, readable font for flight details and pricing
- Click "Continue" to enter the editor
Step 3: Gather Required Accounts and APIs
Before building, you'll need:
- Flight Data API: Amadeus API requires business verification
- Payment Gateway: Stripe account for processing bookings
- Publishing Accounts: Apple Developer ($99/year) and Google Play ($25 one-time fee)
- Google Maps API Key: For location-based features
Pro Tip: Start building with CSV sample data while waiting for API approval. This lets you validate your app design before connecting live flight feeds.
Building the Database Structure
Step 4: Design the Cities Collection
- Click the Database icon in the left sidebar
- Click "+ Add Collection"
- Name it "Cities"
- Add these properties:
- City Name (Text)
- Airport Code (Text) - e.g., "JFK", "LAX"
- Country (Text)
- City Image (Image)
- Intro Description (Text - Multiline)
Step 5: Create the Flights Collection
- Click "+ Add Collection"
- Name it "Flights"
- Add these properties:
- Flight Number (Text)
- Airline (Text)
- Airline Logo (Image)
- Departure Time (Date & Time)
- Arrival Time (Date & Time)
- Price (Number)
- Cabin Class (Text) - Values: "Economy", "Business", "First"
- Stops (Number) - 0 for direct, 1+ for connections
- Duration Minutes (Number)
- Available Seats (Number)
Step 6: Create the Bookings Collection
- Click "+ Add Collection"
- Name it "Bookings"
- Add properties:
- Booking Reference (Text - Auto-Generated)
- Passenger Name (Text)
- Passenger Email (Text)
- Total Price (Number)
- Booking Status (Text) - Values: "Pending", "Confirmed", "Cancelled"
- Payment Status (Text) - Values: "Unpaid", "Paid", "Refunded"
- Booking Date (Date & Time - Automatic)
- Travel Date (Date)
Step 7: Set Up Database Relationships
Proper relationships are critical for flight aggregator functionality. According to Adalo's database documentation, you should configure:
- In Flights collection:
- Add relationship to Cities: "Departure City" (Many flights → One city)
- Add relationship to Cities: "Arrival City" (Many flights → One city)
- In Bookings collection:
- Add relationship to Users: "Booked By" (Many bookings → One user)
- Add relationship to Flights: "Flight Booked" (Many bookings → One flight)
- In Users collection (pre-built):
- Add Saved Flights (Relationship to Flights - Many-to-Many)
- Add Phone Number (Text)
- Add Preferred Cabin Class (Text)
Designing the User Interface
Step 8: Build the Home Screen with Search
- Rename the default screen to "Home"
- Add a hero Image or gradient background
- Add Text: "Find the best flight deals"
- Create the search form with these components:
- Dropdown for "From" (connected to Cities collection)
- Dropdown for "To" (connected to Cities collection)
- Date Picker for departure date
- Date Picker for return date (optional)
- Dropdown for cabin class
- Number Input for passengers
- Add Button: "Search Flights" → Link to "Search Results" screen
Step 9: Create the Search Results Screen
- Add new screen "Search Results"
- Add Custom List component (not Simple List—you need more control):
- Connect to Flights collection
- Filter by: Departure City = Selected Origin AND Arrival City = Selected Destination
- Sort by: Price (Lowest First) as default
- For each list item, display:
- Airline logo and name
- Departure and arrival times
- Flight duration
- Number of stops
- Price prominently displayed
- Add filter buttons above the list:
- "Cheapest" → Sort by Price
- "Fastest" → Sort by Duration
- "Direct Only" → Filter where Stops = 0
Step 10: Add Advanced Filtering
- Add a Filter Panel (collapsible section):
- Price range slider
- Departure time ranges (Morning, Afternoon, Evening)
- Airlines checkboxes
- Stops dropdown (Any, Direct, 1 Stop Max)
- Use conditional visibility to show/hide based on user selection
- Update list filters dynamically based on selections
Implementing Booking and Payments
Step 11: Build the Flight Detail Screen
- Add new screen "Flight Details"
- Display comprehensive flight information:
- Large Airline Logo
- Flight number and aircraft type
- Departure/Arrival with airport codes and times
- Duration and stops (with layover details)
- Baggage allowance
- Cancellation policy
- Add Price Breakdown section:
- Base fare
- Taxes and fees
- Total price
- Add Button: "Select This Flight" → Link to "Passenger Details" screen
Step 12: Create Passenger Details Form
- Add new screen "Passenger Details"
- Add Form component connected to Bookings:
- Full Name (as on passport)
- Email address
- Phone number
- Date of birth
- Passport number (for international flights)
- Add seat selection (optional enhancement)
- Add Button: "Continue to Payment"
Step 13: Integrate Stripe Payments
Adalo supports Stripe for secure payment processing:
- Go to Adalo Marketplace and install "Stripe Payment" component
- Add new screen "Payment"
- Configure Stripe component:
- Amount: Current Booking → Total Price
- Currency: USD (or your preferred currency)
- Add payment form fields:
- Card number
- Expiry date
- CVC
- Billing zip code
- On successful payment:
- Update Booking → Payment Status to "Paid"
- Update Booking → Booking Status to "Confirmed"
- Create Booking record linking user and flight
- Navigate to "Confirmation" screen
Step 14: Build Confirmation Screen
- Add new screen "Booking Confirmation"
- Display:
- Success message with checkmark
- Booking reference number
- Flight summary
- Passenger details
- Total paid
- Add Buttons:
- "View My Trips" → Link to Trip History
- "Book Another Flight" → Link to Home
- Trigger email confirmation (via Zapier integration)
Adding User Features
Step 15: Create User Accounts and Profiles
- Build "Sign Up" screen with form:
- Email, Password, Full Name, Phone
- Build "Login" screen
- Add "Profile" screen with:
- Profile photo upload
- Saved payment methods
- Travel preferences
- Notification settings
Step 16: Implement Saved Flights Feature
- On Flight Detail screen, add Icon Button (heart/bookmark)
- Configure action:
- If flight NOT in user's Saved Flights → Add to Saved Flights
- If flight IS in Saved Flights → Remove from Saved Flights
- Create "Saved Flights" screen:
- List of user's saved flights
- Quick "Book Now" button for each
- Price alert indicator
Step 17: Build Trip History
- Add "My Trips" screen accessible from profile
- Add List of Bookings:
- Filter: Booked By = Logged In User
- Sort: Travel Date (Upcoming first)
- Display for each booking:
- Flight route and date
- Booking status (Upcoming, Completed, Cancelled)
- Booking reference
- Add tap action → View booking details
Step 18: Set Up Push Notifications
Configure notifications using Adalo's notification system:
- Booking confirmation alerts
- Flight reminder (24 hours before departure)
- Price drop alerts for saved flights (requires external automation)
- Check-in reminders
Connecting External Flight APIs
Step 19: Choose Your Flight Data Source
For real-time flight data, you'll need an external API:
Recommended Options:
- Amadeus API: Comprehensive flight data, requires business verification
- Kiwi.com API: Good for aggregated booking
- Travelpayouts: Affiliate model with commission on bookings
Important Note: Skyscanner's API is restricted to approved partners. Plan for Amadeus or alternatives.
Step 20: Configure External Collection
- Go to Database → Click "External Collections"
- Add new External Collection
- Configure API endpoint:
- Base URL: Your flight API endpoint
- Authentication: API key header
- Method: GET
- Map API response fields to your Flights collection structure
- Set up query parameters for search (origin, destination, dates)
This is the most technically challenging step. Consider hiring an Adalo Expert if you need assistance with complex API configurations.
Step 21: Handle API Limitations
Since Adalo's built-in database has record limits based on your plan:
- Don't store all flight data locally—fetch in real-time via API
- Cache recent searches to reduce API calls
- For scaling to hundreds of thousands of records or more complex backend logic, integrate external databases like Xano
Testing and Publishing
Step 22: Add Test Data
Before connecting live APIs:
- Import sample data via CSV:
- 10-20 cities with airport codes
- 50+ sample flights with realistic pricing
- Test user accounts
- Create bookings in various statuses for testing
Step 23: Test Core User Flows
Verify these flows work correctly:
- User registration and login
- Flight search with filters
- Flight selection and booking
- Payment processing (use Stripe test mode)
- Booking confirmation and trip history
- Saved flights functionality
Step 24: Preview and Debug
- Use Adalo's built-in previewer for desktop testing
- Download the Adalo app for mobile testing
- Test on both iOS and Android devices
- Check all conditional logic and form validation
Step 25: Publish Your App
Adalo lets you publish to multiple platforms:
For Web:
- Go to Publish tab
- Configure custom domain (requires Starter plan or higher)
- Click "Publish to Web"
For iOS:
- Navigate to iOS publishing
- Provide Apple Developer credentials
- Configure app metadata and screenshots
- Submit for App Store review
For Android:
- Navigate to Android publishing
- Provide Google Play credentials
- Configure store listing
- Submit for review
Why Adalo Is Worth Checking Out for Travel Apps
Adalo stands out as the ideal platform for building a flight booking MVP because it combines speed-to-market with genuine native app capabilities. Unlike web-wrapper solutions, Adalo produces true native apps that can be published directly to the App Store and Google Play.
The platform's built-in relational database handles the complex relationships between cities, flights, users, and bookings that a travel aggregator requires. When you outgrow Adalo's native database, seamless integrations with Xano and Airtable let you scale without rebuilding.
With over 1 million apps created on the platform and access to 50+ marketplace components, you're building on proven infrastructure. The Component Marketplace includes pre-built elements for maps, payments, and calendars—core features for any booking app.
For entrepreneurs testing niche travel markets—adventure tourism, corporate booking platforms, or regional flight comparison—Adalo lets you validate your concept in weeks rather than months, at a fraction of custom development costs.
Frequently Asked Questions
Can I really build a complex app like Skyscanner without writing any code?
Yes, you can build a functional flight booking MVP with Adalo's drag-and-drop interface. However, a true Skyscanner-scale app handles millions of flights globally—your Adalo app is better suited for niche markets or validating concepts. For enterprise scale, you'd eventually need custom development or external databases like Xano.
What kind of flight data can I integrate into my Adalo app?
Adalo supports external API connections for real-time flight data. Amadeus is the most common choice for flight APIs, though it requires business verification. You can also use Kiwi.com or Travelpayouts for affiliate booking models. Note that Skyscanner's API is restricted to approved partners.
Will my no-code flight app be scalable if I get a lot of users?
Adalo's database supports different record limits based on your plan, with higher-tier plans accommodating tens or hundreds of thousands of records. The solution for unlimited flight data is using real-time API calls rather than local storage, and integrating Xano for advanced scalable backend needs.
Can users make secure payments directly through an Adalo flight booking app?
Yes, Adalo supports Stripe integration for secure payment processing. Stripe handles PCI compliance, so you don't store sensitive card data in your app. You can also integrate IAPHUB for in-app purchases if you're monetizing through subscriptions.










