6m 38s fastest cold run
Measured from a plain-language app specification to a working public HTTPS URL.
reference platform · active development
I built Flightdeck to give small containerized apps a repeatable path into AWS. An app supplies a Dockerfile and a small YAML manifest; reusable workflows handle validation, security checks, infrastructure, HTTPS routing, and promotion.
Generating an application is often faster than deciding how it should authenticate to AWS, store Terraform state, pass security checks, and move safely from development to production. I moved those decisions into one platform so each app does not need its own delivery design.
Measured from a plain-language app specification to a working public HTTPS URL.
GitHub exchanges repository identity for a scoped per-app role through OIDC. There are no stored AWS keys.
Production receives the exact digest tested in development instead of rebuilding from the release tag.
Golf is a small application I use to exercise Flightdeck's delivery path. Changes merged to main deploy to development. A versioned release promotes the exact image already tested there into production without rebuilding it.
Both services scale to zero overnight to control cost. If a link is unavailable, the fleet status page can start it; startup usually takes about a minute.
Flightdeck creates shared networking, routing, ECR, and GitHub OIDC once. Each app gets its own deployment role, Terraform state path, ECS service, logs, alarms, and DNS route.
These are small HTTP services. ECS gives me scheduling and AWS integration without making cluster administration part of the app contract.
I started with a versioned YAML manifest and reusable workflows. That let me prove the platform boundary before adding another interface to maintain.
Apps share networking and routing to control cost, but each gets scoped identity and state. Releases promote the same tested image digest instead of rebuilding it.
I timed the path from an application specification to a public URL, including repository setup, image build, infrastructure, and deployment.
I deployed several independent apps through the same contract. That exposed reusable-platform problems a single sample app would have missed.
Live deployments exposed missing replacement and cleanup permissions, overly broad OIDC trust, image-retention risk, and scaler error handling. I fixed those in the platform and added narrower controls or tests.
This is a reference platform for small HTTP services, not a general hosting platform. It currently assumes one container, one AWS region, cost-first task counts, and limited recovery automation.