- Node.js 18+ instalado
- npm o yarn
- Cuenta en Vercel (opcional pero recomendado)
# Instalar dependencias
npm install
# Ejecutar servidor de desarrollo
npm run dev
# Acceder en http://localhost:5173# Crear build optimizado
npm run build
# Preview del build localmente
npm run preview| Métrica | Valor |
|---|---|
| Build Time | ~15s |
| Bundle JS | ~500 KB |
| Bundle CSS | ~50 KB |
| Gzip Total | ~170 KB |
# Instalar Vercel CLI globalmente
npm install -g vercel
# Deploy (seguir pasos interactivos)
vercel
# Deploy a producción
vercel --prod- Pushear código a GitHub
- Ir a vercel.com
- Importar proyecto desde repositorio
- Vercel detecta Vite automáticamente
- Deploy automático en cada push
# Build
npm run build
# La carpeta 'dist/' está lista para subir a:
# - Netlify
# - Firebase Hosting
# - AWS S3 + CloudFront
# - Cualquier hosting estáticoUna vez deployado, estas son las rutas disponibles:
| Ruta | Descripción |
|---|---|
/ |
Splash screen |
/onboarding |
Tutorial inicial |
/signup |
Registro/Login |
/events |
Eventos próximos |
| Ruta | Descripción |
|---|---|
/home |
Landing principal |
/buscar |
Mapa + búsqueda |
/parqueo/:id |
Detalle de parqueo |
/reservar/:id |
Flujo de reserva |
/mis-reservas |
Historial + QR |
/favoritos |
Parqueos guardados |
/mensajes |
Lista de chats |
/mensajes/:id |
Chat individual |
/perfil/:userId? |
Perfil de usuario |
| Ruta | Descripción |
|---|---|
/host/dashboard |
Panel principal |
/host/garage |
Gestión de garajes |
/host/wallet |
Billetera |
/host/mensajes |
Lista de chats |
/host/mensajes/:id |
Chat individual |
Una vez deployado en HTTPS:
- Abrir la app en Chrome/Safari
- En Chrome: Menú → "Instalar EasyParker"
- En Safari (iOS): Compartir → "Agregar a pantalla de inicio"
- La app se instala como aplicación nativa
Actualmente la app funciona sin variables (datos mock).
Cuando migres a backend real, crear .env:
VITE_API_URL=https://api.tudominio.com
VITE_SUPABASE_URL=https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbG...Automático, no requiere configuración adicional.
Crear public/_redirects:
/* /index.html 200
En firebase.json:
{
"hosting": {
"rewrites": [{ "source": "**", "destination": "/index.html" }]
}
}location / {
try_files $uri $uri/ /index.html;
}- Verificar conexión a internet
- Leaflet requiere HTTPS en producción
- Revisar console por errores
- Debe estar en HTTPS
- Verificar que
manifest.jsonsea accesible - Limpiar caché del navegador
- Configurar rewrite de SPA (ver sección anterior)
- En Vercel es automático
- Verificar que localStorage esté habilitado
- La sincronización usa eventos
storageentre pestañas
- El navegador puede bloquear autoplay de audio
- El usuario debe interactuar primero con la página
-
npm run buildsin errores -
npm run lintsin warnings críticos - Testear flujo completo en localhost
- Verificar responsive en 320px-428px
- Probar PWA en dispositivo real
- Revisar console sin errores
- Testear modo Conductor y Anfitrión
- Vercel Analytics: Activar en dashboard
- Core Web Vitals: Revisar LCP, FID, CLS
- Console Errors: Monitorear con Sentry (opcional)
- Uptime: UptimeRobot o similar
Si algo falla después del deploy:
- Ir a dashboard → Deployments
- Seleccionar versión anterior
- Click en "Promote to Production"
git revert HEAD
git push origin main- Imágenes: Usar CDN (Cloudinary, Imgix)
- Caché: Configurar headers de caché largo para assets
- Compresión: Vercel/Netlify lo hacen automáticamente
- HTTPS: Obligatorio para PWA y geolocalización
¡Listo para deploy! 🚀