EN
Log in Create an account

How to deploy Nuxt on Saplo (Vue with SSR rendering)

Nuxt is to Vue what Next.js is to React - full server-side rendering that requires a long-running Node process in the background, not just a directory with static files. On Saplo, you run Nuxt as a managed service with automatic restarts, deploying directly from your Git repository.

Grzegorz Kalmus ·

Nuxt is a framework built on Vue with full server-side rendering - analogous to what Next.js is for React. However, SSR requires a long-running Node process kept in memory, not just a directory with static files, so regular shared hosting can't handle it. On Saplo, you run Nuxt as a managed service with automatic restarts, and nginx directs traffic from your domain to it.

Who is Nuxt on Saplo for?

Before you begin the installation, check if it's the right choice for your project:

  • A company website built with Vue that needs to perform well in search results - server-side rendering gives you an advantage that a classic SPA made of a static build alone cannot.
  • A headless store connected to its own API - Nuxt renders product pages on the server side, which helps with indexing.
  • A full-stack application - Nuxt has built-in server routes (/server/api), so you write a simple backend in the same project.
  • You want deployments with git push instead of manual Node process configuration - you connect the repository once, and Saplo builds and restarts the service automatically.

If the website does not require SSR (a fully static nuxt generate alone), a lighter and cheaper to maintain static stack from the same catalog will be a better fit.

Requirements

To set up Nuxt on Saplo, you need:

  • A Box on a L plan or higher - SSR keeps the Node process constantly in memory and re-renders every request, so it needs more RAM than a regular static site.
  • A minimum of 512 MB of free RAM and 3 GB of disk space for the application process itself.
  • A domain or subdomain *.saploapp.pl included in the price of every plan.
  • A Git repository if you want to use automatic deployment (optional to start, you can also upload the application archive .zip via the panel).

Step-by-step installation

  1. In the Saplo panel, go to App catalog and select Nuxt (category "Applications").
  2. Select a Box plan L or higher and the application name - a default subdomain will be created from it.
  3. Choose the Node.js version for the build (18, 20, or 22, default 22) and confirm the installation.
  4. The engine creates a minimal Nuxt 4 skeleton (in Nuxt 4, the application code moved to the app/ directory), builds the project, and starts a long-running .output/server/index.mjs process via supervisor on port 3000, while nginx proxies traffic from the domain to this port.
  5. After the installation is complete, the domain from step 2 shows a working Nuxt home page - from this point on, you deploy your own project to it.

Deploying your own code with Git

  1. In the application details, find the Git / CI-CD section and click "Connect GitHub", confirm the installation of the "Saplo Deploy" app, and select the repository with your Nuxt project.
  2. The saplo.yaml file must be located in the root directory of the repository.
  3. Commit and push the saplo.yaml file to the production branch (by default main).
  4. Each subsequent git push to this branch triggers a build and service restart. You can see the status in the Deployments tab.
  5. After the build, Saplo verifies the presence of the .output/server/index.mjs file. If it's missing, the deployment will fail instead of replacing the working version with a broken one.

Example of a minimal saplo.yaml file for Nuxt:

name: my-project
stack: nuxt
runtime:
  node: "22"
build:
  install: npm ci
  command: npm run build
start:
  command: node .output/server/index.mjs
  port: 3000

Nuxt on Saplo vs. Alternatives

Vercel for Nuxt Self-managed VPS Nuxt on Saplo
Billing Model Usage-based (functions and bandwidth), scales with traffic Fixed server cost, manual configuration Fixed Box cost
Git Deployments Yes, native Manual setup required (CI/CD) Yes, git push to production branch
SSR Process Launch Fully managed Manual pm2 or systemd Managed service with auto-restart
Migrating Existing Projects Starting point Build environment from scratch You add saplo.yaml, rest unchanged

FAQ

Can I generate a fully static version instead of SSR? Yes, nuxt generate gives a static output - then, in the App catalog, choose the static stack instead of Nuxt.

How much RAM does Nuxt need in practice? The recipe manifest specifies a minimum of 512 MB, but for real production traffic, it's better to plan for a Box L so that the SSR process has enough headroom for load spikes.

Will Nuxt 3 also work, since the scaffold generates Nuxt 4? Yes, the installation from the catalog sets up a basic Nuxt 4 scaffold, but you can deploy your own Nuxt 3 project via git push without any changes - the build and process launch work the same way.

What happens if the build fails? The previous working version of the application remains in place; Saplo does not replace it with a broken one.

Will I get SSL and my own Domain? Yes, the SSL certificate is automatic, and *.saploapp.pl is included in the price of every plan.

You can set up Nuxt on Saplo from scratch to a working Domain in a few minutes, and each subsequent git push restarts the service with the new version without your involvement. If the project doesn't require SSR, a lighter and cheaper-to-maintain static stack is waiting for you in the same catalog.

  • #Git Deploy
  • #JavaScript
  • #Nuxt
  • #Guide
  • #Vue