Ir al contenido

Buscar en la documentación

Busca en la documentación de Skiffly

Sube a internet un proyecto de React (Vite) o Next.js

Despliega una app de React hecha con Vite, una app de Vue o Svelte, o un proyecto de Next.js (estático o con servidor) desde tu computadora o desde GitHub, con variables de entorno, rutas del lado del cliente y tu propio dominio.

Casi todas las webs hechas con un asistente de IA son de dos tipos: una app de Vite (React, Vue, Svelte: lo que generan Lovable y Bolt) o una app de Next.js (lo que generan v0 y create-next-app). Las dos se despliegan con los mismos comandos; lo que cambia es qué corre en línea.

Vite: React, Vue, Svelte#

Una app de Vite se compila a una carpeta de archivos (dist/). Skiffly ejecuta npm run build y sirve dist/ con un servidor de archivos rápido: sin proceso de Node, casi sin memoria, y en el plan gratuito nunca se duerme.

npx skiffly login
npx skiffly init
npx skiffly up --yes
npx skiffly domain

Rutas como /about o /dashboard/settings (React Router, Vue Router) funcionan sin configurar nada: las rutas desconocidas responden con index.html y tu router se encarga.

Las variables de entorno se leen al compilar y deben empezar con VITE_:

npx skiffly variables set VITE_API_URL=https://api.ejemplo.com VITE_SUPABASE_URL=https://xxxx.supabase.co --skip-deploys
npx skiffly up

Todo lo que está en una variable VITE_ termina en el navegador: pon ahí solo claves públicas, nunca secretos.

Next.js#

Skiffly ejecuta next build y arranca next start. Los server components, las API routes, las server actions y el middleware funcionan: es un servidor de Node de verdad.

npx skiffly login
npx skiffly init
npx skiffly up --yes
npx skiffly domain

Revisa esto en package.json:

{
  "scripts": {
    "build": "next build",
    "start": "next start"
  }
}

Deja "start": "next start" sin -p 3000: la plataforma le pasa el puerto a Next.js con PORT.

Variables: las NEXT_PUBLIC_* se incrustan al compilar (ejecuta npx skiffly up después de cambiarlas); las del servidor (URL de la base de datos, secretos de API) se leen al arrancar.

¿Solo páginas estáticas? Si la web no tiene API routes ni código de servidor, agrega output: "export" en next.config: Skiffly sirve los archivos exportados como una app de Vite, más barato y sin dormirse en el plan gratuito.

next.config.mjs
export default { output: "export", images: { unoptimized: true } };

Desde GitHub en vez de tu computadora#

Sube el proyecto a GitHub y en el panel: New project → New service → GitHub repo y elígelo. El primer despliegue empieza enseguida y cada push a la rama vuelve a desplegar. Las variables se definen en la pestaña Variables del servicio.

Agregar un backend o una base de datos después#

Cuando el proyecto necesite login o guardar datos, agrégalos al mismo proyecto en vez de unir servicios sueltos: New service → Template → PostgreSQL te da una base de datos y un DATABASE_URL para tu app. La guía completa: Next.js + Postgres.

Si el build falla#

El log diceSolución
Module not found / Cannot find moduleel paquete se usa pero no está en package.json: npm install <nombre> y luego npx skiffly up
Type error: en Next.jsnext build revisa los tipos y next dev no: corrige el error (pégalo en tu asistente)
vite: not foundvite debe estar en devDependencies/dependencies, no solo instalado de forma global
la web muestra Cannot GET / o un error de Nodela salida del build no está donde se espera: mira Sitios estáticos y RAILPACK_SPA_OUTPUT_DIR

Siguiente paso: conecta tu propio dominio.