← Desde EZElet's talk

03 · UNDER THE HOOD

Desde EZE

Desde EZE is a content machine that happens to look like a flight-deals site. This is how a deal travels from a price search to a landing page, an Instagram story, a reel and a newsletter without me touching it.

1. Finding the deal

My own search tools run every day before sunrise over 60+ destinations, from Buenos Aires and six other Argentine cities. Nothing is published just because it is cheap: every result goes through the filters I would apply myself — schedules, layovers, hours of travel and whether the price is really below the usual for that route. Prices include carry-on, and very long trips are rebuilt with two nights in an intermediate city.

2. Google Drive as the CMS

Saving a deal writes a Markdown file with front matter (route, dates, price per person, airline, categories) to a shared Drive folder. The Next.js 16 landing reads that folder through the Drive API with a read-only service account and revalidates with ISR every five minutes, or instantly through a secured revalidate endpoint.

There is no database for content and no admin panel to maintain. Unpublishing a deal means moving a file. Deals are current for a few days after being found, then move to a greyed-out “Estas ya volaron” section for 45 days.

  • →Sections and categories are Markdown files too, so the catalog can be reorganised from Drive.
  • →Automatic rows: top deals of the week, one row per region, and “more deals” for what is left over.
  • →Per-airport landing pages (/desde/COR) with a search box that understands aliases like “Ezeiza” or “Aeroparque”.

3. Instagram on autopilot

Scheduled GitHub Actions call protected endpoints on the site, which publish through the official Instagram API. The access token lasts 60 days, so the site renews it every week and stores the new one in a private sheet; it never expires.

  • →Ten stories a day, one every ninety minutes from 08:00 to 21:30 Argentina time, plus three feed posts.
  • →A daily reel at 19:00 for the best deal of the day, but only when it beats the usual price by 30% or more. On days with nothing worth sharing, nothing is posted.
  • →Evergreen content (lists like “when is the best time to travel to Europe?”) on Mondays, Wednesdays and Fridays, written ahead into Drive.
  • →A test mode that emails the video instead of publishing, and a Sunday email with the week's content to review before it goes out.

4. Programmatic video with Remotion

Reels are React components. A GitHub Action fetches the deal data, renders an MP4 with Remotion, retries at lower quality until the file is under 4 MB, uploads it to Vercel Blob and publishes it. The same deal data that feeds the landing feeds the video, so design and copy stay consistent across channels.

5. Measurement and consent

GA4 receives custom events for each step of the funnel, and campaign links carry UTM parameters so I can tell a story from a post from the newsletter.

  • →view_offer, click_flight, click_hotel, generate_lead, plus events for airport selection.
  • →Consent Mode: in Argentina GA4 starts active with an accept/reject notice; in the EU, UK and Switzerland nothing loads until the visitor accepts. The visitor's country comes from a Vercel header and the choice is stored for six months.
  • →A privacy page aligned with Argentina's data protection law 25.326, and a clear note wherever there are affiliate links.

6. Newsletter and revenue

Sign-ups use double opt-in through Brevo, with every consent logged in a Google Sheet (date, email, source, consent text and version). An admin screen builds a newsletter from the current deals and creates a draft in Brevo to review and send. Outbound flight and hotel links go through Travelpayouts, so affiliate commissions can keep the site free for readers.

Why it matters

This is the working proof of the Automatic Content service I sell through Skala Ecommerce: the same ideas — a catalog as the source of truth, triggers, scheduled publishing and measurable links — applied to online stores.