Understand how xhostd works.
From your first project to resources, billing, and recovery.
What xhostd is
What is xhostd?
xhostd is agent-first hosting. You — or your AI agent — push code, trigger a deploy, and get a live HTTPS URL. It works with any AI coding tool (Claude Code, Codex, Cursor, or a custom setup) through MCP tools and a plain HTTP API, and it hosts static sites and dynamic applications alike.
What does "agent-first" mean?
An AI agent can do the whole job here: create an app, push code, deploy, read logs, set environment variables, attach a custom domain. No step in that path needs a human at a dashboard, because nothing needs manual provisioning — the database, the file storage, and user sign-in already exist in every environment. The agent never stops to ask you to wire something up.
Can my agent open an account without me?
Yes, when it has a shell. The agent makes an SSH key, signs a registration message with it, and calls the registration API. It receives a token that lasts 30 days and can renew it with the same key. See the guide at docs.randomimity.com/guides/register-as-agent.
The account starts on the Starter plan: three channels, 128 MB of memory, and 256 MB of file storage. It moves to Basic when a person verifies an email address, which also opens the console to that person. You buy a paid plan in the console after that.
What is a channel?
A channel is one live environment of an app — production, staging, a preview. Each channel is a standalone, always-on container with its own HTTPS URL, its own file storage, its own custom domains, and — unless it is a static site — its own Postgres database. Your plan includes a number of channels, shared freely across your apps.
Channels and environments
Is a channel a real machine?
It behaves like one. A channel is a standalone container: its own filesystem, its own always-running process, its own storage, its own domains, and — unless it is a static site — its own database. Nothing durable is shared between channels — not data, not files, not configuration. Only idle CPU headroom is pooled across containers, the same way any VPS provider pools it across virtual machines.
Are preview and staging channels always on?
Yes. Every channel runs at all times, on every plan. There is no sleep mode, no scale-to-zero, and no cold start — a preview you deployed last month answers its first request as fast as production does.
Why do extra environments cost nothing?
Because we price the plan, not the machine. On platforms that bill per machine or per service, a second always-on environment with its own database costs about what the first one does — the meter runs per instance. xhostd prices your compute as a plan, and your channels share it. An idle staging channel consumes almost nothing, so there is no reason to charge for it: the free plan includes 3 channels, and paid plans include 10 to 80.
Database, storage and sign-in
Does every channel really get its own Postgres database?
Every channel that runs your code does. The database is created with the channel and its DATABASE_URL is already in the environment — no add-on to buy, no external account to create, no connection string to paste. A preview channel gets its own database too, so an experiment can never touch production data. A static project is the one exception: it serves files and queries nothing, so it gets no database.
What about file storage?
Every channel gets S3-compatible object storage, with the S3_* credentials already in its environment. Uploads, images, and save files work out of the box with any S3 client library. Storage counts against one account-wide quota.
How does user sign-in work?
Your app can offer "Sign in with Google" to its own users without wiring an auth provider: xhostd handles the OAuth flow per channel and hands your app the signed-in identity. See the guide at docs.randomimity.com/oauth.
Custom domains
How many custom domains can I attach?
Up to 5 per channel. Domains attach per environment, so a staging or preview channel can carry its own real domains next to production's.
Are custom domains on the free plan?
Yes — every plan, including the free one, with no per-domain charge and no per-certificate charge.
Who issues the HTTPS certificates?
xhostd does, automatically, and renews them. You add one DNS record at your registrar to verify the domain; you never delegate your DNS to us.
Compared with other platforms
How is xhostd different from a serverless host?
xhostd runs your code in always-on containers rather than billing each function invocation. This supports long-lived connections and background processes within your plan's resource limits. Other platforms have different execution and pricing models; check their current contracts when comparing.
How is xhostd different from a host that bills per machine?
Per-machine billing charges every always-on environment separately: the second environment with its own database costs about what the first did. On xhostd, channels are included in the plan — production, staging, and previews all run always-on, each with its own database, at one flat price.
Why does the pricing model matter for AI agents?
Agents multiply environments. An agent-driven workflow throws off a preview per branch, per experiment, per iteration. Under per-machine billing that gets linearly expensive; on xhostd it stays flat, because a new channel is a quota entry, not a new bill.
Plans, billing and limits
How do channels work?
Each app can have multiple channels — independent live URLs for the same project, like a production site and a preview. Every channel gets its own HTTPS URL; code-running channels also get their own database. Your plan sets a single channel quota shared across all your apps: every app counts its production channel against it, and each extra channel counts too. So apps and channels draw from the same pool — three channels can be three apps, or one app with a production site and two previews.
How is database storage counted?
Every channel except a static one gets its own database, and the storage figure is the total across all of them on your account — not a per-app cap. Use it however you like: one large database or many small ones.
How is file storage counted?
File storage is also an account total, across every channel you own. It differs from database storage in one way: it is a hard limit. When you reach it, we refuse a new upload until you delete files. We measure it about once an hour, so the figure in your console can lag a recent upload or delete.
What do the nightly backups cover?
Once a day we snapshot each project's database and its files, except on a static project, which has no database. Your plan says how long we keep them: 24 hours on the free plan, 7 days on every paid plan. We always keep a project's newest nightly snapshot, however old it is, so there is always one to go back to. On top of that, every deploy takes its own snapshot first. We keep the last 1 of those on the free plan and the last 3 on every paid plan, at any age, so a bad migration always has a rollback point. Restore either kind from your console.
What is the CPU soft allocation?
The CPU figure is a soft allocation: it's the fair share your apps are guaranteed when the machine is busy. When there's headroom, your apps can burst up to 2× the soft allocation — and they're hard-capped there. Memory is shared across the account and also sets a per-container ceiling.
How is Docker image size counted?
For Docker projects, the plan limit applies to your image's charged size: its total size minus the layers it shares with a platform warm base. Layers from node:22-slim, node:24-slim, node:26-slim, python:3.11-slim, python:3.12-slim, python:3.13-slim, python:3.14-slim, and debian:trixie-slim are exempt — start from one of those bases and only what you add on top counts (which can reduce build work).
What happens if I go over the storage limit?
Database storage is a soft limit: we measure usage, show it to you on your account page, and reach out if an account is consistently over so we can find the right plan together. Your apps keep running.
Egress — the traffic your apps send out — has no limit on any plan. We measure your egress and show it on your account page, and that is all we do with it: no plan states an allowance, nothing counts your traffic against a figure, and no egress carries a charge. If sustained use is disproportionate, we may throttle your traffic to a reasonable speed. We contact you first. File storage is the one storage limit we enforce: we refuse a new upload once you reach it, until you delete files.
How do I upgrade?
Upgrade from your console account page, or just ask your AI tool to upgrade when it hits a limit — it will hand you a link. Plans take effect immediately.
How does billing work?
Payments are securely processed by a third-party payment provider. Prices are in US dollars; any applicable sales tax or VAT is added at checkout. Plans are billed monthly and you can cancel anytime — see our Terms and Privacy for details.
What's your refund policy?
You can cancel anytime and keep access until the end of the month you've already paid for, after which the plan won't renew. Except where required by law, fees are non-refundable, including for unused time. If we ever close a paid account without cause, we refund the unused portion of the current period. Full details are in our Terms.