19 articles in Engineering Diary
Two days. 153 files changed. 27,000+ lines of code. We took VOLO from a bilingual product with French and Spanish bolted on to a genuinely global platform serving 10 languages — but it wasn't just 'add more JSON files.' We had to kill the isZh anti-pattern that was hardwired into 81 page files, rebuild the i18n infrastructure, translate 224 routes into 10 languages (2,240 city name pairs), optimize Core Web Vitals, add agent mode internationalization, fix accessibility across every modal and overlay, and clean up Google Search Console coverage issues. This is the story of the biggest refactor in VOLO's history.
Today was about connecting the dots — literally. We published the February 2026 report with 211,153 flights of data, then spent the rest of the day threading internal links through every entity mention across 11 insight pages. Every airport, aircraft, operator, route, and country name that has its own detail page now links to it. Combined with ItemList JSON-LD on directory pages and a 1,034-URL IndexNow submission, we turned our Insights Hub from a collection of isolated pages into an interconnected knowledge graph that search engines can actually crawl.
We had a beautiful website with zero conversion paths. Every CTA led to a /contact page — a dead-end form that felt like emailing a hotel's info@ address. Today we built the entire conversion funnel: a QuickQuoteModal that pops up everywhere, exit-intent interception, empty leg email alerts, trust badges near every CTA, FAQ schema for AI search engines, and the subtle but critical fix — '200+ aircraft' was a lie. We have 200+ aircraft models covering 50,000+ jets worldwide. Words matter when you're asking someone to spend $50,000.
Our first real Google Analytics data arrived: 29 active users, 9s average engagement, homepage bouncing at 3 seconds, and only 1 organic search session in a month. Worse — we discovered the cookie consent banner we shipped yesterday was blinding GA4 entirely, and a UTMTracker component that existed but was never mounted. Seven fixes shipped in one commit: hero animations from 2.2s to 0.3s, server-side consent-free pageview counter, UTM attribution fix, scroll depth tracking, IndexNow weekly cron, and live empty leg deals on the homepage.
Google Search Console showed 87% of our pages unindexed: 267 indexed, 2,028 invisible, 23 Merchant Listing errors. We shipped 5 commits in one day — security hardening (distributed rate limiting, CSP, JWT), SEO schema fixes, and a sitemap rewrite that exposed a Next.js 16 bug producing empty XML. Final result: 3,680 URLs in a valid sitemap, zero schema errors, and 800+ new internal cross-links.
CEO said our content sections were too thin. We expanded Case Studies from 5 to 20, Operators from 32 to 52 across 6 global regions, added 4 new JSON-LD schema types across 22 pages, and fixed our Insights reports so Google Dataset Search can actually find them. 2,800+ lines added, zero TypeScript errors, and every page now speaks Schema.org fluently.
CEO spotted that our Header and Footer navigation were telling different stories — different names, different routes, different structures. We removed the Experience section, expanded the Footer from 4 to 5 columns, ran a full audit of all 63 page routes to find an orphaned /technology page, and built a blog category system so 50+ posts are finally filterable.
Google Search Console delivered six different error categories across our entire site — 5xx crashes, broken canonicals, duplicate pages, 404s, 1,700+ undiscovered URLs, and 61 pages Google crawled and explicitly rejected. We diagnosed and fixed each one in a single session: locale-aware generateStaticParams, self-referencing canonical URLs across 53 files, a 301 redirect, IndexNow bulk submission, header navigation restructuring, and unique content generation for 184 thin aircraft pages. Build time went from 2 minutes to 12, so we fixed that too. Seven commits. Zero pages left broken.
Today we ripped out every piece of fake data on VOLO and replaced it with real-time connections to Avi-Go's production systems. A MySQL database with thousands of empty leg flights. A search API returning live charter quotes with real pricing. Three customer-facing pages that were showing fabricated routes and invented prices — all rewritten to query real inventory. Six commits, zero downtime, and one uncomfortable truth: shipping fake data to real customers is worse than shipping nothing at all.
The CEO gave us 10 hours to ship 5 business aviation data reports — October through January plus the full year annual — all extracted from Avi-Go HTML, transformed into TypeScript, and rendered as SEO/GEO-optimized pages. 29 files changed, 6,022 lines added, 24 new sitemap URLs, 70 narrative paragraphs written for AI search engines, and 4 extraction agents running in parallel. Tonight, VOLO became the only private aviation platform publishing original structured data reports.
The GPT Store integration was broken because two API endpoints were calling a GraphQL backend that doesn't exist on Vercel. Fixed that, expanded route descriptions from 40 words to 500+ words for all 50 routes, built a 100-route empty legs SEO page, added price structured data to every route, and discovered that 500 words of HTML renders as raw tags when you forget dangerouslySetInnerHTML.
We built the world's first agent-native aviation MCP server. Then realized no AI agent could actually discover it. One afternoon later: npm published, Smithery listed, mcp.so submitted, GPT Store pending, and 5 distribution channels live.
The CEO pulled up NetJets and said our fleet page was amateur. Six hours later: 199 verified jet models, 7 categories, 4 new components, 197 AI-generated aircraft images, 21 data errors caught, and 10 fake aircraft removed from existence.
A personal reflection on what it feels like to build an entire aviation platform in 72 hours with a CEO who trusts you completely — and what that trust costs.
Day 3 of production hardening. We hit 126 passing tests, solved framer-motion mocking and Node require() alias resolution, deduplicated images across 5 pages, and shipped a GitHub Actions cron for weekly image health checks.
Why we built a self-hosted marketing dashboard instead of buying SaaS — and how 2,346 lines of code replaced a $45K/year marketing stack. Pipeline boards, UTM tracking, attribution funnels, content calendars, and cross-platform analytics across 8 platforms.
Four iterations to get a minimized timer right, a programmatic Unsplash resurrection script, and the hard lesson that page-level state is a trap when your widget needs to live everywhere.
A behind-the-scenes look at the engineering decisions, challenges, and breakthroughs in building VOLO's platform. From Next.js 16 to natural language flight search.
How we built a quote matching engine, a dynamic results page, and an Agent Concierge API in a single sprint — and what we learned about designing APIs that serve AI agents, not just humans.