
Web app · Multi-tenant
AviateOps
Scheduling, aircraft, and pilot records for flight schools.
Our product, in preview with Aviator Training Palm Beach
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.
Visit aviateops.net (opens in new tab)
