
Goals of the deep dive
It’s really just one goal: Help you find out if Fly.io is the right place for you. If you came from our Speedrun or Getting started pages, maybe you want to go beyondhello world and explore the platform so you can feel confident that you’re choosing a provider that can support you now, and scale with you later on as you grow.
Maybe you’re concerned about lock in. You want to use services from other places and even eject entirely and go elsewhere if things don’t work out.
Perhaps it is a simple as you feel it is easier to tune and evolve a working
system than it is to debug why your application doesn’t launch on an unfamiliar
platform.
If you don’t get a good feeling within an hour, you’re out of here. If you do get a good feeling, then stick around and try launching the app that you brought here to launch.
Beyond hello fly
A real-world application has, at a minimum, the following components:
- An HTML form and a database; typically a relational database.
- The ability to handle media files or documents, generally using S3.
- A multi-user and realtime component, where changes made by one person in one location are reflected instantly in the browser of another person.
So what is this deep dive demo app?
The deep dive demo uses industry standard components that you can run on your laptop, a VPS, AWS EC2, Google Compute Engine, or Azure.Web Dictaphone — Fly.io edition
The deep dive demo is based on MDN’s Web Dictaphone. You can play with a live demo hosted on GitHub. The Web Dictaphone app is about as basic of an HTML form as you can get, and it has the added bonus of providing the ability to generate as many media files as you want using only your voice. The basic Web Dictaphone is client side only, requiring a web server that can deploy static assets (HTML, CSS, JS, images), like nginx, Apache HTTPd, or Caddy. Storing the data in databases for our deep dive demo requires a server that can handle HTTP GET, POST, PUT, and DELETE requests. The choice of server varies depending on the language or framework. The demo includes the following components:- A PostgreSQL relational database to store the names of the audio clips
- A Tigris bucket to store the audio files
- Upstash for Redis and WebSockets to handle the connections for the realtime requirement