xhostd
Sign in Start building
← Comparisons

xhostd vs Railway: an included app stack or flexible services

Railway bills each service by usage. xhostd includes hosting, PostgreSQL, storage, and test channels in one fixed monthly plan for your AI coding agent.

Railway deploys services, databases, and storage with flexible resource choices. xhostd brings the app essentials together: always-on hosting, PostgreSQL, object storage, Google sign-in, and isolated environments for your AI coding agent. Both support agent workflows; xhostd stands out when you want fewer components to configure and a predictable monthly hosting bill.

What xhostd and Railway both offer

Both xhostd and Railway run your app in containers that an AI coding agent can deploy and manage.

  • Always-on services by default, including long-running background work (app sleeping is opt-in on Railway).
  • An official MCP server and an API for AI agents.
  • PostgreSQL for your app and an S3-compatible bucket for each environment.
  • Separate environments for staging and previews.
  • Custom domains with automatic HTTPS (on paid plans on Railway), public TCP (on paid plans on xhostd), and no seat fees.

The differences are in how you pay, what the plan includes, and where the app can run.

Key differences between xhostd and Railway

One plan price or per-second usage billing

xhostd: Fixed monthly plans: Basic is free, then Builder costs $10, Indie $20, Studio $40, and Pro $80. CPU can burst up to 2x.

Railway: Hobby costs $5 a month and includes $5 of usage. Pro costs $20 a month per workspace, with unlimited seats. Usage beyond the included amount is billed per second, at $20 per vCPU-month and $10 per GB of memory per month. The Free plan gives $1 a month of credit.

Why it matters: On xhostd you know the bill before the month starts. On Railway the bill follows what your services use, so a busy month costs more.

Database, files, and sign-in inside the plan

xhostd: Each code-running environment gets its own PostgreSQL database and S3-compatible storage, within the plan allowance. Static sites get no database. Google sign-in works on every plan, with no OAuth app to configure.

Railway: You deploy PostgreSQL from a template, and it bills as usage like any other service. Volumes cost $0.15 per GB-month, and buckets cost $0.015 per GB-month. For sign-in, you add an authentication library or an external identity provider.

Why it matters: On xhostd the database, files, and sign-in are ready at the first deploy and are part of the plan price. On Railway each one is a separate piece to set up and pay for.

No charge for traffic

xhostd: xhostd has no traffic or egress charges on any plan. xhostd might throttle disproportionate traffic after contacting you.

Railway: Traffic out of a service costs $0.05 per GB. Bucket egress and bucket API operations are free.

Why it matters: A launch or a busy API doesn't add to your xhostd bill.

Isolated channels that share one plan

xhostd: Production, staging, and preview channels each have their own app, URL, files, and settings, and each code-running channel also has its own database. Basic includes 3 channels and Builder includes 10, all within the one plan price.

Railway: Railway creates pull request (PR) environments automatically and deletes them on merge or close. Each environment, PR environments included, gets its own bucket. The services in each environment bill as usage.

Why it matters: Both keep test data away from production. On xhostd a preview with its own database doesn't raise the bill.

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.

Railway: Railway runs containers, native builds, static sites, and long-running services, including background services. Services stay on by default. App sleeping is opt-in for each service: a sleeping service stops after 5 to 10 minutes without outbound traffic, and the first request can return a 502 error during the cold boot. A Free plan service gets up to 1 vCPU and 0.5 GB of memory, and paid usage is billed per second.

Summary: Both run always-on containers with long-running background work. The difference: xhostd sets CPU and memory by plan and has no sleep mode, while Railway bills CPU and memory per second and lets you opt in to sleep for each service.

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.

Railway: Railway deploys from GitHub, Docker images, or its CLI, and automatic deployments are available. Agents use Railway's official MCP server, hosted with OAuth or run locally. The local server can create projects, scale services, deploy templates such as Postgres, and manage domains, buckets, and volumes. Railway also offers deployment rollback, a CLI, and an API.

Summary: Both can deploy automatically on each GitHub push and give agents an official hosted MCP server and an API. The difference: xhostd hosts a git repository for each app, while Railway can also deploy a prebuilt Docker image or straight from its CLI, and run its MCP server 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.

Railway: Railway deploys PostgreSQL from a template, as a service in your project. The database bills as usage like any other service, with no separate database plan. It is standard PostgreSQL, and you export each data resource separately. Built-in connection pooling is not documented.

Summary: Both run standard PostgreSQL for your app. The difference: xhostd includes a database in every code-running channel within the plan, while Railway adds PostgreSQL from a template and bills it as usage.

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.

Railway: Railway Storage Buckets are S3-compatible and have been generally available since November 28, 2025. A bucket costs $0.015 per GB-month, with free egress and free API operations, and every environment gets its own, including PR environments. For disk storage, volumes cost $0.15 per GB-month, up to 0.5 GB on Free, 5 GB on Hobby, and 1,000 GB on Pro. Bucket versioning is not documented.

Summary: Both give each environment its own S3-compatible bucket. The difference: xhostd includes the bucket in the plan, while Railway bills it at $0.015 per GB-month and also offers 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.

Railway: A Railway project has environments, each with its own services and data resources. A PR environment opens with each pull request and is removed when the pull request merges or closes. The services in every environment bill as usage. Whether a PR environment's database starts empty or with copied data is not documented.

Summary: Both give previews their own environment, with their own services and data. The difference: xhostd previews come from one channel pool within the plan, while Railway creates an environment for each pull request and bills its services as usage.

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.

Railway: Railway 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 Railway 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.

Railway: Railway offers point-in-time recovery for each Postgres database through pgBackRest, with about 4 weeks of history and no separate fee. Volume backups, set up for each service, run daily, weekly, and monthly, and are kept for 6, 27, and 89 days. Deployment rollback returns a service to an earlier deploy.

Summary: Both back up data and roll back code. The difference: xhostd's nightly and pre-deploy snapshots cover both the database and the files, while Railway offers about 4 weeks of point-in-time recovery for Postgres and scheduled volume backups.

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.

Railway: Railway supports custom domains with managed HTTPS certificates on paid plans: 2 on Hobby and 20 on Pro. It also has private networking between services and public TCP proxies. Services can run in US West, US East, Amsterdam, or Singapore, with up to 42 replicas on Pro. A global CDN is not documented.

Summary: Both offer custom domains with automatic certificates and public TCP. The difference: Railway lets you choose among four regions and add replicas.

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.

Railway: Railway provides service logs, resource metrics, and debugging tools for each service. 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 Railway doesn't document.

xhostd and Railway 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.

Railway: Railway bills usage per second: $20 per vCPU-month, $10 per GB of memory per month, and $0.05 per GB of egress. Hobby costs $5 a month with $5 of usage included, and Pro costs $20 a month per workspace with unlimited seats and no seat fees. The Free plan gives $1 of credit a month, and a one-time Free Trial gives $5 for 30 days.

Summary: Neither charges per seat. The difference: xhostd charges one fixed monthly price with no traffic charges, while Railway bills usage per second and egress per GB beyond the amount its plan includes.

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 Railway, the Free plan gives $1 of usage credit a month and Hobby costs $5 including $5 of usage; CPU, memory, egress, storage, and the Postgres service all draw on that usage, and usage beyond it is billed.

Where xhostd is a better fit

xhostd is the stronger choice when:

  • You want to know the month's hosting bill before it starts. xhostd plans are fixed from $0 to $80, while Railway bills CPU and memory per second beyond the included usage.
  • You want PostgreSQL, file storage, and Google sign-in inside one plan price. On Railway the database and buckets bill as usage, and sign-in comes from a library or an identity provider.
  • You expect a launch or a busy API. xhostd doesn't charge for traffic, while Railway charges $0.05 per GB of traffic out of a service.
  • You want several previews with their own data and no change to the bill. Builder includes 10 channels within the plan price, and each code-running channel has its own database and files.

Where Railway is a better fit

Consider Railway if you want:

  • Point-in-time recovery. Railway can restore a Postgres database to any moment in about the last 4 weeks, at no extra fee. xhostd restores to its nightly and pre-deploy snapshots.
  • Regions and replicas. Railway runs in four regions, US West, US East, Amsterdam, and Singapore, and on Pro a service can run as up to 42 copies. Each xhostd channel runs as one container.
  • More MCP tools locally. Run on your computer, Railway's MCP server can also scale services and manage buckets and volumes.

xhostd vs Railway at a glance

xhostd Railway
Compute model Always-on containers Always-on services, opt-in sleep
Sleep and cold starts None, on every plan Opt-in sleep after 5–10 minutes
Run time limit None Long-running services; limit not documented
Languages and Docker Node.js, Python, any Dockerfile Native builds and Docker images
Database PostgreSQL in every code-running channel, included Postgres template, billed as usage
File storage S3-compatible bucket per channel, included S3-compatible buckets, $0.015/GB-month
Previews with their own data Yes, every channel Yes, PR environments
Point-in-time recovery No; nightly and pre-deploy snapshots Yes, about 4 weeks
AI agent access Hosted MCP server, API, plugins Official MCP server, CLI, API
Pricing model Fixed plans, $0 to $80 Usage billing; Hobby $5, Pro $20

Sources

The comparison here was checked against these pages on . Anything a third party publishes can change after that date.