Skip to main content
Static & SPA

Static sites and SPAs, served from the edge

React, Vue, Svelte, Astro, and more - built from Git and published to our edge cache. No server to run, no app slot used. Push your code and it’s live and fast, close to every visitor.

14 days free. No credit card. No commitment.

Push to deploy

GitHub, GitLab, Bitbucket

Same price

On renewal, every year

99.99%

Uptime, last 12 mo

Daily

Backups kept up to 30 days

E

210+

Tasks Ellie handles

What you get

Edge hosting with a real Git pipeline

Connect a repository once. Every push builds your app and publishes it to the edge - with rollback always one click away.

Git push deploys

GitHub, GitLab, or Bitbucket over OAuth or a token. A push registers a webhook and triggers a build automatically.

Framework detection

React, Vue, Svelte, Astro, and dozens more recognized from your package.json. Build command and output directory set for you.

Served from the edge

Your build is published to our Cloudflare-backed edge cache and served close to your visitors - no origin server in the hot path.

SPA routing

Client-side routes get a proper fallback, so deep links and refreshes resolve to your app instead of a 404.

Rollback, kept forever

Static builds are retained indefinitely. Promote any earlier build back to live in seconds - no rebuild.

Automatic HTTPS

Point your domain at Hostney and SSL is issued and renewed for you. Everything is served over HTTPS by default.

Build-time env vars

VITE_, NEXT_PUBLIC_, REACT_APP_ and friends are available at build time. Mark any as a secret to seal its value.

No app slot used

Static apps don’t run a container, so they don’t count against your plan’s app allowance. Ship as many as you like.

How it works

Push. Build. Live at the edge.

Three Git providers, one pipeline. Choose ship-on-every-push, or build-and-hold until you promote it yourself.

1

Connect your repository

Link GitHub, GitLab, or Bitbucket via OAuth or a token, pick the repo and branch, and a push webhook is registered for you.

2

We detect and build

Each push clones the commit, detects your framework, runs your build in a resource-capped build container, and collects the output directory.

3

Publish to the edge

The build output is uploaded to our edge cache. On Auto deploy it goes live immediately; on Build only it waits until you promote it.

Build #v21

Current
Repositorydashboard / main
FrameworkVite · React
Outputdist
Served fromEdge cache

Build log

Detected Vite · npm

vite build

Collected dist/ (312 files)

Published to edge

Live · SPA fallback on

The pipeline

What happens between push and live

Five stages, and the last two are where this differs from a server-rendered app: nothing stays running afterwards.

  1. Push

    A commit lands on the tracked branch.

  2. Detect

    We read package.json and set the build command and output directory for you.

  3. Build

    Your build runs on Node 24, 22 or 20 in a resource-capped container, which then goes away.

  4. Publish

    The output directory is pushed to the edge cache. No server is left running.

  5. Live

    Deep links and refreshes on client routes resolve through the SPA fallback.

Bring your framework

ReactVueSvelteAngularAstroSvelteKitViteGatsbyPreactSolidEleventyDocusaurus

Auto-detected from your package.json, with the build command and output directory set for you.

No server, on purpose

What static buys you here

A build with no container behind it is cheaper for us to run and simpler for you to reason about. Both of those show up in what you are allowed to do.

  • No app slot, no limit

    A static site uses no container and no app slot, so the number you can run is not capped by your plan the way server-rendered apps are. Ship as many as you like.

  • Deep links just work

    A refresh on /dashboard/settings resolves to your app through the SPA fallback rather than a 404. This is the thing most static hosts make you write a rewrite rule for.

  • Builds are kept indefinitely

    Every successful build is stored as an artifact, and static ones are never pruned - server-rendered apps keep only the five most recent. Rolling back is a swap, not a rebuild.

  • Dependencies checked after the build

    The packages a build installed are re-checked nightly against the public advisory database. It matters for a bundle too: anything that is not a build-only dependency is compiled into the JavaScript you ship to every visitor.

  • HTTPS on custom domains

    Point a domain at it and the certificate is issued and renewed for you.

Detected

  • React
  • Vue
  • Svelte
  • Angular
  • Astro
  • SvelteKit
  • Vite
  • Gatsby

Build with

  • Node 24
  • Node 22
  • Node 20

Pin it via

  • .nvmrc
  • .node-version
  • package.json engines

Build-time variables are public

VITE_, NEXT_PUBLIC_ and REACT_APP_ variables are baked into the bundle at build time, which means anyone can read them in the browser. That is how they are meant to work. Anything that must stay secret belongs behind an API, not in a static build.

Need server-side rendering instead?

If your app renders on the server - Next.js, Nuxt, or a Node API behind it - it runs as a container rather than static files. Same Git pipeline, same one-click deploys, with a live process instead of cached output.

See Node.js & Next.js hosting

Pricing

Simple, transparent pricing

Every plan includes managed WordPress, SSH access, daily backups, and enterprise-grade security. Start with a 14-day free trial.

Startup

Great for growing businesses

$7.99/mo

$94.99 billed annually

  • 1 website
  • 10 GB storage
  • ~10,000 visits/month
  • 5 MySQL databases
  • 250,000 inodes
  • 5 FTP users

What's included:

SSL & Domain

  • Free SSL certificate
  • Free starter domain

Email

  • 2 mailboxes
  • 3 GB per mailbox
  • Webmail, IMAP and SMTP
Most popular

Advanced

For professional websites

$14.99/mo

$179.99 billed annually

  • 5 websites
  • 20 GB storage
  • ~110,000 visits/month
  • 10 MySQL databases
  • 500,000 inodes
  • 10 FTP users

Everything in Startup, plus:

Email

  • 5 mailboxes
  • 5 GB per mailbox

Backups

  • 14 days of backup history

Performance

  • Memcached object cache
  • Redis object cache

Pro

Maximum performance and features

$22.99/mo

$274.99 billed annually

  • 10 websites
  • 40 GB storage
  • ~200,000 visits/month
  • 20 MySQL databases
  • 750,000 inodes
  • 20 FTP users

Everything in Advanced, plus:

Email

  • 10 mailboxes
  • 10 GB per mailbox

Deployment

  • 2 SSR applications

Backups

  • 30 days of backup history

Monitoring

  • 1 minute between checks

Ship it

Deploy your front-end in minutes

Connect a repo, push, and watch it go live at the edge. Included in every plan. Start free for 14 days, no credit card.

Questions

Frequently asked questions

Which frameworks are supported?
React, Vue, Svelte, Angular, Preact, Solid, and more, plus site generators like Astro, SvelteKit, Vite, Gatsby, Eleventy, VitePress, and Docusaurus. When you connect a repo we detect the framework from your package.json and set the build command and output directory automatically.
How is a static app hosted - is it in a container?
No. We build your app, then serve the output from our Cloudflare-backed edge cache. There is no long-running server to manage, and a static app does not use one of your plan’s app slots. It’s just fast, cached files close to your visitors.
Does client-side routing work?
Yes. Single-page apps that handle their own routing get a proper SPA fallback, so deep links and refreshes on client routes resolve to your app instead of a 404. React Router, Vue Router, and the like all work.
How do deploys happen?
Connect GitHub, GitLab, or Bitbucket over OAuth or a token and pick a branch. Every push registers a webhook, triggers a build, and publishes the new output to the edge. On Auto deploy it goes live automatically; on Build only you promote it when you’re ready.
Can I roll back?
Yes, and static builds are especially forgiving here - they’re kept indefinitely, not pruned like container builds. Promote any earlier build back to live in seconds from the Deployments tab.
What about build-time environment variables?
Add them in the panel and they’re available during the build, so framework variables like VITE_, NEXT_PUBLIC_, or REACT_APP_ are baked into your output. Mark any as a secret to seal its value. Remember that anything compiled into a static bundle is visible to the browser.
Can I use a custom domain and HTTPS?
Yes. Point your domain at Hostney and SSL is issued and renewed automatically. Your static app is served over HTTPS from the edge with no extra configuration.
Is static & SPA hosting included in my plan?
Yes. Git deployment, edge hosting, rollback, and environment management are part of every plan. Static apps are served from the edge and do not consume a container app slot.