Platform & Offline Architecture
Every screen in the Aviation client, what genuinely works offline from the on-device data pack, and the Go, Next.js and PostgreSQL architecture behind it.
The module reference.
Enumerated from the shipping web client rather than from a feature list. Grouping follows the product’s own navigation.
Roster & duty
- Roster — Your published roster in month, week, list and duty views — imported from a calendar feed, a PDF, a screenshot or the airline system directly.
- Timeline — The same duties on a continuous time axis, with rest, duty and sector boundaries where they actually fall.
- Timeline map — The route flown over the period, plotted — useful for the “where have I actually been” questions payroll asks.
- Calendar — Duties, holidays, personal events, tasks and reminders in one calendar, exportable to the phone.
- Summary — Duty hours, sectors, nights away and allowances totalled for the period.
- Changes & pending — Roster change detection — what moved, what was added, what was taken away, and what still needs your acknowledgement.
Per Diem & pay
- Per Diem — The allowance dashboard: what this period earned, by trip and by type, with every figure traceable to its rule.
- Calculations — A stored calculation with its full trace — segmentation, time zones, deductions, rates and FX — kept so it can be reproduced later.
- Rules — The rule library for your airline and contract, versioned, so historical trips recompute correctly.
- Simulator — Try a roster or a rule change and see the amount it would produce before it matters.
- Per Diem trips — Trips as the engine segmented them, which is not always how the roster displays them.
- Payroll — Your payslips, parsed and lined up against what the roster earned.
- Discrepancies — Allowances that are missing, incorrect, duplicated or underpaid — found by comparison, not by eye.
- Claims — The claim builder: the calculation, the supporting evidence, the policy reference and a PDF you can actually send.
Trips & flights
- Trips — Complete trip management — flights, sectors, gates, aircraft, crew and hotels for the whole pairing.
- Journey — The trip as a journey view: what happens next, where, and in which local time.
- Airports — Airport information for where you are going, available offline.
- Connections — How the sectors connect, and what a delay does to the rest of the pairing.
- World — Destinations, time zones and the map of where the roster takes you.
Layover
- Places — The destination brief — what is near the hotel, what is open, and what is worth the walk.
- Recommendations — Suggestions for the layover you actually have, given how long it is and what time it starts.
- Gallery & albums — Photos from the trip, filed against the trip they belong to.
- Layover settings — Pickup countdown, wake-up protection and alarms that survive a time-zone change and a flat connection.
Documents & expenses
- Documents — Passports, visas, crew IDs, licences, certificates and manuals, with expiry reminders — readable offline.
- Expense — Receipt capture with OCR, currency conversion, policy validation, submission and approval tracking.
Crew & comms
- Crew — Who is on the pairing, and the directory behind it.
- Chat — Crew communication, including join-by-code for a trip. Requires a connection — messages queue and send when one returns.
- Feed — What is happening across the crew network you have opted into.
- Alerts — Roster changes, disruption, document expiry and pickup — the things that must reach you.
- Invite — Bring the rest of the crew onto the trip.
Your app
- Dashboard — What is next and what needs you — the duty ahead, the claim owed, the document about to expire.
- Search — One search across roster, trips, documents, calculations and places.
- Profile & airlines — Your details, and the airline and contract that decide which rules apply to you.
- Privacy — What is shared with the crew network and what is not, set per surface.
- Storage & data — What is held on the device, what is synced, and the controls to export or remove it.
- Security — Sign-in, device security and the authenticator.
- Offline — Sync status, the offline data pack, and what is currently available with no connection.
- Help & tours — In-app guidance for the screens that earn it, rather than a manual nobody opens.
What actually works with no connection.
“Offline support” usually means a cache that expires. Here it means an on-device data pack that is the source of truth while you are disconnected, with sync status shown honestly and conflicts resolved on reconnection rather than silently overwritten.
| Roster & duties | The published roster, duty details, sectors and report times — the whole thing, not a window around today. |
|---|---|
| Per Diem | Rules, rates and the calculation engine, so an allowance can be computed and explained in the air. |
| Documents | The wallet — passports, visas, crew IDs, certificates and manuals — readable with no signal. |
| Layover | Pickup countdown, alarms, offline maps and the destination brief for where you actually are. |
| Expenses | Capture a receipt, run OCR and queue it. It submits itself when a connection returns. |
| Checklists | Pre-flight, layover and return checklists, with state that survives a cold start. |
Crew chat, the network feed and live flight updates are online features by nature. Messages and expenses composed offline queue on the device and send when a connection returns; they are never silently dropped.
Platform & architecture.
| Clients | Native iOS and Android, iPadOS, and a responsive web app |
|---|---|
| Web | Next.js 14 App Router · TypeScript · Tailwind |
| API | Go 1.22 · chi · pgx, serving a versioned REST API, with migrations applied on boot |
| Worker | A scheduled background worker for imports, reconciliation and notifications |
| Financial core | A dedicated exact-integer money package and a deterministic, versioned allowance engine |
| Data | PostgreSQL, with an on-device store that is the source of truth while offline |
| Identity | Argon2id sessions, TOTP authenticator, and SSO via SAML / OIDC with SCIM provisioning on Corp |
| Imports | Calendar feeds, PDF rosters, screenshots via OCR, and direct airline-system integration |
| Deployment | A single all-in-one container image — nginx, API, worker and database — behind the platform edge |
| Internationalisation | A managed phrase catalogue with translation tooling in the build |
The offline edition has nothing to leak.
A crew member using the free offline edition has no account at all. There is no profile on a server, no roster in a data centre and no sync — the roster and documents stay on the phone. On the paid and Corp editions, what is shared with the crew network is set per surface, and the storage screen shows what is held, what is synced, and how to export or remove it.
Corp deployments add regional data residency and delegated airline administration inside the product. Airline administrators administer their own tenant and their own crew — nothing else.