Case Study — Design Engineering

Zenith Air

From zero to a live luxury charter platform — solo.

Brand · Design · Engineering
React · GitHub · Vercel
Live
View Prototype →
Zenith Air jet illustration
7Booking steps
8React components
0Figma files
SoloBrand to build

Private jet charter is stuck in the past. Most bookings happen over the phone. The few digital options feel like filing a form, not booking a 0k experience.

Everything. Brand naming, visual identity, component design, React build, deployment. No team. No Figma handoff. Just a vision and a willingness to figure it out.

Skipped mockups entirely. Built a brand foundation first — name, palette, typography — then went straight to React. The browser was my canvas.

A live, clickable luxury charter platform. 7-step booking flow with shared component state. And a new mental model for how I work as a designer.

High-net-worth travelers don’t buy a seat. They buy certainty.

For clients spending 0,000+ on a single flight, the experience should match. It doesn’t. Existing platforms feel transactional — built for efficiency, not for the feeling. No one was delivering that digitally. Zenith Air is my attempt to close that gap.


“I’d never written a React component before this project. That felt like a reason to start, not a reason to wait.”

Three decisions that shaped everything.

01

Brand before code

Warm off-white, deep charcoal, champagne gold — used once. Cormorant Garamond for headlines. The goal was old money, not new.

02

Motion = restraint

Everything drifts in slowly. Nothing bounces. Only the progress rail and content card animate. The header stays fixed. Restraint is luxury.

03

Components talk

Pick Light Jet → passenger cap drops to 7. Choose Round Trip → calendar shifts to range mode. State flows through the BookingShell.


No Figma. No mockups. Straight to React.

I skipped Figma entirely and built directly in code. That’s uncomfortable for a UX designer. But I’d seen enough handoff gaps to know that designing in one medium and building in another always costs something — fidelity, intent, time.


The BookingShell came first — the master container everything lives inside. Getting the wordmark, progress rail, and navigation right before touching a single form field forced me to think about the whole experience first.

Champagne illustration

The line between designer and engineer is thinner than the industry pretends.

A

As a UX designer I mapped arrows between screens to show relationships. Now I build those arrows in code. The mental model is the same. The medium is different.

B

Constraints are generative. Building directly in React meant every design decision had to be buildable. No “we’ll figure that out in dev.” That accountability made me more precise.

C

Knowing when to stop pushing a bad solution is a skill. The jet silhouettes failed three times. I found better SVGs and moved on. That’s also design.

D

Shipping something real is more valuable than perfecting something that never launches. Zenith Air has rough edges. But it’s live, it’s clickable, and it taught me more than months of mockups.


Phase 1 is live. Three more phases planned.

Phase 1 ✓

Client Booking Experience

Full charter flow — route, aircraft, catering, ground transport, confirmation. Live now.

Phase 2

Client Deepening

Saved profiles, preferred aircraft, booking history, real-time availability.

Phase 3

Operations Layer

Backend integration, data persistence, ops dashboard for the coordination team.

Phase 4

Full Ecosystem

Flight crew portal, broker integrations, analytics and reporting.