FlyControl
Your Fly.io apps, in your pocket.
FlyControl shows at a glance which of your Fly.io apps and Machines are running, streams their logs and charts CPU, memory, network and disk. Start, stop, restart or destroy a machine from your phone. It signs in with a Fly.io token that stays in the device's encrypted storage and is sent only to Fly.io. Not affiliated with Fly.io.
What it does
Simple premise. Real value.
Apps and machines
Every app with its status and regions, and each machine with filters and search.
Live logs
Logs streamed as they happen, with a level filter and one tap to copy a line.
Metrics
CPU, memory, network and disk charts from the last hour to the last 30 days.
Token stays on the phone
Several accounts and organizations, stored in the Keystore or Keychain and sent to the Fly.io API and nowhere else.
The story behind it
The Problem
Checking whether a Fly.io machine was up, or reading its logs, meant opening a laptop. The web dashboard is not made for a phone.
What I Built
A Flutter client for Android and iOS that talks directly to the Machines API, the GraphQL API and the Prometheus metrics endpoint, with no server and no account of its own.
What I Learned
Most of the work was in the API, not the UI: undocumented endpoints, rate limits and refresh intervals chosen so the app stays fresh without hammering Fly.io.
What the app collects, and the rules for its paid features: privacy policy and terms of use.