Work

AviateOps

Scheduling, aircraft, and pilot records for flight schools.

Our product, in preview with Aviator Training Palm Beach

Visit aviateops.net (opens in new tab)

Flight schools still run on whiteboards and spreadsheets. AviateOps handles scheduling, aircraft readiness, pilot documents, and currency in one system, with every school kept fully separate. We built it, and it is in preview with Aviator Training Palm Beach.

What it does

Flight schools run on whiteboards and spreadsheets. AviateOps handles scheduling and dispatch, aircraft readiness, pilot documents, currency and billing in one system, with every school kept separate from every other.

How it works

Tenant isolation is enforced by Postgres itself, not by application code. Every request opens a transaction, sets the current tenant, and runs as a restricted role, so a query cannot reach another school’s rows even if the code asks it to. A weekly job mirrors the FAA aircraft registry, about 313,000 records.

The hard parts

The currency engine. Federal rules about who may fly what, and when, become an eight-state machine covering the six-month instrument requirement, the check ride that resets it, and the two-year flight review, and bookings are gated on the result.

Built with

Next.js 16, Neon Postgres with Drizzle, Better Auth, Vercel Blob for private documents, and Resend. 57,000 lines, 36 tables, 64 pages.

Next: TownCore

A newsroom system for towns that lost their paper.