Myers Media Group (MMG) is a company that provides macro SEO (search engine optimization) services to its clients. Macro SEO builds complex software solutions that aim at improving search engine performance of websites using unconventional methods.

MMG was helping one of the leading online travel agencies (OTA) reach the top positions on the flight search results page by leveraging low-frequency queries. While users usually find tickets by typing in queries like “flights from San Diego to New York,” this OTA took an alternative path. They sought the top positions with queries like “flights from San Diego to New York JetBlue” and others in that vein.

To optimize for such queries, MMG in concert with the OTA devised an engine to automatically generate hundreds of custom landing pages each tailored to these low-frequency, flight-search queries.

MMG engaged AltexSoft to design and implement three types of informational widgets used on generated pages: flexible flight search, flight status, and flight info with on-time ratings and general flight details.


As AltexSoft wasn’t involved in building the core OTA functionality from the ground up, the team had a limited time-frame to explore the specifics of the product and quickly embark on implementing the widgets for these landing pages. The overall work scope comprised the following challenges:

  • Provide clear UX design for the widgets that would combine all necessary data
  • Implement three dynamic widgets that would allow users to interact with them
  • Set up a sophisticated server-side architecture that retrieves data from multiple sources to display info on the widgets

Value Delivered

  • PC icon

    Minimalistic UX Design Consistent with the Original OTA style

    The design required the creation of three informational widgets that naturally fit the original OTA style. The flexible flight search widget allows users to immediately find the lowest prices for departing and returning flights and compare the prices for the nearest dates. The flight status widget displays the flight route, provides schedule details, and terminal/gate info. The flight information widget contains general route info for the given airline and allows users to check the on-time rating and see the average delay.
  • Updates

    JavaScript Implementation of Dynamic Widgets

    The front-end engineers applied pure JavaScript to build fully asynchronous widget interfaces. The flexible flight search can be customized by a user if prices for unlisted dates are required. The flight status displays the aircraft location on the map and the status bar allows for estimating the remaining in-flight time. The general info widget is updated once there are any alterations in ratings.
  • connection

    The AWS-based Architecture that Unifies Multiple Data Streams

    The back-end of the product was deployed on Amazon EC2 and used PHP Slim Framework. To retrieve all data displayed on the widgets, the team had to combine multiple data streams. Flight routes and airlines data were stored internally in a MySQL database, which was configured from the Innovato dataset, the IATA-backed data source that contains a broad number of routes, airlines, and flight numbers. The AltexSoft team built a REST API to connect JavaScript-based front-end with the MySQL database. The flight prices were retrieved from a separate OTA’s database. The flight status data and ratings were sourced using the FlightStats API. The team also had to optimize back-end performance via caching techniques to reduce FlightStats API and database loads.

Approach and Technical Info

The full set of services was provided by a dedicated team of three front-end JavaScript engineers, an architect, two PHP back-end specialists, and a UX designer.

The technology stack included: PHP, Slim Framework, JavaScript, AWS EC2, FlightStats API.

The project was completed in 1.5 months.

Services provided within the project framework: Travel Technology Practice.

Wondering how to build
an exclusive software product for your business?

Discuss your project needs with our architects.