Despliega Astro + Convex en Vercel: Configuración de Producción 2026
Guía paso a paso para 2026: despliega tu aplicación Astro + Convex en Vercel con deploy keys de producción, despliegues de vista previa, dominios personalizados, monitorización y costes.
Actualizado Publicado 19 min de lectura

Astro and Convex
Part 2 of 2
Ahora que has construido una aplicación de chat en tiempo real con Astro y Convex (Parte 1), es hora de desplegarla. En esta guía te muestro cómo desplegar tu aplicación Astro + Convex en Vercel con deploy keys de producción correctas, despliegues de vista previa aislados y una monitorización adecuada — todo actualizado para Astro 7.2, Convex 1.4x y Node 22.
Esta es la Parte 2 de la serie. Si aún no has construido la aplicación, empieza con la guía de la Parte 1.
¿Por qué desplegar una aplicación Astro + Convex en Vercel?
La versión corta: Vercel sirve el shell estático y Convex Cloud se encarga de todo lo que es tiempo real. Se complementan sin solaparse.
Qué proporciona Vercel
- Despliegues automáticos basados en Git en cada push
- Nivel Hobby gratuito para proyectos personales
- CDN global (Vercel Delivery Network) para una entrega rápida de recursos estáticos
- Despliegues de vista previa para cada pull request
- Detección automática de Astro — cero configuración del framework
- Analíticas y monitorización de rendimiento integradas
Qué gestiona Convex Cloud
- Base de datos en tiempo real con sincronización en vivo entre clientes
- Escalado automático — sin planificación de capacidad
- Funciones serverless con esquemas tipados
- Despliegues por entorno (dev, vista previa, producción)
- Logs de funciones, seguimiento de errores y analíticas de uso
La clave: el navegador se conecta a Convex directamente por WebSocket para los datos en tiempo real. Vercel solo sirve el bundle de HTML/CSS/JS. Por eso esta combinación funciona — cada plataforma hace lo que mejor sabe hacer.
Qué ha cambiado en esta edición de 2026
Si vuelves de la versión de 2025, esto es lo diferente:
- Astro 7.2 — Vite 8 + Rolldown, compilador de
.astrobasado en Rust, compilaciones un 15–61 % más rápidas. Requiere Node.js >= 22.12.0. Consulta los benchmarks de las compilaciones más rápidas de Astro 7. - Convex 1.4x — gestión de despliegues desde la CLI (
npx convex deployment create/select), deploy keys tipadas (prod:,preview:,dev:), alojamiento en la UE (Irlanda), y Convex ahora es open-source con opción de autoalojamiento. @astrojs/vercelv11 — requiere Astro 7+. Las antiguas exportaciones de subruta/serverlessy/staticse eliminaron en v10 — usa solo la importación por defecto.- Vercel Marketplace — ahora puedes crear y pagar Convex directamente a través de Vercel.
- Despliegues de vista previa — la configuración del artículo original apuntaba silenciosamente las compilaciones de vista previa a los datos de producción. Esta edición lo corrige con deploy keys separadas.
¿Actualizas desde la edición de 2025?
Ejecuta npx @astrojs/upgrade en tu proyecto para actualizar a Astro 7. También necesitarás Node.js >= 22.12.0. Consulta la guía actualizada de la Parte 1 para la ruta de migración completa.
Requisitos previos
Antes de empezar, asegúrate de tener:
- Node.js >= 22.12.0 y npm >= 9.6.5 (
node -vpara comprobarlo) - Un proyecto Astro + Convex existente — sigue nuestra guía de la Parte 1 para construir uno, o empieza rápido con
npx create-convex@latest -t astro - Una cuenta de Vercel (el nivel Hobby gratuito sirve)
- Un repositorio de GitHub con tu código subido
- Una cuenta de Convex (el nivel gratuito incluye 1M de llamadas a funciones/mes)
Si empiezas desde cero, el camino más rápido:
npx create-convex@latest -t astro
cd my-app
npm run devEsto genera el patrón Astro + React + Tailwind v4 + Convex con la configuración withConvexProvider de la Parte 1.
Paso 1 — Prepara tu despliegue de producción de Convex
Crea un despliegue de producción
La forma más rápida: ejecuta npx convex deploy desde el directorio de tu proyecto:
cd your-project-directory
npx convex deployEsto crea un despliegue de producción si no existe, sube tus funciones y tu esquema, y genera una URL de producción.
Para más control, usa los comandos más nuevos de gestión de despliegues (Convex CLI v1.34.0+):
npx convex deployment create # interactive: pick type, region, reference
npx convex deployment select # switch which deployment the CLI targets
npx convex deployment usage # see usage vs limits (v1.43.0+)Genera una deploy key de Convex
La ruta del dashboard para las deploy keys ha cambiado
La antigua ruta “Settings → Deploy Keys” está desactualizada. Las deploy keys ahora se crean por despliegue en la página Deployment Settings.
- Ve al Dashboard de Convex
- Selecciona tu proyecto y navega a tu despliegue de producción
- Ve a Deployment Settings → Deploy keys
- Haz clic en Generate a deploy key (o “Generate Production Deploy Key”)
- Selecciona el permiso
deployment:deploy - Copia la clave — la necesitarás para Vercel
La clave tendrá el formato prod:your-deployment|abc123.... Convex usa deploy keys tipadas:
| Tipo de clave | Formato | Caso de uso |
|---|---|---|
| Producción | prod:deployment-name|... |
Entorno Production de Vercel |
| Vista previa | preview:team:project|... |
Entorno Preview de Vercel |
| Desarrollo | dev:deployment|... |
Compilaciones locales/de CI |
También puedes generar claves desde la CLI:
npx convex deployment token create my-ci-key --save-envNota sobre la región de la UE
Convex ahora ofrece EU West (Irlanda, aws-eu-west-1) en todos los planes, incluido el gratuito. Si estás en Europa, esto significa menor latencia para tus usuarios.
Alojamiento en la UE disponible
EU West está disponible en todos los planes. El precio de los recursos de pago es 1,3x el de EE. UU. El uso incluido del nivel gratuito no se aplica a los despliegues en la UE — se facturan bajo demanda. Las regiones no se pueden migrar después de la creación (solo exportar/importar). Selecciona la región al crear tu despliegue.
Paso 2 — Sube el código a GitHub
Flujo estándar de git, con un añadido: haz commit del directorio convex/_generated/:
git remote add origin [email protected]:youruser/your-repo.git
git branch -M main
git add -A
git commit -m "initial commit with convex generated code"
git push -u origin mainHaz commit de convex/_generated/
Desde Convex CLI v1.28.0, se recomienda hacer commit de convex/_generated/. El paso de codegen a menudo requiere un despliegue para las variables de entorno, así que mantener el código generado en el control de versiones evita problemas durante las compilaciones de CI.
Paso 3 — Despliega en Vercel
Aquí es donde desplegamos tu aplicación Astro + Convex en Vercel. La sobrescritura del comando de compilación es la clave: le dice a Convex que inyecte la URL del despliegue y suba las funciones antes de que Astro compile.
Añade el adaptador de Vercel para Astro
npx astro add vercelEsto instala @astrojs/vercel v11 y lo añade a tu astro.config.mjs.
Adaptador opcional para sitios estáticos
Si tu sitio es totalmente estático (como la app de chat de la Parte 1 — solo hidratación de islas en el cliente), el adaptador es técnicamente opcional. Solo lo necesitas para SSR/rutas bajo demanda, Vercel Web Analytics u optimización de imágenes de Vercel. Para la mayoría de las apps, instálalo de todos modos — es un comando y te abre esas funciones más adelante.
Importante: @astrojs/vercel v10+ eliminó las exportaciones de subruta /serverless y /static. Usa la importación por defecto:
// astro.config.mjs
import { defineConfig } from 'astro/config';
import vercel from '@astrojs/vercel';
export default defineConfig({
adapter: vercel(),
});Si más adelante necesitas SSR u opciones avanzadas:
export default defineConfig({
output: 'server',
adapter: vercel({
maxDuration: 30,
// isr: true,
// middlewareMode: 'edge', // replaces old edgeMiddleware: true
// skewProtection: true,
}),
});Configura los ajustes de compilación
- Ve a vercel.com/new e inicia sesión con GitHub
- Haz clic en Import junto a tu repositorio — Vercel detecta Astro automáticamente
- Configura los ajustes de compilación:
| Ajuste | Valor |
|---|---|
| Framework Preset | Astro |
| Build Command | npx convex deploy --cmd 'npm run build' |
| Output Directory | dist |
| Install Command | npm install |
Qué hace el comando de compilación: npx convex deploy lee CONVEX_DEPLOY_KEY, inyecta CONVEX_URL en el entorno de compilación, sube tus funciones y tu esquema al despliegue de producción y después ejecuta npm run build. Astro recoge CONVEX_URL en tiempo de compilación (vía astro:env de la Parte 1) y la incorpora en el bundle del cliente.
Configura la variable de entorno CONVEX_DEPLOY_KEY
Haz clic en Environment Variables en los ajustes del proyecto de Vercel y añade:
| Variable | Valor | Entorno |
|---|---|---|
CONVEX_DEPLOY_KEY |
prod:your-deployment|abc123... |
Production |
Limítala solo a Production
Configura CONVEX_DEPLOY_KEY solo para el entorno Production. Si también quieres despliegues de vista previa con su propio backend de Convex, consulta el Paso 4 — no copies simplemente la clave de producción a Preview.
Despliega
- Revisa tu comando de compilación y la variable de entorno
- Haz clic en Deploy
- Vercel compila el proyecto — esto tarda un par de minutos
- Tu sitio está en vivo en
https://your-project.vercel.app
Verifica que funciona: abre la URL y luego abre la misma URL en una segunda pestaña del navegador. Envía un mensaje en una pestaña — debería aparecer al instante en la otra. Eso confirma que la conexión en tiempo real de Convex funciona contra tu despliegue de producción.
Alternativa con Vercel Marketplace (opcional)
¿Usar Vercel Marketplace en su lugar?
En lugar de crear Convex por separado, puedes crearlo y gestionarlo a través de Vercel:
npx convex login --vercel
npm create convex@latest -- --with-vercel-jsonRequisitos:
- Los entornos Production + Preview deben estar habilitados
- Custom Prefix debe estar vacío
Esta vía factura Convex a través de Vercel y configura automáticamente las variables de entorno. La sobrescritura del comando de compilación es la misma: npx convex deploy --cmd 'npm run build'. Elige una vía u otra — no las mezcles.
Paso 4 — Configura los despliegues de vista previa de Vercel
Esta es la mayor mejora de corrección respecto al artículo de 2025. La configuración original usaba una única deploy key de producción — lo que significaba que el frontend de cada Preview Deployment de Vercel apuntaba al backend de Convex de producción. Las apps de vista previa leían y escribían datos de producción.
Clave solo de producción = las vistas previas tocan datos de producción
Si solo configuras CONVEX_DEPLOY_KEY para el entorno Production, cada compilación de vista previa de Vercel obtiene la URL de Convex de producción. Tu app de vista previa leerá y escribirá datos reales de producción. Arréglalo con una deploy key de Preview separada.
Genera una deploy key de Preview separada
- En el Dashboard de Convex, ve a la página Settings de tu proyecto
- Haz clic en Generate Preview Deploy Key
- Copia la clave — tendrá un prefijo
preview:
En los ajustes de tu proyecto de Vercel, añade una segunda variable de entorno:
| Variable | Valor | Entorno |
|---|---|---|
CONVEX_DEPLOY_KEY |
prod:your-deployment|abc123... |
Production |
CONVEX_DEPLOY_KEY |
preview:team:project|xyz789... |
Preview |
Sí, el mismo nombre de variable con valores distintos limitados a entornos diferentes. Vercel lo gestiona: las compilaciones de Production obtienen la clave de producción y las de Preview obtienen la clave de vista previa.
Siembra datos en los backends de vista previa nuevos
Opcionalmente, siembra datos en los backends de vista previa nuevos con el flag --preview-run:
npx convex deploy --cmd 'npm run build' --preview-run 'seedMessages'Esto ejecuta la función seedMessages después de desplegar en un nuevo backend de vista previa. Útil para datos de demostración o smoke tests.
También puedes controlar la reutilización de backends de vista previa con --preview-create y --preview-name.
Vida útil de los despliegues de vista previa
Los despliegues de vista previa se eliminan automáticamente tras un período determinado:
| Plan | Vida útil |
|---|---|
| Free / Starter | 5 días |
| Professional+ | 14 días |
Los despliegues de vista previa siguen en beta a septiembre de 2026. Funcionan, pero espera algún que otro detalle sin pulir.
Paso 5 — Añade un dominio personalizado
Configura en Vercel
- Ve al dashboard de tu proyecto → Settings → Domains
- Haz clic en Add Domain
- Introduce tu dominio (p. ej.,
myapp.example.com) - Vercel te da las instrucciones de DNS — añade el registro CNAME en tu proveedor de DNS
- Los certificados SSL se aprovisionan automáticamente con redirecciones HTTP → HTTPS
La propagación de DNS suele tardar 5–10 minutos. Cuando el estado muestre “Valid” en Vercel, has terminado.
Clerk requiere un dominio personalizado
Si planeas añadir autenticación (la Parte 1 lo menciona de pasada), ten en cuenta que Clerk no admite dominios *.vercel.app. Configura un dominio personalizado antes de integrar Clerk u otros proveedores de autenticación similares.
Paso 6 — Monitoriza y analiza tu aplicación en producción
Vercel Web Analytics
El antiguo precio de “20 $/mes” ya no existe. Vercel Web Analytics ahora está disponible en todos los planes con 50.000 eventos/mes incluidos, y después 3 $ por cada 100.000 eventos. Un add-on Plus opcional cuesta 10 $/mes.
Para configurarlo en Astro:
npm i @vercel/analyticsAñade el componente a tu layout:
---
// src/layouts/Base.astro
import Analytics from '@vercel/analytics/astro';
---
<html lang="en">
<head>
<meta charset="utf-8" />
<Analytics />
</head>
<body><slot /></body>
</html>Luego actívalo en el dashboard de Vercel: Analytics → Enable.
Speed Insights y logs de runtime
- Speed Insights básico es gratis en todos los planes. Plus cuesta 10 $/proyecto/mes para métricas avanzadas.
- Runtime Logs está disponible en planes Pro+ para depurar la ejecución de funciones serverless.
Monitorización de Convex
En el Dashboard de Convex:
- Pestaña Logs — monitoriza la ejecución de funciones en tiempo real
- Health & Insights — métricas de rendimiento y seguimiento de errores
- Usage Analytics — operaciones de base de datos y recuento de llamadas a funciones
Desde la CLI:
npx convex insights # quick health check (v1.32.0+)
npx convex deployment usage # usage vs limitsLas env vars de Convex no son las env vars de Vercel
Los secretos de las funciones de Convex (claves de API para auth, rate limiting, etc.) viven en el despliegue de Convex, no en Vercel. Configúralos por despliegue:
npx convex env set SENDGRID_API_KEY 'your-key'
npx convex env list
npx convex env default set MY_KEY 'value' # project defaults for new deploymentsHasta 512 variables, valores de hasta 8 KiB cada uno. Si añades componentes de auth o rate-limiting de la Parte 1, sus env vars deben configurarse en cada despliegue (dev + prod + vistas previas).
Verifica el despliegue y resolución de problemas
Verifica tu despliegue
- Visita tu URL de producción de Vercel — la app carga sin errores
- Abre la app en dos pestañas del navegador y confirma que la sincronización en tiempo real funciona (envía un mensaje en una y velo en la otra)
- Revisa Convex Dashboard → Logs — deberías ver llamadas a funciones desde la URL de producción
- Ejecuta
npx convex deployment usagepara confirmar actividad en el despliegue de producción - Revisa la pestaña Network de las devtools del navegador buscando conexiones WebSocket a tu URL de Convex
Errores comunes y soluciones
La compilación falla por falta de CONVEX_URL
La configuración de astro:env de la Parte 1 hace que astro build falle si CONVEX_URL no está configurada en tiempo de compilación. npx convex deploy --cmd la inyecta automáticamente.
Si la compilación sigue fallando:
- Confirma que
CONVEX_DEPLOY_KEYestá configurada en las variables de entorno de compilación de Vercel (no solo en runtime) - Verifica que la deploy key apunta al despliegue correcto
- Como último recurso, especifica el nombre de la env var explícitamente:
npx convex deploy --cmd-url-env-var-name CUSTOM_CONVEX_URL --cmd 'npm run build'Los despliegues de vista previa escriben en datos de producción
Esto ocurre cuando solo tienes una CONVEX_DEPLOY_KEY de Production. Cada compilación de vista previa obtiene la URL de Convex de producción.
Solución: genera una deploy key de Preview separada y añade CONVEX_DEPLOY_KEY limitada al entorno Preview en Vercel. Consulta el Paso 4.
El tiempo real funciona en local pero no en producción
- Abre las devtools del navegador en la URL de producción y revisa la pestaña Network buscando conexiones WebSocket
- Verifica que la
CONVEX_URLdel bundle desplegado coincide con tu despliegue de producción - Revisa la pestaña Logs del Dashboard de Convex buscando peticiones entrantes
- Confirma que el despliegue de producción existe y está activo en el dashboard
Error de deploy keys mezcladas
Desde Convex CLI v1.30.0, usar --preview-create con una clave que no es de preview lanza un error. No mezcles flags de preview con claves de producción. Mantén las compilaciones de producción y de vista previa separadas.
convex/_generated/ desactualizado tras actualizar
Después de actualizar Convex o cambiar tu esquema, regenera los tipos:
npx convex dev # regenerates and watches for changes
npx convex codegen # one-shot regenerationLuego haz commit del directorio convex/_generated/ actualizado.
Proveedores de auth y dominios *.vercel.app
Clerk y Auth0 deben permitir tu URL de Convex de producción. Clerk no admite dominios *.vercel.app — necesitas un dominio personalizado antes de añadir auth. Planifícalo pronto si piensas seguir los siguientes pasos de auth de la Parte 1.
Costes y límites
Ambas plataformas tienen niveles gratuitos reales, pero con matices que conviene conocer de antemano.
Precios de Convex
| Plan | Precio | Incluye | Límites clave |
|---|---|---|---|
| Free & Starter | 0 $/mes | 1M de llamadas a funciones, 0,5 GB de almacenamiento de DB | Concurrencia S16 (16 consultas concurrentes), 40 despliegues |
| Professional | 25 $/desarrollador/mes | 25M de llamadas a funciones | Backups diarios, dominios personalizados, streaming de logs, 300 despliegues |
| Business & Enterprise | mínimo 2.500 $/mes | Personalizado | BAA, SLA, soporte dedicado |
Excedentes en Free/Starter: 2,20 $ por cada 1M adicional de llamadas a funciones, 0,22 $/GB de almacenamiento.
El alojamiento en la UE añade un multiplicador de 1,3x sobre los precios de recursos de pago, y el uso incluido del nivel gratuito no se aplica a los despliegues en la UE. Si te preocupan los costes y estás en Europa, empieza con US East y migra más tarde si la latencia importa.
Vuelve a verificar los precios antes de publicar
Los precios de Convex han ido evolucionando. Consulta convex.dev/pricing para las cifras más recientes antes de desplegar.
Precios de Vercel
| Plan | Precio | Detalles clave |
|---|---|---|
| Hobby | 0 $/mes | Uso personal, no comercial. 1M de edge requests, 100 GB de Fast Data Transfer |
| Pro | 20 $/mes | Incluye 20 $ de crédito de uso. Asientos extra a 20 $/mes cada uno |
Vercel Hobby es no comercial
El nivel Hobby es para proyectos personales que no generan dinero. Si tu proyecto secundario genera ingresos (incluso con publicidad), técnicamente necesitas Pro a 20 $/mes. Consulta vercel.com/pricing para los términos actuales.
Vía de escape: autoalojamiento
Convex ahora es open-source (get-convex/convex-backend, ~12,5k estrellas). Puedes autoalojarlo con Docker o un binario precompilado, usando SQLite o Postgres como backend. Esta es la vía de escape si te quedas corto con el nivel gratuito o necesitas control total.
Para la configuración detallada, consulta autoalojar Convex con Docker Compose y los benchmarks de Convex autoalojado frente al nivel gratuito en la nube.
Si también quieres autoalojar el frontend, proveedores como Hetzner ofrecen VPS europeos asequibles. Echa un vistazo a alojar Astro en tu propio VPS y a alternativas autoalojadas a Vercel como Coolify para esa vía.
Los precios de los VPS subieron en general en 2026 — si estás replanteándote una máquina alquilada, mira qué cambió y cuándo gana un mini PC.
Conclusión
Has desplegado tu aplicación Astro + Convex en Vercel con una configuración lista para producción. Esto es lo que tienes:
- Despliegue de producción con deploy keys tipadas correctas limitadas al entorno adecuado
- Despliegues de vista previa aislados de los datos de producción — cada PR obtiene su propio backend de Convex
- Dominio personalizado con SSL automático
- Monitorización mediante Vercel Web Analytics (gratis, 50K eventos/mes) y los logs del Dashboard de Convex
- Costes claros — ambos niveles gratuitos son reales, con rutas de actualización conocidas
El flujo de trabajo de desarrollo sigue siendo simple: desarrolla en local con npm run dev y npx convex dev, haz push a GitHub y Vercel se encarga del resto. Los despliegues de vista previa te dan un entorno de staging por pull request sin infraestructura extra.
Si Vercel no es la opción adecuada, también puedes desplegar tu sitio Astro en Cloudflare o probar a desplegar Astro estático en Bunny.net. La configuración de Convex sigue siendo la misma — solo cambia el alojamiento del frontend.
Empieza con la Parte 1: Construye la App

