As bogordesain alluded to, Machines are Fly Apps v2. So, treat them as such.
Since Machines are low-level, there’s incredible amount of control in the hands of developers: For example, if you wanted to, you could spin up a different docker image with every machine in a single Fly app, but such a makeup would get very tricky to reason about pretty fast. Homogenous apps make for a nice namespace boundary, if you will.
You could build a Fly-like service atop Fly Machines, if you wanted (but that’s not what most people running Fly apps want).
Read also: