xhostd vs Fly.io: included app essentials or infrastructure control
Fly.io gives you control over machines, regions, and networking. xhostd includes the app essentials in one fixed plan, with no infrastructure to set up.
Fly.io gives developers detailed control over machines, regions, and networking. xhostd makes the app essentials available in one plan: always-on hosting, PostgreSQL, object storage, Google sign-in, and isolated environments. Both run container-based applications. xhostd suits developers who want their AI coding agent to manage the app without configuring the underlying infrastructure in detail, at a predictable monthly price.
What xhostd and Fly.io both offer
Both xhostd and Fly.io run container-based apps that an AI coding agent can deploy and manage.
- Containers for web apps and long-running workers.
- An official MCP server and an API for AI agents.
- Managed PostgreSQL with backups.
- S3-compatible object storage.
- Custom domains with managed certificates and no seat fees.
The differences are in how you pay, whether apps stay on by default, and how much of the infrastructure you control.
Key differences between xhostd and Fly.io
PostgreSQL included or from $38 a month
xhostd: Each code-running environment gets its own PostgreSQL database and S3-compatible storage, within the plan price. Builder ($10 a month) includes 10 GB of database storage and 50 GB of file storage. Google sign-in works on every plan, with no OAuth app to configure.
Fly.io: Managed Postgres costs $38 a month on Basic, $72 on Starter, and $282 on Launch, plus $0.28 per GB of storage. Volumes cost $0.15 per GB-month. Tigris object storage is billed on the Fly.io invoice.
Why it matters: On Fly.io the smallest managed database costs more than xhostd's Builder plan with the database included. A preview that gets its own database through
fly mpg createadds another managed database to the bill.
One plan price and no traffic charges
xhostd: Fixed monthly plans: Basic is free, then Builder costs $10, Indie $20, Studio $40, and Pro $80. There are no traffic or egress charges. xhostd might throttle disproportionate traffic after contacting you.
Fly.io: Fly.io is pay as you go, with no plans and no free allowance for new organizations. A shared 256 MB machine costs $2.19 a month, and a dedicated IPv4 address costs $2 a month. Egress costs $0.02 per GB in North America and Europe, $0.04 in Asia-Pacific, and $0.12 in Africa and India. Since February 2026, traffic between regions on the private network is billable too.
Why it matters: On xhostd you know the bill before the month starts, and traffic doesn't change it.
Always on by default
xhostd: Every app runs in an always-on container on every plan, with no sleep mode and no cold starts.
Fly.io: fly launch sets apps to scale to zero by default. A stopped machine starts in about 2 seconds, and a suspended one resumes in a few hundred milliseconds. You can turn autostop off to stay always on.
Why it matters: A bot, worker, or queue consumer on xhostd keeps running with no setting to change. On Fly.io you check the autostop setting first.
Previews built in
xhostd: Production, staging, and preview channels are built in. Each channel has its own app, URL, files, and settings, and each code-running channel also has its own database. Basic includes 3 channels and Builder includes 10.
Fly.io: Fly.io has no built-in previews. A GitHub Action recipe sets up review apps, and a database per pull request means running fly mpg create yourself.
Why it matters: On xhostd a preview with its own data is part of the platform and the plan. On Fly.io you build and pay for that setup yourself.
Compute and runtime
xhostd: Each channel runs in an always-on container, on every plan, with no sleep mode and no cold starts. You can run a static site on nginx, an app on a template with Node.js 22, Python 3.13, and uv, or your own Dockerfile. CPU is a guaranteed share that can burst to 2x, from 0.1 core on Basic to 4 cores on Pro, and memory is an account total from 128 MB to 8 GB. A process has no run time limit, so workers, bots, and queue consumers keep running.
Fly.io: Fly Machines run containers and custom processes, and process groups set how each process runs. Apps created with fly launch stop when idle and start again on the next request, in about 2 seconds from stopped or a few hundred milliseconds from suspended. With autostop off, a machine stays on. A shared machine with 256 MB of memory costs $2.19 a month, and the Machines API controls each machine.
Summary: Both run containers that can stay on for long-running work. The difference: xhostd keeps every container on with CPU and memory set by plan, while Fly.io apps scale to zero by default unless autostop is off and give you control over each machine.
Deploys and AI agents
xhostd: Every app has its own git repository. A push stores the code, and a deploy publishes a chosen branch or commit; GitHub-connected apps can also deploy on each push. Every deploy passes a health check before a blue-green switch, and a failed deploy leaves the previous version serving. Agents work through a hosted MCP server, an HTTP API with an OpenAPI spec, and plugins for Claude Code and Codex.
Fly.io: Fly.io builds and deploys container images through flyctl, the Machines API, or CI workflows. Its official MCP server runs locally with fly mcp server and isn't hosted. It covers apps, machines, volumes, secrets, certificates, logs, and status. A container image moves to other runtimes as is.
Summary: Both give agents an official MCP server and an API. The difference: xhostd deploys git revisions through a hosted MCP server, while Fly.io releases container images and its MCP server runs locally.
Database
xhostd: Every code-running channel gets its own PostgreSQL database, included in the plan. Your app receives a main connection, a direct connection for migrations, and a read-only connection; on newer database servers the main connection is pooled through PgBouncer in transaction mode. PostGIS is available. Database storage is an account total across all your apps and channels, from 500 MB on Basic to 80 GB on Pro, as a soft limit: xhostd reaches out instead of stopping your app.
Fly.io: Fly Managed Postgres is a separate product with three plans: Basic at $38 a month, Starter at $72, and Launch at $282, with storage at $0.28 per GB. High availability, backups, and connection pooling come with each plan. It is standard PostgreSQL, so the data is portable.
Summary: Both offer managed PostgreSQL with backups. The difference: xhostd includes a database in every code-running channel, while Fly.io sells Managed Postgres from $38 a month, with high availability on every plan.
File storage
xhostd: Each channel gets its own S3-compatible bucket, so standard S3 libraries work. Versioning is always on, and old versions and deleted files are kept for 120 days. File storage is an account total across all your apps and channels, from 2 GB on Basic to 400 GB on Pro, as a hard limit. Files are served through your app; there are no public object URLs.
Fly.io: Fly.io offers persistent volumes at $0.15 per GB-month, with volume snapshots at $0.08 per GB after the first 10 GB, which are free. S3-compatible object storage comes from Tigris and is billed on the Fly.io invoice. Volumes and their data move separately from the app.
Summary: Both offer S3-compatible object storage. The difference: xhostd includes a bucket in each channel, while Fly.io offers object storage through Tigris and adds volumes for disk storage.
Environments and previews
xhostd: Production, staging, and previews are separate channels. Each channel is its own container with its own URL, file bucket, environment overrides, up to 5 custom domains and, for code-running apps, its own PostgreSQL database. A new preview starts with an empty database, so tests never touch production data. Channels come from one account-wide pool: 3 on the free plans, then 10, 20, 40, or 80.
Fly.io: Fly.io doesn't include preview environments. Staging and previews run as separate apps, and Fly.io publishes a GitHub Action recipe for review apps. A database for each pull request is its own Managed Postgres, created with fly mpg create and billed like any other.
Summary: Both can give a pull request its own app and database. The difference: xhostd builds previews into every plan as channels, while Fly.io sets them up through a GitHub Action recipe and a separately billed database for each pull request.
User sign-in
xhostd: Google sign-in is built into every channel and custom domain, on every plan, with no OAuth app to create. After sign-in, your app receives a signed token with the user's ID, email, and name, and verifies it against xhostd's public keys. Your app decides which pages need sign-in.
Fly.io: Fly.io doesn't include sign-in for your app's users. Your app brings its own, through an authentication library or an external identity provider.
Summary: Similar: on both, your app checks who is signed in. The difference: xhostd provides Google sign-in on every plan with no OAuth app to create, while Fly.io leaves sign-in to a library or an external identity provider.
Backups and recovery
xhostd: Nightly snapshots cover the database and files, and xhostd also takes a snapshot before each deploy. Free plans keep 24 hours of nightly snapshots and the last pre-deploy snapshot; paid plans keep 7 days and the last 3. A restore can run read-only, behind a maintenance page, or live, and a code rollback boots the previous image without a rebuild. xhostd restores to these snapshots, not to any chosen moment.
Fly.io: Every Managed Postgres plan includes backups, and volumes have snapshots billed at $0.08 per GB beyond the free 10 GB. A code rollback redeploys an earlier image. Point-in-time recovery for Managed Postgres is not documented.
Summary: Both back up the database and can return to an earlier image. The difference: xhostd's nightly and pre-deploy snapshots cover both the database and the files, while Fly.io backs up Managed Postgres and snapshots volumes separately.
Networking and domains
xhostd: Every channel gets an HTTPS address, and each channel can add up to 5 custom domains with automatic certificates, on every plan. Paid plans add one public TCP endpoint per channel, with an optional IP allowlist.
Fly.io: Fly.io places machines in regions around the world, with Anycast routing and configurable edge routing. It supports custom domains with managed certificates and private networking. A dedicated IPv4 address costs $2 a month, and traffic between regions on the private network has been billable since February 2026.
Summary: Both offer custom domains with automatic certificates. The difference: Fly.io places machines in regions worldwide behind Anycast.
Logs and monitoring
xhostd: You get deploy and runtime logs, including logs from earlier containers, plus health findings with latency percentiles (p50, p95, and p99) and resource readings. Visitor analytics show visits, unique visitors, top pages, broken links, and status codes, without adding a script to your pages.
Fly.io: Fly.io provides application logs, infrastructure metrics, and monitoring integrations. Log retention and built-in visitor analytics are not documented.
Summary: Both provide logs and resource metrics. The difference: xhostd also reports visitor analytics, which Fly.io doesn't document.
xhostd and Fly.io pricing
xhostd: Fixed monthly plans: Basic free, Builder $10, Indie $20, Studio $40, and Pro $80. For example, Builder includes 10 channels, 0.5 CPU core, 1 GB of memory, 10 GB of database storage, and 50 GB of file storage. Hosting, PostgreSQL, storage, and backups are included, with no traffic, egress, or seat charges; xhostd might throttle disproportionate traffic after contacting you. See xhostd plans.
Fly.io: Fly.io is pay as you go, with no plans, no seat fees, and no free allowance for new organizations; a trial covers 2 machine-hours or 7 days. Outbound traffic costs $0.02 per GB from North America and Europe, $0.04 from Asia-Pacific, and $0.12 from Africa and India. Machines, volumes, databases, and IPv4 addresses each bill separately, and reserved capacity takes 40% off.
Summary: Neither charges per seat. The difference: xhostd charges one fixed plan price with no traffic charges, while Fly.io meters machines, storage, databases, and traffic.
Price example: On xhostd, a small always-on app with PostgreSQL and file storage costs $0 on the free Basic plan (0.1 CPU core, 128 MB of memory), or $10 a month on Builder (0.5 core, 1 GB). On Fly.io, new organizations get no free allowance: a shared 256 MB machine costs $2.19 a month and Managed Postgres starts at $38, so the app starts at about $40 a month before Tigris file storage. That $38 plan includes database high availability, which xhostd doesn't offer. Both xhostd plans cost less for this app.
Where xhostd is a better fit
xhostd is the stronger choice when:
- You want PostgreSQL without a separate database bill. The $10 Builder plan includes 10 GB of database storage, while Fly.io Managed Postgres starts at $38 a month.
- You run a worker, bot, or queue consumer and don't want to check a setting first. xhostd containers are always on, while
fly launchsets apps to scale to zero by default. - You want previews with their own data without building the setup. xhostd channels have this built in, while on Fly.io you set up review apps from a GitHub Action recipe and create each database with
fly mpg create. - You want your agent to work through a hosted MCP server and plugins for Claude Code and Codex. Fly.io's MCP server runs locally and isn't hosted.
Where Fly.io is a better fit
Consider Fly.io if you want:
- Global regions with Anycast. Fly.io runs machines in regions around the world, behind Anycast.
- More infrastructure control. The Machines API and process groups control each machine and how its processes run.
- Fine-grained costs. A shared 256 MB machine costs $2.19 a month, and reserved capacity takes 40% off.
xhostd vs Fly.io at a glance
| xhostd | Fly.io | |
|---|---|---|
| Compute model | Always-on containers | Fly Machines running containers |
| Sleep and cold starts | None, on every plan | Scale to zero by default |
| Run time limit | None | Long-running machines; limit not documented |
| Languages and Docker | Node.js, Python, any Dockerfile | Any container image |
| Database | PostgreSQL in every code-running channel, included | Managed Postgres from $38/month |
| File storage | S3-compatible bucket per channel, included | Volumes; Tigris object storage |
| Previews with their own data | Yes, every channel | Not built in; GitHub Action recipe |
| Point-in-time recovery | No; nightly and pre-deploy snapshots | Not documented |
| AI agent access | Hosted MCP server, API, plugins | Local MCP server, CLI, Machines API |
| Pricing model | Fixed plans, $0 to $80 | Pay as you go, no plans |
Sources
The comparison here was checked against these pages on . Anything a third party publishes can change after that date.
- flyctl mcp server - Fly.io
- Autostop/autostart Machines - Fly.io
- Managed Postgres - Fly.io
- Fly.io Resource Pricing - Fly.io
- Pricing · Fly
- Git Branch Preview Environments on Github - Fly.io
- Deploy an app - Fly.io
- Continuous Deployment with Fly.io and GitHub Actions - Fly.io
- Machines API - Fly.io
- Run multiple process groups in an app - Fly.io
- Private Networking - Fly.io
- Custom domains - Fly.io
- Roll back a deploy - Fly.io
- Monitoring on Fly.io - Fly.io