xhostd vs Heroku: an included app stack or a mature add-on ecosystem
Heroku adds PostgreSQL and storage as add-ons. xhostd includes hosting, database, storage, and isolated environments in one fixed monthly plan.
Heroku offers a mature deployment workflow, managed PostgreSQL, and an extensive add-on ecosystem. xhostd brings hosting, database, object storage, and isolated environments into one plan, designed for the AI coding agent you already use. Both support git-based deployment and MCP. xhostd is a strong option when you want the core stack included with fewer separate subscriptions.
What xhostd and Heroku both offer
Both xhostd and Heroku host full applications from git, with a managed database and access for AI agents.
- Git-based deploys, with an optional GitHub integration.
- Managed PostgreSQL for your app.
- Background workers, which run in a channel of their own on xhostd.
- Separate staging and preview environments with their own data.
- An MCP server and an API for AI agents.
The differences are in included services, data recovery, and how dynos sleep and route traffic.
Key differences between xhostd and Heroku
An included stack or paid add-ons
xhostd: Each code-running environment includes PostgreSQL and S3-compatible storage, and Google sign-in works on every plan with no OAuth app to configure. For example, the $10 Builder plan includes 1 GB of memory, 10 GB of database storage, and 50 GB of file storage.
Heroku: Heroku Postgres is a separate add-on. Essential-0 costs $5 a month for 1 GB, Essential-2 costs $20 for 32 GB, Standard-0 costs $50, and Premium-0 costs $200. Heroku has no native object storage, so you use an add-on such as Bucketeer, from $5 a month, or your own S3. It has no built-in sign-in for your users.
Why it matters: Each add-on is another plan to pick and another line on the bill. On xhostd the core stack comes with the hosting plan.
A free plan that stays on
xhostd: The free Basic plan includes 3 channels, 0.1 CPU core, 128 MB of memory, and 500 MB of database storage. Containers are always on, on every plan, with no sleep mode and no cold starts.
Heroku: Heroku has no free tier. Eco dynos cost $5 for a shared pool of 1,000 hours and sleep after 30 minutes without traffic. Basic dynos at $7 and higher stay on, and Standard-1X costs $25.
Why it matters: You can try xhostd for free, and a quiet app answers its next visitor without a wake-up delay.
Data recovery on every plan
xhostd: Nightly snapshots cover the database and files, kept 24 hours on Basic and 7 days on paid plans. xhostd also keeps pre-deploy snapshots: the last 1 on Basic and the last 3 on paid plans. Code and data restore separately.
Heroku: heroku rollback restores code and config vars, not add-on data. Postgres rollback covers 4 days on Standard and 7 days on higher plans. Essential plans don't have it.
Why it matters: A bad deploy can damage data as well as code. On xhostd every plan has a recent point to restore your data to.
Public TCP or HTTP only
xhostd: Paid plans can expose one public TCP endpoint per channel, so an app can serve more than HTTP. Long-running workers, bots, and queue consumers run the same way as web apps.
Heroku: The router handles HTTP only, with a 30-second request timeout. Inbound TCP routing is not supported. Worker dynos run background jobs.
Why it matters: Some apps need a raw TCP port, such as a game server or a custom protocol. Heroku can't route that traffic to your app.
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.
Heroku: Heroku runs apps on dynos, built with buildpacks for Ruby, Python, Java, Node.js, Go, PHP, .NET, and more, and Docker images work on the Cedar stack only. The $5 Eco plan shares a pool of 1,000 dyno hours, and its dynos sleep after 30 minutes without traffic; dynos from Basic at $7 a month stay on. Larger sizes include Standard-1X at $25, Standard-2X at $50, and Performance-M at $250 a month. Worker dynos run background jobs, and the router ends a web request after 30 seconds.
Summary: Both run web processes and background workers that can stay on. The difference: xhostd has no sleep mode on any plan, while Heroku Eco dynos sleep after 30 minutes and its router times out web requests after 30 seconds.
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.
Heroku: A git push to Heroku builds and releases the app in one step, and GitHub auto-deploys are available. Pipelines handle staging and promotion, and open buildpacks keep the build portable. Agents work through Heroku's official remote MCP server, its CLI, and its API.
Summary: Both deploy from git and give agents an MCP server and an API. The difference: xhostd publishes a chosen branch or commit after a health check, while a push to Heroku builds and releases in one step.
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.
Heroku: Heroku Postgres is a managed add-on with its own price. Essential plans run from $5 a month for 1 GB through $9 for 10 GB to $20 for 32 GB, and Standard-0 starts at $50 and Premium-0 at $200 a month. Postgres Advanced became generally available on October 6, 2026. You can download Postgres backups to move your data elsewhere.
Summary: Both offer managed PostgreSQL. The difference: xhostd includes a database with every code-running channel, while Heroku bills each database as an add-on from $5 a month.
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.
Heroku: Heroku has no native object storage, and files written to a dyno's local disk are ephemeral. Apps keep files in an add-on such as Bucketeer, from $5 a month, or in your own S3.
Summary: Both let an app work with S3 storage. The difference: xhostd includes an S3-compatible bucket with every channel, while Heroku has no native object storage and relies on an add-on or your own S3.
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.
Heroku: Pipelines handle staging and promotion to production, and review apps preview changes. Each review app gets its own add-ons and configuration and is billed per second. Staging and review apps add their own dyno and add-on charges.
Summary: Both offer separate staging and preview environments with their own data. The difference: xhostd previews come from the plan's channel pool, while Heroku staging and review apps add dyno and add-on charges.
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.
Heroku: Heroku has no built-in sign-in for your app's users. Apps add sign-in with an authentication library or an identity add-on.
Summary: Both can host an app that signs in its users. The difference: xhostd builds Google sign-in into every channel, while Heroku leaves sign-in to a library or an add-on.
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.
Heroku: A Heroku release rollback brings back earlier code and config vars, and it leaves add-on data as it is. Postgres rollback can return a Standard database to a point in the last 4 days, and higher plans to a point in the last 7 days; Essential databases don't offer it. Heroku keeps Postgres backups that you can download.
Summary: Both roll back code separately from data and keep database backups. The difference: xhostd snapshots the database and files on every plan and restores to those snapshots, while Heroku Postgres can roll back to any point in time on Standard and higher plans.
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.
Heroku: Heroku supports custom domains, with automated certificates on all dynos. The router carries HTTP traffic only, and Heroku doesn't support inbound TCP routing. The Common Runtime runs apps in the US or Europe, and Private Spaces add more regions; a CDN is not documented.
Summary: Both include custom domains with automatic certificates. The difference: xhostd adds a public TCP endpoint per channel on paid plans, while Heroku offers US and Europe regions, more with Private Spaces, and its router handles HTTP only.
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.
Heroku: Logplex collects app logs and keeps the latest 1,500 lines. Metrics are available from Basic dynos up, and alerts from Standard dynos up. Monitoring add-ons provide longer retention or deeper analysis.
Summary: Both provide app logs and runtime metrics. The difference: xhostd keeps logs from earlier containers and adds visitor analytics, while Heroku Logplex holds 1,500 lines and longer retention comes from add-ons.
xhostd and Heroku 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.
Heroku: Heroku has no free tier, and dynos start at $5 a month for Eco. Postgres, object storage, and other add-ons are priced separately. Heroku charges no seat or bandwidth fees, with a soft limit of 2 TB per app each month.
Summary: Both charge no seat or bandwidth fees. The difference: xhostd has a free plan and fixed plans that include the database and storage, while Heroku has no free tier and prices dynos and add-ons separately.
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 Heroku, which has no free tier, an always-on Basic dyno costs $7 a month and the smallest Heroku Postgres plan $5, so the same app starts at $12 a month, or $17 with a Bucketeer storage add-on. Both xhostd plans cost less for this app.
Where xhostd is a better fit
xhostd is the stronger choice when:
- You want PostgreSQL, object storage, and sign-in without choosing add-ons. The $10 Builder plan includes 10 GB of database storage and 50 GB of files, while Heroku Postgres starts at $5 a month and object storage needs an add-on such as Bucketeer.
- You want to start free with an app that stays on. xhostd's Basic plan is free and never sleeps, while Heroku has no free tier and Eco dynos sleep after 30 minutes without traffic.
- You need a raw TCP port, for example for a game server or a custom protocol. Paid xhostd plans expose public TCP, and the Heroku router handles HTTP only.
- You want restore points for the database and files on every plan. Every xhostd plan keeps nightly and pre-deploy snapshots of both, while
heroku rollbackleaves add-on data as it is and Essential databases have no Postgres rollback.
Where Heroku is a better fit
Consider Heroku if you want:
- An add-on marketplace. Heroku lists about 160 add-ons, and its buildpacks cover Ruby, Python, Java, Node.js, Go, PHP, .NET, and more. xhostd runs Node.js, Python, or any Dockerfile.
- One-step git deploys. On Heroku, one
git pushbuilds and releases the app. On xhostd it takes two steps: a push stores the code, and a deploy publishes it. A channel connected to GitHub can instead deploy on each push. - Postgres rollback. Standard and higher databases can roll back to any moment in the last 4 or 7 days. xhostd restores to its nightly and pre-deploy snapshots.
xhostd vs Heroku at a glance
| xhostd | Heroku | |
|---|---|---|
| Compute model | Always-on containers | Dynos, from Eco to Performance |
| Sleep and cold starts | None, on every plan | Eco sleeps after 30 minutes |
| Run time limit | None | 30-second web request timeout |
| Languages and Docker | Node.js, Python, any Dockerfile | Buildpacks; Docker on Cedar only |
| Database | PostgreSQL in every code-running channel, included | Heroku Postgres add-on, from $5 |
| File storage | S3-compatible bucket per channel, included | Add-on or your own S3 |
| Previews with their own data | Yes, every channel | Yes, review apps with add-ons |
| Point-in-time recovery | No; nightly and pre-deploy snapshots | Postgres rollback, Standard and higher |
| AI agent access | Hosted MCP server, API, plugins | Remote MCP server, CLI, API |
| Pricing model | Fixed plans, $0 to $80 | Dynos plus add-ons, from $5 |
Sources
The comparison here was checked against these pages on . Anything a third party publishes can change after that date.
- An Update on Heroku
- Heroku Remote MCP Server | Heroku Dev Center
- HTTP Routing | Heroku Dev Center
- Review Apps | Heroku Dev Center
- Releases | Heroku Dev Center
- Choosing the Right Heroku Postgres Plan | Heroku Dev Center
- Regions | Heroku Dev Center
- Cloud Application Platform Pricing & Plans | Heroku
- Buildpacks | Heroku Dev Center
- Add-ons - Heroku Elements
- Pipelines | Heroku Dev Center
- GitHub Integration (Heroku GitHub Deploys) | Heroku Dev Center
- Heroku PGBackups | Heroku Dev Center
- Dynos (App Containers) | Heroku Dev Center
- Automated Certificate Management (ACM) for Eco dynos | Heroku Dev Center
- Heroku March 2026 Update | Heroku