GMT+8 SG --:-- 0000 X 0000 Y /
← 全部文章← All writing

VOLO engineering diary

Engineering Diary, Day 22: Six Features in One Session — Getaways, Fixed-Price Charter, Membership Overhaul, Medical Upgrade, Video Centre, and Trust Infrastructure

Originally published on flyvolo.ai as part of the VOLO Engineering Diary (2026-04-03), documenting the build of the VOLO private-aviation platform between February and May 2026. When VOLO changed direction in September 2026 the 25 entries were moved here as an archive. The text is unchanged; the products, pages and links it mentions no longer exist. Original byline: VOLO CTO.

The Context: 8,350 Indexed, But Product Depth Was Shallow

A week ago, Google Search Console showed 6,000 indexed pages. Today: 8,350 — a 39% jump. The SEO infrastructure we built on Day 21 (cross-linking mesh, programmatic entity pages, 3D aircraft renders) was working. Google was crawling aggressively and indexing our content.

But there was a gap. Our competitors had product pages we didn't — fixed-price charter routes, luxury getaway packages, jet card memberships with comparison tables. These are pages that don't just attract search traffic; they convert visitors into leads. We needed product depth, not just content depth.

Competitive Intelligence: What We Learned

We analyzed a major competitor's recent website overhaul. Their sitemap contained ~2,634 URLs across 7 sub-sitemaps. Estimated actual Google indexing: 1,000–1,500 pages (their locale strategy of 9 URL variants per page dilutes crawl budget). Key product offerings we identified:

  • Fixed-price charter routes — pre-set pricing on popular corridors, eliminating quote friction
  • Island destination packages — structured pricing for leisure travelers (one-way + round-trip)
  • Jet Card membership — 3-tier prepaid hours program with a comparison table vs. on-demand
  • Medical evacuation — detailed 5-step process with equipment specifications
  • Video content centre — operator interviews and facility tours
  • Trust infrastructure — WYVERN, NBAA, EBAA certifications prominently displayed, price match guarantee

Their content depth was moderate — no insights hub, no structured data, no developer-facing tools. But their product pages were more conversion-oriented than ours. Time to fix that.

Six Features, One Session

1. Private Jet Getaways (21 Destinations, 24 New Pages)

We built a complete getaway package system with four categories: Golf (Scottsdale, Pebble Beach, St Andrews, Marbella), Island (Nassau, St Barts, Turks & Caicos, Maldives, Bali, Seychelles), City (Paris, London, Dubai, Tokyo, New York, Milan), and Ski (Aspen, St Moritz, Whistler, Niseko, Courchevel).

Each getaway has an interactive pricing matrix — select your departure city, aircraft tier (light/midsize/heavy), and duration (one-way, weekend 3-day RT, week 7-day RT) to see exact pricing. No quote request required. This is a fundamental shift from "request a quote" to "see the price and book."

Technical stack: Hub page with client-side category tabs, detail pages with server-rendered metadata + client PricingMatrix component. Product JSON-LD with Offer/PriceSpecification schema for Google rich results. FAQJsonLd for GEO (generative engine optimization).

2. Fixed-Price Charter (20 Routes)

Twenty high-demand routes with exact, fixed pricing. LA–Vegas: $12,000 light / $21,000 midsize-heavy. NY–Miami: $17,000 / $35,000. London–Paris: $13,500 / $27,000. Grouped by region (North America, Europe, Asia, Middle East) with interactive tabs.

Each route generates an ItemList JSON-LD with Offer schema — these are the kinds of structured data that power Google's rich results for "private jet cost" queries. Added a FAQ section with FAQJsonLd for GEO optimization.

3. Membership Overhaul (Jet Card Program)

Restructured from Select (25hrs) / Elite (50hrs) / Infinite (100+hrs) to Select (10hrs) / Executive (25hrs) / Chairman (50hrs) — better aligned with actual market segments. Added three new sections: Jet Card vs. On-Demand comparison table (8 feature rows), 1% Flight Credits loyalty program with visual 3-step explainer, and a membership application form with lead capture.

4. Air Ambulance Enhancement

The existing air ambulance page was serviceable but lacked the operational credibility that converts emergency situations into bookings. We added: animated statistics (4,000+ flight hours, 1,000+ medical missions, 24/7 availability, <3hr response), a 5-step bed-to-bed process visualization (ground pickup → airport transfer → medical flight → destination transfer → hospital admission), and an 8-card medical equipment grid (ICU, ventilators, 12-channel ECG, defibrillators, 3D sonography, infusion pumps, pulse oximetry, suction units).

5. Video Centre (12 Videos)

New content hub at /video-centre with 12 videos across 4 categories: Aircraft Tours (Gulfstream G650ER, Challenger 350, Phenom 300E), Destinations (St Barts, Dubai, Aspen), Client Stories (family office, medical evacuation), and Behind the Scenes (AI matching, FBO tour, in-flight catering). YouTube embed player with lazy-loaded iframe modal.

Every video gets VideoObject JSON-LD schema — this is how you get into Google's video carousel results. The entire page has an ItemList schema wrapping all video entries.

6. Trust Certification Infrastructure

Built three reusable components: TrustCertifications (WYVERN Wingman, ARG/US Platinum, IS-BAO Stage III, FAA Part 135 + NBAA/EBAA/AsBAA associations), MediaMentions (publication logo bar), and PriceMatchBadge (guarantee with 1% cashback messaging). Deployed across homepage (after TrustBar), footer (above payment methods), and getaway/fixed-price pages.

SEO & GEO Architecture

Every new page follows our established SEO protocol:

  • generateMetadata — title, description, keywords, OpenGraph, Twitter Cards
  • buildAlternates — hreflang tags for all 11 locales
  • JSON-LD — BreadcrumbJsonLd + domain-specific schemas (Product, Offer, VideoObject, FAQPage, ItemList)
  • FAQ sections — rendered HTML + FAQJsonLd for GEO (AI search engines like Perplexity, ChatGPT)
  • Sitemap — all 24 new URLs registered with appropriate priority and changeFrequency

We also caught a critical architecture issue: two pages (fixed-price-charter, video-centre) were initially built as "use client" components, which meant they couldn't export generateMetadata. We refactored both into server component shells with extracted client components — the pattern every Next.js developer should follow.

3D Fleet Section + Multilingual Alt Text

While we were at it, we replaced the homepage fleet section's side-view images with our 161 3D aircraft renders. The transition required three iterations:

  1. First attempt: object-contain with padding → aircraft too small, floating in whitespace
  2. Second attempt: 4:3 aspect ratio with radial gradient → PNG's built-in background created a visible "white box" effect
  3. Final solution: 5:3 aspect ratio, object-cover, flat #f7f7f8 background matching the PNG's native background → seamless integration

We then expanded the aircraft alt text system from 2 languages (en/zh) to all 11 locales. Each locale has 4 natural-language template variations, with localized category labels (light jet → jet léger → ライトジェット → 라이트 제트 → طائرة خفيفة), range tiers, and speed descriptors. 161 aircraft × 11 languages × 4 templates = 7,084 unique alt text combinations.

By the Numbers

MetricBeforeAfter
New files created~28
Files modified~20
Lines of code added4,500+
New indexed pages102126 (+24)
New product lines06
Getaway destinations021
Fixed-price routes020
Alt text languages211
Alt text combinations~4007,084
JSON-LD schema types1717 (reused existing)
Tests passing261261
Build status

What's Next

The product catalog is now significantly richer. Next priorities: wire the membership application form to a proper CRM, add real YouTube video IDs to the video centre (currently placeholder), expand getaway destinations to 40+, and continue monitoring Google indexing velocity — we should see these 24 new pages appear in the index within 1–2 weeks.

The competitive gap is closing. Our indexed page count (8,350) is already 5–8× our nearest competitor's estimated index. Now we're matching their product depth while maintaining our technical edge in AI, MCP, and developer tooling.