Deploying Your Site
Your exported static site can be hosted anywhere that serves HTML files. Stelae supports three auto-deploy targets (statichost.eu (recommended), git push, and Cloudflare Workers), and you can always download the archive and host it yourself.
Why deploy setup takes some effort
Setting up deploy is the most involved step of getting started with Stelae. Plan for 5 to 10 minutes the first time. The reason it’s involved is deliberate: your published static site goes to a hosting account that you own (statichost.eu, Cloudflare, or your own git host), not to Stelae’s servers. That keeps your live site fully independent of us. If Stelae ever shuts down, your published site keeps running on your host. If you stop liking your host, you can swap to another deploy target without leaving Stelae. No lock-in either way.
The trade-off is that setup involves two accounts and a credential exchange. You do this once per site. After that, every deploy is a single click in the dashboard, the same as it would be in a fully integrated setup.
Don’t have time right now? Skip deploy setup for the moment. You can open the editor and start building in WordPress immediately. Come back to deploy setup whenever you’re ready and have a few minutes.
Auto-Deploy: statichost.eu (recommended)
The simplest option. Stelae uploads your static site directly to statichost.eu, EU-based static hosting with a free tier. No git repository needed.
Setup
Sign up at builder.statichost.eu and add a new site. Choose direct upload (not git) and upload this starter zip when prompted.
For the site name, the dashboard’s deploy modal pre-fills the auto-generated subdomain that Stelae assigned to your site. Using that as your statichost.eu site name keeps the two in sync. The name doesn’t affect anything visitor-facing once you point a custom domain at the site, so feel free to pick something different if you prefer.
Go to Account and create an API token. Set the expiry to 1 year (the longest option statichost.eu offers). When it expires, your deploys will start failing; come back to this step and replace the token with a fresh one.
In your Stelae dashboard, click “Configure deploy” on your site card and choose “statichost.eu.” Enter your statichost.eu site name and API token.
Trigger an export from WordPress. Stelae uploads the static
files to statichost.eu automatically. Your site will be live
at your-site.statichost.page (custom domains available).
statichost.eu is a Swedish company running on European infrastructure. Their free Hobby plan includes custom domains with HTTPS and a Europe-wide CDN, ideal if you want your site hosted entirely within the EU. This documentation is hosted on statichost.eu.
Auto-Deploy: Git Push
Stelae can push your static files to any git repository. Connect that repository to a static hosting service and your site updates automatically every time you export. This is the most flexible option and works with free EU and US hosts.
How it works
- You provide a git repository URL (SSH format).
- Stelae generates an SSH deploy key. You add it to the repository with write access.
- On each export, Stelae creates a fresh commit with your static files and force-pushes to the branch.
- Your hosting service detects the push and serves the updated site.
Setup
Create a new repository on your preferred git host. It can be empty; Stelae will populate it.
In your Stelae dashboard, click “Deploy” on your site card
and choose “Git push.” Enter the SSH clone URL
(e.g. git@github.com:you/your-site.git) and the branch name
(usually main). Click “Generate deploy key.”
Copy the public key shown in the dashboard. Add it to your repository as a deploy key with write access. On GitHub, this is under Settings → Deploy keys → Add deploy key. On other hosts, look for SSH keys or deploy keys in the repository settings.
Click “Test connection” to verify the key works. Then trigger an export from WordPress. Stelae pushes the static files to your repository automatically.
Recommended hosts
| Host | Region | Free tier | Notes |
|---|---|---|---|
| statichost.eu | EU (Sweden) | Yes (10 GB/month bandwidth) | European infrastructure (Hetzner). Custom domains with automatic HTTPS. Connect your repo and set it to deploy on push. |
| GitHub Pages | US | Yes | Enable Pages in repository settings. Set the source to the branch Stelae pushes to. Custom domains with HTTPS supported. |
| Self-hosted (Forgejo/Gitea) | Your server | Your own infra | Run your own git host and serve the repository contents with any web server. Full control over data location. |
Auto-Deploy: Cloudflare Workers
Cloudflare Workers serves your static files from Cloudflare’s global edge network. The free tier is generous enough for most personal and small-business sites. Note that Cloudflare is a US company.
Setup
Sign up at cloudflare.com if you don’t have one. The free plan works.
In your Cloudflare dashboard, go to My Profile → API Tokens → Create Token. Use the “Edit Cloudflare Workers” template. Copy the token.
In your Stelae dashboard, click “Deploy” on your site card
and choose “Cloudflare Workers.” Paste your Cloudflare
API token and account ID. Choose a Worker name (this becomes part of your
.workers.dev URL unless you add a custom domain).
From your WordPress admin, click the “Deploy” menu item in the sidebar and trigger a deploy. After the export completes, it’s automatically deployed to your Cloudflare Worker. The dashboard shows the live URL.
Custom domains on Cloudflare
To use your own domain, add it to Cloudflare and create a route that maps your domain to the Worker. Cloudflare provides free automatic HTTPS for custom domains. This is configured in the Cloudflare dashboard, not in Stelae.
Manual Hosting: Download and Upload
If you prefer a different host or want full control, download the archive from your Stelae dashboard and unpack it:
unzip my-site-export.zip
The unpacked directory is a complete static website. Upload it to any host that serves static files.
Other popular static hosts
| Host | Free tier | How to deploy |
|---|---|---|
| Cloudflare Pages | Yes (generous) | Drag and drop the unpacked folder in the Cloudflare Pages dashboard, or connect a Git repo. |
| Netlify | Yes | Drag and drop the unpacked folder at app.netlify.com/drop. |
| Vercel | Yes | Push to a Git repo and import in the Vercel dashboard. Or use the Vercel CLI: vercel deploy. |
| AWS S3 + CloudFront | Pay-as-you-go (cheap) | Upload to an S3 bucket configured for static hosting, with CloudFront as CDN. |
| Any web server | Varies | Upload via FTP/SFTP to any server running Apache, Nginx, Caddy, or any HTTP server. |
The archive download is always available regardless of whether you use auto-deploy. Your static files belong to you. If you leave Stelae, your site keeps running wherever you hosted it.
Custom Domains
Custom domain configuration happens at your hosting target, not in Stelae. Stelae produces the static files; your host serves them. Every major static host listed above supports custom domains with free automatic HTTPS.
Your Published URL
The published URL sits at the top of each site card in your dashboard. Stelae fills it in
automatically when it can detect the deploy URL: statichost.eu serves at
yoursite.statichost.page, Cloudflare Workers serves at
yoursite.account.workers.dev. In two cases the auto-detected URL isn’t
what you actually want:
- Custom domains. You’ve pointed
example.comat your CF Pages or statichost deploy, but Stelae only knows about the auto-generated subdomain because custom-domain setup happens at your host, not here. - Git deploys. GitHub Pages / Netlify / Vercel / self-hosted static servers publish wherever you configure them to. Stelae has no way to discover the final URL from the git push, so the field stays empty until you fill it in.
In either case, click the pencil icon next to the URL on your site card and enter the
canonical URL (HTTPS only). The ? next to the pencil opens a one-line
explanation in the dashboard itself.
Why this matters: sitemaps. Each export bakes the published URL into the
sitemap as the absolute base for every <loc> entry. If the published URL
doesn’t match where the site actually lives, the sitemap points at the wrong host and
Google Search Console rejects it (“URLs not allowed”). Setting the value here
once, after your first deploy or after pointing a custom domain at the site, is what makes
the submitted sitemap valid.
Updating Your Site
To update your live site:
- Open your Stelae editor and make your changes in WordPress.
- Preview the changes to make sure they look right.
- Click “Deploy” in the WordPress admin sidebar to generate a fresh static archive.
- The new version is auto-deployed (or download and re-upload manually).
There is no incremental deploy. Each export is a complete snapshot of your site. This keeps things simple and ensures your live site is always a known-good copy of what you previewed.