An airline’s marketing team publishes without a developer

Every banner, route page and campaign on the airline’s site used to go through a developer. We rebuilt the platform so the marketing team publishes directly, and so the parts that sell tickets stay out of reach.

Client
Cyprus Airways · Delivered with ThinkCRM
Sector
Aviation
Kind of work
WebOps

The situation

The public site for Cyprus Airways: route and destination pages, fares, live flight status and the way into booking, in English, Greek and Russian. People who are not developers update it every day. We delivered it with ThinkCRM.

What made it hard

Editorial freedom and a ticket-selling site pull in opposite directions. Give editors real page-building power and they can break the booking path. Lock it down and every banner is a developer ticket again.

What we did

  1. Split the platform in two. A trusted side holds the CMS and the database. The public side holds no database and no credentials, and receives content over HTTP only.
  2. Built one library of page blocks that feeds both the editor preview and the live site, so what an editor sees is exactly what publishes.
  3. Let staff sign in with the accounts they already have, through single-use tokens from the airline’s CRM. Before connecting it, we hardened that CRM’s login.
  4. Set up languages for growth, with machine translation behind an allow-list that fails closed, so nothing unapproved is sent out for translation.
  5. Put fares, schedules and flight status behind validation and their own failure path, so an outage upstream affects one section, not the page.
  6. Load-tested the site before launch against a two-second target, and it held with no errors.

Before and after

BeforeAfter
Copy changes needed a developerEditors publish directly
Public site next to the databasePublic side holds no data or credentials
A second set of staff loginsOne sign-in, from the airline’s CRM
Languages maintained by handNew languages ready to switch on

What we would do differently

We now treat the time from “publish” to “visible” as a performance target from day one, next to page speed. Editors judge a CMS by how fast their change appears, and that deserves the same attention as the visitor’s load time.

Built with

Payload · Next.js · Puck · PostgreSQL · Redis · TypeScript

Ready to build something great?

Tell us what’s breaking, or what you need built. You talk to the engineer who does the work.