Fly.io Extensions Program

Fly.io is a global cloud service for running full stack apps close to users. We run on our own hardware in datacenters all over the world.

We have two main goals: to deliver a slick developer experience, and to build the best possible platform for running full stack apps. We’re looking for partners that share this goal, extending Fly.io with services our customers need.

Services such as managed databases, exception handlers, CI runners or log aggregators are great examples. Check out our managed Upstash for Redis to get an idea of what’s possible, and how we integrate services directly into our CLI.

Check out our documentation to see what our platform has to offer. Contact us at extensions@fly.io to discuss your case!

Provider Requirements

As an extension provider, you should give us a way to:

  • Provision resources, user accounts and organizations
  • Allow single sign-on login into your UI
  • Fetch billing details on a daily basis so customers can stay up-to-date with metered costs

Our Extensions API documentation outlines our API and SSO requirements in detail.

Account provisioning

Where possible, our organizations should map to your organizations, and our user accounts to yours. In both cases, we provide obfuscated addresses that route to individual customers or to organization administrators.

Resource provisioning

You should give us an API endpoint to provision extensions synchronously. This request should respond with unique resource ID, connection strings, tokens and other relevant information.

Single sign on

Customers should be able to login to your UI using a single command like flyctl ext logjam dashboard`. This may be done by integrating with our OAuth authentication flow.

Once logged in, customers should have access to your standard platform features. There may be details to iron out here, such as which privileges to assign to Fly.io-provisioned users.

Billing

We want you to be free to model your pricing as you see fit. But, for the best customer experience, Fly.io should ultimately be the one that charges a customer. Also, Pay-as-you-go pricing fits our model best, since it’s how we bill.

So you should run your own billing logic, and offer an API to provide up-to-date, per-account billing details.

Contact us at extensions@fly.io to discuss billing options.

Deploying latency sensitive services on the Fly.io platform

To fulfil our promise of a performant application in any Fly.io region, latency sensitive services — like Redis or MySQL — should be deployed on Fly.io. You’ll also benefit from volume discounts on cloud resources and a growing number of global points of presence.

Your Fly.io network is essentially a global, encrypted LAN, with DNS service discovery and load balancing built-in. This greatly simplifies configuration of services that cluster and gossip. Customers access your service via a single private IP address that automatically routes traffic to the nearest provider VM.

We also offer cost-cutting features such as automatic VM stop/start based on incoming request volume. Contact us at extensions@fly.io to learn more - we’re happy to help you get started!