In the entire fly.io documentation, there are only two mentions of buildpacks: https://fly.io/docs/reference/builders/ https://fly.io/blog/topic/buildpacks/
Fly.io hides behind clever engineering blog posts while pushing tremendous complexity on to the developer. While I appreciate the transparency and clever engineering hacks used in building Fly, the lack of a true managed database with a proper GUI and point in time backup and recovery makes it hard to consider Fly as a true Heroku alternative (the official Fly.io recommendation is to go to Crunchy Data for managed databases).
Our primary benefit over Heroku isn't "the simplest possible DX". Heroku has that nailed! It's running apps close to users, easily scaling them up and out over the globe. I like us a lot (but then I would) for simple apps that will never need global scaling, but nobody at Fly.io is telling you that we've somehow obsoleted Heroku!
I'm confident that we'll get to parity with Heroku on DX; it's a thing we're serious about. But Heroku has had a long, long time to get these details right, and we're working on other things too. Give us a bit. :P
I understand that you believe your competitive advantages stem from the edge server deployments. Sure that may be true for certain serverless and HTML-over-the-wire workloads like Phoenix, but if you actually talk to your customers, a significant number of us want a Heroku replacement, not just fancy docker-at-edge.