Vue.js Application Hosting
Deploy Vue.js applications with full-stack support. SSR with Nuxt.js, APIs, databases, and real-time features included.
Vue 3 and Composition API
Full support for Vue 3, Composition API, and all modern Vue features including script setup syntax and the latest reactivity primitives.
Nuxt.js Ready
Deploy Nuxt.js apps with SSR, SSG, or SPA modes. The Nitro server runs as a persistent process, not as serverless functions with timeout limits.
Vite Build Optimized
Lightning-fast builds with Vite. CloudPloy caches your node_modules between deploys so builds complete in seconds, not minutes.
Why Deploy Vue.js on CloudPloy?
Nuxt.js Works Best on Real Servers
Nuxt.js with SSR mode starts a Node.js server that handles every incoming request. Platforms that run Nuxt as serverless functions have to cold-start the entire Nuxt application on each new function instance, adding hundreds of milliseconds of latency on idle applications.
CloudPloy runs your Nuxt server as a persistent Node.js process. The application boots once and stays warm, handling all requests with consistent sub-100ms response times. Your Pinia stores, Nitro caches, and in-memory data stay alive between requests exactly as Nuxt was designed to work.
Nuxt's server routes under the server/api/ directory run with no execution time limits. Long-running operations like CSV exports, report generation, or image processing complete without being cut off mid-execution.
Full Stack Vue Without Stitching Services Together
A typical Nuxt production deployment on serverless platforms requires: the Nuxt server function, a separate database service, a Redis provider for caching, a CDN for static assets, and separate monitoring for each service. Each piece has its own billing, its own dashboard, and its own failure modes.
CloudPloy gives you all of this on one server. Your Nuxt app, PostgreSQL database, Redis cache, file storage, and background worker all run together. One monthly bill, one dashboard, one place to check when something goes wrong.
Deploy additional services alongside your Vue frontend - a separate API service, a webhook processor, or an admin panel - all managed from the same CloudPloy project. SSH access means you can debug any process directly when logs alone are not enough.
Complete Vue Ecosystem
🎯 Vue Frameworks
- • Nuxt.js 3
- • Quasar Framework
- • Gridsome
- • VitePress
- • Vue Router + Vite SPA
🎨 UI Libraries
- • Vuetify 3
- • Element Plus
- • PrimeVue
- • Ant Design Vue
- • Naive UI
📦 State Management
- • Pinia
- • Vuex 4
- • Vue Query (TanStack)
- • XState
- • Composable stores
🔧 Dev Tools
- • Vue DevTools 6
- • Vite
- • Vitest
- • TypeScript 5
- • ESLint + Vue plugin
Deploy Vue.js in Minutes
Push Your Code
Connect GitHub or GitLab and push your Vue.js project. CloudPloy detects Vue, Nuxt, and Quasar automatically from your package.json.
git push origin main
Auto-Detection and Build
CloudPloy detects your framework, installs dependencies, and configures the correct build and start commands for your Vue setup.
✓ Nuxt 3 detected ✓ Build: npm run build ✓ Start: node .output/server/index.mjs ✓ SSL certificate issued
Live in Seconds
Your Vue app is deployed with SSL, CDN for static assets, and server monitoring. Future pushes trigger automatic redeployment.
🚀 https://your-vue-app.cloudploy.com
Production Best Practices for Vue on CloudPloy
Nuxt 3 Server Configuration
For Nuxt 3 apps in SSR mode, the built output runs as a Node.js HTTP server. Configure the port via the NITRO_PORT environment variable. CloudPloy's Nginx reverse proxy handles HTTPS termination and forwards requests to your Nitro server on the configured port.
// nuxt.config.ts
export default defineNuxtConfig({
nitro: {
preset: 'node-server',
compressPublicAssets: true,
},
runtimeConfig: {
// Server-only secrets
dbUrl: process.env.DATABASE_URL,
// Public (client + server)
public: {
apiBase: process.env.API_BASE_URL
}
}
})
Use runtimeConfig instead of hardcoded environment variable references in your Vue components. This ensures proper SSR/CSR hydration and makes it easy to manage secrets through CloudPloy's environment variable panel.
Caching and Performance
Nuxt 3's Nitro server has a built-in caching layer. Use the cachedEventHandler utility in your server routes to cache expensive database queries or external API calls. Combined with Redis as the cache driver, this dramatically reduces database load under traffic spikes.
// server/api/products.ts
export default cachedEventHandler(
async (event) => {
const products = await db.query(
'SELECT * FROM products'
)
return products
},
{
maxAge: 60 * 5, // 5 minutes
name: 'products-list',
}
)
Configure CloudPloy's Redis instance as Nuxt's cache storage by setting NUXT_REDIS_URL in your environment variables. Cached responses persist between server restarts, so your application warms up instantly after a deploy.
Vue-Optimized Hosting Features
🎯 Vue Performance
- ✓ Persistent Nitro server (no cold starts)
- ✓ Automatic static asset CDN distribution
- ✓ Node modules caching between deploys
- ✓ Brotli compression for HTML/JS/CSS
- ✓ HTTP/2 for concurrent asset loading
🔄 Development Features
- ✓ Automatic deploys on Git push
- ✓ Preview environments per branch
- ✓ One-click rollback to any previous version
- ✓ Environment variables managed per environment
- ✓ Build log streaming in real time
🌐 Nuxt.js Full Stack
- ✓ SSR, SSG, and hybrid rendering modes
- ✓ Nuxt server routes with database access
- ✓ Nitro server running without time limits
- ✓ WebSocket support via Nuxt plugins
- ✓ Nuxt caching with Redis driver
📊 Monitoring
- ✓ Real-time application logs
- ✓ CPU and memory metrics
- ✓ Database query monitoring
- ✓ HTTP request/response tracking
- ✓ SSH access for direct debugging
Deploy Any Vue Configuration
Vue 3 with Composition API and Pinia
// stores/users.ts
import { defineStore } from 'pinia'
export const useUserStore = defineStore('users', () => {
const users = ref<User[]>([])
async function fetchUsers() {
const data = await $fetch('/api/users')
users.value = data
}
return { users, fetchUsers }
})
// pages/users.vue
<script setup lang="ts">
const store = useUserStore()
await store.fetchUsers()
</script>
<template>
<div>
<UserCard
v-for="user in store.users"
:key="user.id"
:user="user"
/>
</div>
</template> Nuxt 3 with Database Server Routes
// server/api/products/index.get.ts
import { pool } from '~/server/lib/database'
export default defineEventHandler(async (event) => {
const query = getQuery(event)
const limit = Number(query.limit) || 20
const offset = Number(query.offset) || 0
const result = await pool.query(
'SELECT * FROM products ORDER BY created_at DESC LIMIT $1 OFFSET $2',
[limit, offset]
)
return result.rows
})
// server/api/products/[id].put.ts
export default defineEventHandler(async (event) => {
const id = getRouterParam(event, 'id')
const body = await readBody(event)
const result = await pool.query(
'UPDATE products SET name=$1, price=$2 WHERE id=$3 RETURNING *',
[body.name, body.price, id]
)
return result.rows[0]
}) What Teams Build with Vue on CloudPloy
🛍 E-Commerce Sites
SEO-friendly online stores with Nuxt SSR for fast first render and indexable product pages, backed by a PostgreSQL product catalog and inventory database.
💼 Admin Dashboards
Complex data management interfaces with Nuxt server routes handling backend logic, Pinia for state management, and real-time updates via WebSockets.
📱 Progressive Web Apps
Offline-first applications with Nuxt PWA module, service workers, push notifications, and persistent data synced via a server-side API.
📝 Content Platforms
Blogs and documentation sites using Nuxt Content module with Markdown files served from the same server that handles user interactions and comments.
🌌 Real-Time Apps
Collaborative tools, live editors, and notification systems using Nuxt's WebSocket support with persistent server connections and no timeout limits.
🏢 Enterprise Applications
Large-scale internal tools with Vuetify or Element Plus, complex Pinia state management, role-based access control, and audit logging.
Frequently Asked Questions
Does CloudPloy support Nuxt 3 SSR mode?
Yes. Nuxt 3 in SSR mode builds a Nitro-powered Node.js server, which CloudPloy runs as a persistent process. This means no cold starts, no artificial function timeouts, and proper support for streaming responses, WebSockets, and long-running server logic. CloudPloy automatically configures Nginx as a reverse proxy in front of your Nitro server.
Which Node.js versions are supported for Vue apps?
CloudPloy supports Node.js 18.x, 20.x (LTS), and 22.x. Nuxt 3 requires Node.js 18 or higher. Add a .nvmrc file with your preferred version to your repository, and CloudPloy will use that version automatically during builds and at runtime.
Can I deploy a Vue SPA (without SSR) on CloudPloy?
Yes. A Vue SPA built with Vite produces a static dist folder that CloudPloy serves directly via Nginx. You can also run your Vite preview server as a process, though serving static files via Nginx is more efficient. Combine your SPA frontend with a separate Node.js or Python API service for backend functionality, all managed within the same CloudPloy project.
How does CloudPloy handle Nuxt environment variables?
Set your environment variables in the CloudPloy dashboard. Variables prefixed with NUXT_ are automatically mapped to Nuxt's runtimeConfig. For example, setting NUXT_API_SECRET in CloudPloy makes it available as runtimeConfig.apiSecret in your Nuxt app. Public variables are set with the NUXT_PUBLIC_ prefix.
Can I use Nuxt alongside a separate backend API?
Yes. CloudPloy lets you run multiple applications on the same server. Deploy your Nuxt frontend as one app and a separate Express, FastAPI, or Laravel backend as another app, each on its own port. Configure Nuxt's runtimeConfig.public.apiBase to point to your backend API service. Both apps share the same database and Redis instance, reducing infrastructure costs.
Does CloudPloy work with Quasar Framework?
Yes. Quasar running in SSR mode builds a Node.js server that CloudPloy supports natively. For Quasar SPA or PWA modes, the output is a static site that CloudPloy serves via Nginx. Quasar's electron and capacitor build targets are for desktop and mobile deployment, which are outside CloudPloy's scope, but web deployment modes are fully supported.
Vue.js Hosting Built for Real Applications
Deploy Your Vue.js App Today
Full-stack Vue hosting with Nuxt SSR, persistent processes, databases, and SSH access - the way Vue was meant to run.
Free forever plan • Deploy in minutes • Nuxt SSR supported • No cold starts