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

No renewal trap

Renews at the regular price

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 one on every website and subdomain your plan includes.

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 26, 24 or 22 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 container

    A static site runs no container and uses no app slot, so the server-rendered app allowance on your plan does not limit it. Each one needs only a website or subdomain of its own to deploy onto.

  • 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 26
  • Node 24
  • Node 22

Pick it in

  • Your app's build settings

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.

Black Friday30% off up to 3 years with code BLACKFRIDAY30Ends Cyber Monday, November 30

30% OFF

Startup

Great for growing businesses

$7.89

$5.52/mo

$66.29 a year for up to 3 years, then $94.70/yr

  • 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
30% OFF

Advanced

For professional websites

$14.97

$10.48/mo

$125.79 a year for up to 3 years, then $179.70/yr

  • 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
30% OFF

Pro

Maximum performance and features

$22.89

$16.02/mo

$192.29 a year for up to 3 years, then $274.70/yr

  • 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

For new customers on annual plans. Enter the code at checkout, or when you upgrade a free trial before the sale ends. The 30% comes off every year you pay for up front, 1 to 3 years; after that, renewals are at the plan's regular price. Ends 11:59 p.m. Eastern on Monday, November 30.

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.

Recent articles