[tissue](/) · [comparisons](/vs/) · tissue vs fly.io

# Tissue vs Fly.io

Fly gives you machines. Tissue gives you no machines at all. The bill is the clearest place to see the difference.

Fly is the better answer whenever the answer is a container: your own runtime, a persistent volume, a process that stays up, private networking between machines, and regions you choose yourself.

What brings people here is the arithmetic on something small. A Fly machine is billed by the second and is genuinely cheap — a shared-cpu-1x with 256 MB is about $2.02 a month — but you are still sizing it, still keeping it, and still paying for egress that runs from 2 cents a gigabyte in North America to 12 in Africa and India. Tissue has no machine to size and does not meter egress at all.

## What each one is

Two sentences each, before any numbers.

- **Fly.io** — A place to run containers on machines close to your users, billed per second. You size the machine, choose the regions, attach volumes, and run whatever image you built. Postgres, private networking and per-machine scaling are yours to operate.
- **Tissue** — One Cell — a JavaScript or WebAssembly function answering on a URL — with a SQL database, object storage, scheduled runs, sign-in and secrets attached to it by name in `ribo.toml`. `ribo deploy` puts the code, the static files and every attachment live in one step.

## Side by side

Every figure below came off the other company’s own pages, on one day, and is dated underneath.

|   | Fly.io | Tissue |
| --- | --- | --- |
| The unit you buy | A machine: a CPU shape and an amount of memory, billed per second while it runs. | Nothing. A Cell runs when a request arrives. |
| Smallest machine | shared-cpu-1x with 256 MB, about $2.02 a month. | Spore, $0, no card. |
| A larger one | performance-1x with 2 GB, about $32.19 a month. Extra memory is about $5 per GB per 30 days. | Colony, $25 a month: 100 Cells, a billion CPU-milliseconds, 100 GiB stored. |
| Stopped machines | $0.15 per GB of root filesystem per 30 days, while stopped. | Nothing, because there is nothing to stop. |
| Egress | $0.02 per GB in North America and Europe, $0.04 in Asia-Pacific, Oceania and South America, $0.12 in Africa and India. | Free everywhere, and not metered. |
| Storage | Volumes at $0.15 per GB-month; snapshots at $0.08 per GB-month, the first 10 GB free. | g7 at $0.015 per GiB-month beyond the plan: 5 GiB free, 20 GiB on Strand. |
| Database | Postgres you run on your own machines, or a managed offering. | c3, SQL over SQLite, attached by name. Nothing to operate. |
| Addresses and certificates | A dedicated IPv4 address is $2 a month; certificates $0.10 each and $1 for a wildcard, the first 10 free. | Included. A custom domain gets a certificate on its own; 5 domains on Strand. |
| Support | Standard $29 a month, Premium $199, Enterprise from $2,500. | Email, on every plan, including the free one. |
| What runs | Any container: any language, any process, connections that stay open, a disk you can write to. | JavaScript or WebAssembly in a V8 isolate. No processes, no threads, no long-lived connections, no writable disk. |

Checked 16 September 2026 against Fly.io's own pricing page. Both of us move; if a figure here has gone stale, [tell us](mailto:hello@tissue.systems?subject=vs/fly-io) and we will correct it.

## Where Fly.io is the better choice

This section is not decorative.

Containers. If what you are deploying is an image, Fly runs it and we cannot.

Regions you choose, dozens of them, with you deciding which machines sit where. We have six serving locations, four in the United States and two in Europe.

Persistent volumes, private networking between machines, and a process that can keep state in memory between requests — none of which a stateless function can do.

And per-second billing on a machine you control is cheap for a steady small workload. Two dollars a month for something always on is hard to beat, and we are not trying to.

## Where tissue is the better choice

No machine to size, and none to forget. The commonest surprise on a per-second bill is the thing somebody left running.

Egress is free. A gigabyte served from tissue costs nothing wherever it lands; the same gigabyte to a reader in India is twelve cents there.

Certificates, custom domains and support are not line items.

The database and the object store are attachments rather than servers. Nobody is running Postgres, and nobody is on call for it.

## What moving looks like

The machine goes away and what it was serving becomes a Cell: the volume it was writing to becomes a bucket, and the Postgres beside it becomes a SQL binding.

```toml
[cell]
name = "api"
js   = "./cell.js"

[[bindings]]
type     = "c3"
binding  = "DB"
database = "api"

[[bindings]]
type    = "g7"
binding = "FILES_BUCKET"
bucket  = "api-files"
```

```
$ ribo deploy
uploading   cell.js
attaching   c3 · g7

live  https://api.quartz-4b.tissue.dev
```

The database and the bucket are created on that first deploy if they are not there yet. `ribo deploy` is the whole pipeline: there is no build step to configure and no second place to put the static files.

Spore is $0, takes no card, and allows commercial use. If tissue turns out to be the wrong shape for what you are building, you will know inside an afternoon.

[Start free](https://auth.tissue.systems/login?plan=spore#signup) 5 Cells, a SQL database, file storage and cron.

## The other comparisons

- [vs Vercel](/vs/vercel)
- [vs Cloudflare](/vs/cloudflare)
- [vs Supabase](/vs/supabase)
- [vs Val Town](/vs/val-town)
- [vs Render](/vs/render)
- [vs Squarespace](/vs/squarespace)
