How it works
Four steps, no server to look after
Connect a repo or upload an archive
Connect a git repo with its build command and output folder, or upload a zip or tar.gz archive of finished files.
We build it if needed
If there is a build command, we run it on every deploy. You can read the log in the console.
Live right away
The result is served as static files over HTTPS, at an address made from your site name plus four random characters, such as kopi-senja-x7k2.sites.xpod.dev.
Bad release? Roll back
Every deploy is kept. Pick an earlier deploy to make it the live version again.
Seven products, one platform
Which one do you need?
The difference is when your code runs: from always on, to not running at all until it is needed.
- What you bring
- An app from the catalog
- When it runs
- Always
- How it is billed
- Monthly
- What you bring
- Your own container image
- When it runs
- Always
- How it is billed
- Monthly, per active minute
- What you bring
- A PostgreSQL database
- When it runs
- Always
- How it is billed
- Monthly
- XPod Sitesyou are here
- What you bring
- Static files
- When it runs
- Never
- How it is billed
- Plan + bandwidth
- What you bring
- Code in a container
- When it runs
- On a schedule
- How it is billed
- Per second of execution
- What you bring
- Code or a container
- When it runs
- When messages arrive
- How it is billed
- Per processed message
- What you bring
- One function (handler)
- When it runs
- When called
- How it is billed
- Per call + GB-second
What comes with it
Enough to manage on your own
Back to an earlier version
If a release goes wrong, make an earlier deploy the live version, without touching your code.
Lock it with a password
Turn on basic auth so the site only opens for people you give a username and password. Handy for client previews.
Build logs and usage
Read the log of every build to see why a deploy failed, and watch this month's bandwidth against your plan's quota.
Frameworks
Frameworks that fit
If your framework ends its build with static HTML, CSS and JS, it fits here. This list is only common examples, not a limit.
- React / Vite
- Vue
- Svelte
- Astro
- Next.js (static export)
- Hugo
- Static docs
How billing works
Start free, pay when you need more quota
Three plans
Free (Rp0), Small (Rp7,000) and Medium (Rp14,000) per month. Paid plans are billed per minute your site is active and never exceed their monthly price.
Over the quota
Bandwidth over your plan's quota is Rp150 per GB. Build time: the first 1,000 minutes each month are free for each site, then Rp0.0432 per second.
Taken from your balance
No card is charged automatically. The Free plan needs no balance; paid plans need a balance of at least Rp10,000 to start.
See the pricing details →
When not to use XPod Sites
Sites is not for everything, and that's fine
You need an API or a running server process
Sites does not run any code on a server.
Go to XPod Run →You need server-side rendering (SSR)
Sites only serves finished files. If your pages are assembled when requested, run them on Run.
Go to XPod Run →You need scheduled tasks
For cron or batch tasks that run now and then and are billed per second.
Go to XPod Jobs →