A Returning Client, A More Ambitious Build

After we launched Stay Altitude — Rodney’s ultra-luxury Jamaican retreat — he came back to us with a very different brief. This time the project wasn’t a brochure site for a single property. It was a full custom web application: a multi-role charter aviation marketplace, paired with a real-time operations dashboard, sitting on a live database.

JetsCheck connects three groups that traditionally don’t share infrastructure: aircraft fleet operators with planes available for charter, contracted captains and crew available for assignment, and high-net-worth travellers booking private flights. The platform has to handle all three roles in one product, with role-specific signup, role-specific dashboards, and role-specific permissions. And on top of that public-facing platform, the JetsCheck team needed a bespoke admin dashboard that gave them real-time visibility into every signup, every booking, every contact, and every email going out.

It’s the kind of project that, on most agencies, gets delivered as “a SaaS theme with a custom logo.” We built it from scratch.

What We Built

The Three-Role Marketplace

JetsCheck supports three distinct user roles, each with their own onboarding, dashboard, and feature set:

  • Clients are travellers. They browse the platform, view operator and pilot profiles, see aircraft listings, and submit charter booking requests.
  • Operators are aircraft fleet owners. They list their fleet (each aircraft is its own listing), manage incoming booking requests, and connect with both clients and pilots.
  • Pilots are contracted captains and crew. They maintain public profiles that operators can browse and that clients can view, and they receive contact requests through the platform.

Permissions are scoped per role. Operators can’t see other operators’ booking volumes. Pilots can see their own engagement metrics but not those of their peers. Clients see what they need to make a booking decision and nothing more. The data model is designed around this from the ground up, not as an afterthought.

The Custom Operations Dashboard

This was the centerpiece of the engagement, and it’s the deliverable Rodney spends the most time inside.

The dashboard is purpose-built for JetsCheck — same luxury aesthetic as the public marketplace, dark and warm-gold palette, elegant serif logo lockup, generous breathing room. It opens on a “Live counts from your Firestore collections” homepage that surfaces what the team needs in the order they need it:

Needs Attention banner. Top of the page. Flags new bookings, unseen profile views, and unseen contacts. The team’s entire morning workflow starts here.

Users by Role. Three cards showing live counts of Clients (travellers booking charters), Operators (aircraft fleet owners), and Pilots (contracted captains and crew). Each card is clickable — it drills straight into the Firestore collection it represents.

Insights. A “Signups — last 30 days” stacked bar chart breaks new users by role over time, so the team can see which side of the marketplace is growing and which needs attention. A separate “Engagement — last 14 days” chart tracks profile views and operator contacts.

Sidebar Navigation. Organised by intent rather than by data structure. Operations covers Operators, Pilots, and Bookings. Data Management covers Clients, Aircrafts, and Videos (homepage video content). Activity Logs exposes the platform’s observability surface — Profile Views, Contact Clicks, and Mail Logs each in their own dedicated screen.

Eleven distinct screens, each one designed and built from scratch.

Real-Time, Not Cached

The dashboard reads live from Firestore. When an operator marks an aircraft as available on their phone, the dashboard updates without a refresh. When a client clicks contact on a pilot profile, the activity log shows it within seconds. When a booking comes in, the Needs Attention banner ticks up immediately.

This matters because the team isn’t monitoring a static report — they’re running an operation. Stale data on a dashboard is worse than no data at all.

Dual Theme System

The dashboard ships with three theme options in the header — light, auto/system, and dark. Both modes are designed end to end, not just an inverted palette. Charts have separate colour calibrations so the gold accent reads correctly against both grounds. Typography weights are tuned per mode for readability. The serif headlines hold their character in dark mode without becoming heavy.

Brand-Family Visual System

JetsCheck deliberately shares visual DNA with Stay Altitude — warm gold accents (#B8924B, a sibling to Stay Altitude’s #C4943D), elegant serif headlines, generous spacing, understated luxury. The two brands feel like family without feeling identical, which lets Rodney run a coherent portfolio of premium properties under one design system rather than starting fresh with each new venture.

Technical Details

  • Backend: Firebase / Firestore — real-time NoSQL database with live listeners on every dashboard view
  • Authentication: Firebase Auth with role-based access control (clients / operators / pilots / admin)
  • Architecture: Three-role marketplace + bespoke admin dashboard + activity logging surface
  • Dashboard screens: Dashboard, Activity, Operators, Pilots, Bookings, Clients, Aircrafts, Videos, Profile Views, Contact Clicks, Mail Logs (11 screens, each custom-built)
  • Theme system: Light / auto-system / dark — full dual design, not inverted palette
  • Real-time: Firestore live-data sync — dashboard counts and activity log update without refresh
  • Email surface: Outgoing mail logs captured and surfaced in admin for audit and debugging
  • Notifications: Needs Attention banner aggregates new bookings, unseen profile views, unseen contacts
  • Performance: Firestore indexed queries, paginated collection views, lazy-loaded charts
  • Brand system: Shared design DNA with Stay Altitude — warm gold accents, elegant serif headings, dual theme support

The Outcome

JetsCheck launched as a fully functional three-role aviation marketplace with a custom operations dashboard that the JetsCheck team uses daily. Real users in all three roles — travellers, fleet operators, and contracted pilots — are signed up and active in production, and the dashboard tracks every signup, profile view, and contact click in real time.

The platform is built to scale: adding a new aircraft listing, a new pilot, or a new client doesn’t require a deploy. The dashboard scales with it — every new piece of data flows through the same Firestore collections and surfaces automatically in the existing screens.

For us, the most important outcome is the one we can’t put on a metrics card: Rodney came back. After the Stay Altitude launch he could have hired anyone for the JetsCheck build, and he hired us. That’s the real measure of whether agency work landed.