astro build from your Git repository and Cloudflare serves the dist folder. A site that renders pages on demand uses the Node.js adapter and runs as an application instead.
Before you begin
- A Sevalla company with a payment method, and a GitHub, GitLab or Bitbucket account for the repository. See Git providers.
- Node.js 24 or later on your computer.
Create the project
Create a project from Astro’sbasics template:
.gitignore, a Git repository and a build script that runs astro build.
Prepare the project for Sevalla
A static Astro site needs no changes.astro build writes every page to dist, as about/index.html for /about, which is how a static site serves it. Static sites take the Node.js version from their build settings, not from package.json, and the default, Latest LTS, meets Astro 7’s requirement of Node.js 22.22 or later.
Run npm run build && npm run preview and open http://localhost:4321 to check the build locally. Then push the repository that create astro made to your Git provider:
Deploy to Sevalla
1
Choose the repository
In the sidebar, click Static sites, then click Create static site. Under Source, click Private repository, then choose the Git provider, the Repository and the Branch.
2
Check the build settings
Under Build settings, Sevalla shows Framework detected: Astro and fills in the values. Check them:
3
Create the static site
Enter a Name under Details, then click Create static site. Sevalla starts the first deployment right away, and deploys every push to the branch while Auto-deploy is on.
Verify the deployment
- On the Deployments tab, wait for the deployment’s status to change to Deployed. The site’s Status on the Overview tab changes to Live.
- On the Overview tab, click Visit site. The Astro starter page opens on the site’s
*.sevalla.pagedomain.


Render pages on demand
Pages that run code for each request, such as API endpoints, authentication or pages that exportprerender = false, need a server. Build them with the Node.js adapter and deploy the project as an application.
Add the adapter, the start script and the Node.js version:
astro.config.mjs like this:
astro.config.mjs
The standalone server takes its port from
PORT, which Sevalla sets to the web process’s port (8080 by default). Commit and push the changes, then create the application:
1
Create the application
In the sidebar, click Applications, then click Create > Application. Under Source, click Private repository, then choose the Git provider, the Repository and the Branch. Under Location, choose a Data center. Keep the Size at H1 or choose a larger one, then click Create application. The application opens on its Overview tab with the status Not deployed yet: creating an application doesn’t deploy it.
2
Deploy
Click the Overview tab, then click Deploy now under Recent deployments. Check the Branch and click Deploy.
3
Turn on auto-deploy
To deploy every push to the branch automatically, click the Settings tab, then click Update auto-deploy in the Auto-deploy section. Turn on Auto-deploy and click Update auto-deploy. See Deployments.
storefront-x7k2m.sevalla.app. If the deployment fails, see Troubleshoot builds and deployments.
Astro’s hashed assets under /_astro/ are safe to cache for a long time: turn on the CDN on the application’s Networking tab to serve them from Cloudflare. See CDN and edge caching.
Add a custom domain
To serve the site from your own domain, such asshop.example.com, add the domain on the static site’s Domains tab and create the DNS records that Sevalla shows. Applications have a Domains tab too, but custom domains need a web process larger than H1. See Custom domains.