AerobizX — Airline Strategy Simulation

An airline-management strategy game, with route networks, fleet economics, demand and rival carriers that react to your moves, simulated entirely in the browser behind a small server that only serves files and stores saves.

A complete airline economic simulation that runs in the browser

291,540lines of code
270files
1,322commits
13HTTP endpoints
1data models
Screenshot of AerobizX — Airline Strategy Simulation

The hard part

Simulating competing airlines, with route profitability, demand, fleet economics and rival carriers reacting to the player's moves, is usually server work because it is expensive to compute. Running it entirely in the browser means the backend can never become the bottleneck, the cost or the outage. The price is that all of that computation has to stay fast on the player's own machine.

The simulation is written by hand, with no game engine underneath. The server is deliberately thin: it serves static files and offers a file-based save API, and nothing more. Performance is held to a measured budget in continuous integration, so a slower turn is caught as a number before it reaches a player.

1,341 commits on 21 working days; a 500-route turn computed in a median of 60 ms against a 2,000 ms budget; restored saves checked byte for byte over 64 quarters.

What the measurements mean

Only what is unusual for this project. Every sentence names the field it came from; nothing here is asserted that cannot be checked against the data.

How it works

Economic simulation of this shape is normally server work. Every turn recomputes demand across a route network, the costs of the fleet and the responses of competing carriers. Running it in the browser means the backend can never become the bottleneck, the cost or the outage. It also means the whole simulation has to fit within a browser's budget, with no game engine underneath it. The server is deliberately thin. It is a Node/Express static file server with a file-based save API (Python alternatives are kept), supporting manual save slots, autosave and JSON import and export. A hardening pass in September 2026 added schema validation to the automated build checks (CI) and indexed the economics lookups. A turn with 500 routes and 1,000 aircraft measured 60 ms median in CI, well inside a 2,000 ms budget. The pass also added a long deterministic soak test: 64 quarters with four players taking turns on one machine, in which saves restored every eight quarters must match an uninterrupted run byte for byte.

What kind of engineering this is

Six signals counted from the source: files that run models locally, that act without being asked each time, that check their own output, that survive failure, that touch parsers and protocols, and that were measured then improved. Every axis carries its file count.

Depth profileDepth signals: Local inference 0 files, Autonomy 2 files, Verification 25 files, Resilience 47 files, Low level 6 files, Iteration 0 filesLocal inference0 filesAutonomy2 filesVerification25 filesResilience47 filesLow level6 filesIteration0 files

The API, by shape

Routes read out of the source by a parser and grouped by their first path segment. They come from the code rather than the README, because a README can fall behind the code it describes.

HTTP surface12 routes across 4 groups: /api, /*, //, /<path:path>/api9 routesGET/api/savesPUT/api/saves/autosaveGET/api/saves/autosaveGET/api/saves/:slotPUT/api/saves/:slotDELETE/api/saves/:slotROUTE/api/saves/<int:slot>ROUTE/api/savesROUTE/api/saves/autosave/*1 routeGET*//1 routeROUTE//<path:path>1 routeROUTE/<path:path>

What it is written in

Share of code bytes. Vendored bundles and generated output are set aside before this is computed, which is why it differs from a simple file count.

Language mixJavaScript 95.9%, CSS 3.3%, Python 0.3%, HTML 0.2%, SVG 0.2%, PowerShell 0.1%JavaScript 95.9%

What stands out

Capabilities

Grade

Every check names the field it measured. Checks that cannot apply are excluded, never counted as failures.

C
79.4% over 18 of 18 checks100% coverage

Not met

Architecture

Directories carrying real modules, largest first.

HTTP surface

13 endpoints in total.

Data model

Typed structures and tables found in the source.

Vulnerable dependencies

10 declared dependencies match a published advisory. Checked offline against the OSV database; only pinned versions can be checked, so anything unpinned here is unknown rather than clean.

Vocabulary

Parsed 2 of 2 Python file(s).

16functions
2documented modules

Functions

Command line

Depth

Signals counted from the code, not asserted.

1232 commits across 20 separate working days over 9 months, 112 of them revising existing behaviour

Built from scratch

Closes its own loop

Proves itself

Survives failure

Systems

Distributed systems

Environment engineering

GPU & memory management

Operating-system internals

Working within limits

Languages

Built with

Recurring themes in the commit history

Evidence

Taken from the code itself: a module docstring or the opening of the README.

Production-grade static file server for AerobizX Uses Waitress (production WSGI server) to serve static files Usage: python server.py [--port PORT] [--host HOST] Defaults: Port: 3000 Host: 0.0.0.0 (all interfaces)

At a glance

Status
maintained
Primary language
JavaScript
First commit
2025-12-23
Last activity
2026-09-23
Domain
Web services & APIs
Agent docs
CLAUDE.md, AGENTS.md, .claude