Static sites are easy to host; server-rendered apps are where deployment gets real. An SSR app is a living process that renders pages on demand, holds environment secrets, and needs restarting when it misbehaves. That used to mean a DevOps hire. On managed platforms like Sevalla it means a checklist.
Why SSR at all
Server rendering exists for good reasons: pages arrive complete, which search engines and slow devices both appreciate. If you are weighing the rendering decision itself, Nuxt rendering modes explained covers the trade-offs; this article assumes you have chosen SSR and need it running in production.
The deployment checklist
- Build and start commands. The platform needs to know how to compile the app and how to launch the server process, usually two lines of configuration.
- Environment variables. API keys and database URLs live in the platform's encrypted settings, never in the repository. Public and secret values are different tiers; treat them that way.
- Node version pinning. Declare the runtime in your manifest so the build machine matches your laptop.
- Health checks. A route that answers quickly lets the platform detect a wedged process and restart it before users notice.
After the first deploy
Deployment is the start of operations, not the end. Watch the logs for the first week, wire up an uptime check, and know what you will roll back to; platforms that deploy from Git make rollback as simple as redeploying the previous commit. When something does go wrong, the difference between a bad hour and a bad day is the observability you set up in advance. And once traffic grows, put a CDN in front and revisit what the edge can cache so your rendering server only does the work that is genuinely dynamic.