Viaje — Infraestructura social de movilidad para Venezuela
Inspiración
Viaje nació de una realidad que vivo todos los días en Venezuela: el sistema de transporte público está colapsado, la gasolina escasea, y miles de personas pierden 3-4 horas diarias en colas de buses o metros que no funcionan. Mientras tanto, los venezolanos que tienen vehículo hacen el mismo recorrido casa↔trabajo todos los días con asientos vacíos.
Las apps de movilidad existentes (Ridery, Yango, Yummy) están diseñadas para el modelo "on-demand" de países con poder adquisitivo alto. En Venezuela, donde el salario mínimo no alcanza para un viaje en Uber por semana, ese modelo es inviable.
La pregunta clave: ¿Y si en lugar de un servicio de transporte, construimos una plataforma para que vecinos que ya van en la misma dirección compartan el viaje?
Viaje no es un Uber. Es un sistema de carpooling planificado para el commute diario, con un costo que es una fracción del transporte tradicional, y que permite a los pilotos (conductores) cubrir su gasolina mientras llevan a personas que de otra forma no podrían moverse.
Qué aprendí
Sobre desarrollo asistido por IA
Esta es la lección más grande: una persona sola, con una idea clara y la herramienta correcta, puede construir lo que antes requería un equipo de 6-8 personas.
Trabajé con Claude (Anthropic) como mi partner técnico durante meses:
- 11.7 mil millones de tokens generados en la conversación
- $48,330 USD en costo bruto de API — absorbido por mi suscripción mensual
- 111 versiones del APK iteradas en desarrollo activo
No es magia: tuve que pensar cada decisión arquitectónica, validar cada cambio, escribir cada test mentalmente. Pero la velocidad de iteración fue brutal — fixes que tomarían 2 días humanos los resolvía en 20 minutos.
Sobre el contexto venezolano
- Pagos: No basta integrar Stripe. Hay que entender Pago Móvil (sistema bancario local), C2P, BCV (Banco Central de Venezuela) para tasa de cambio, y por qué un usuario común no tiene tarjeta de crédito internacional.
- Conectividad: La app debe funcionar con 3G lento, datos limitados, y modo offline parcial.
- Confianza: La gente desconfía de las apps. Por eso construimos un sistema de "Karma positivo" con badges venezolanos que premian la consistencia y el comportamiento social bueno:
| Tier | Puntos | Equivalente venezolano |
|---|---|---|
| Caminante | 0 | Apenas empieza |
| Motorizado | 50+ | Activo en la comunidad |
| Por Puesto | 200+ | Confiable, repetidor |
| Cacique de la Comunidad | 500+ | Pilar local |
| Tío/Tía de la Comunidad | 50+ (senior) | Adulto mayor reconocido |
Sobre diseño con usuarios reales
El usuario final no piensa en "gradientes lineales horizontales" — piensa en "se ve feo" o "se ve bonito". Aprendí que cuando un founder no es diseñador y la herramienta sí, hay que iterar visualmente, no técnicamente. Cada decisión de UI fue revisada con screenshots reales en BlueStacks y feedback inmediato.
Cómo lo desarrollé
Stack técnico
- Mobile: Expo SDK 54 + React Native 0.81.5 + TypeScript (solo Android al inicio — iOS pendiente por el costo Apple Developer)
- Backend: Supabase (PostgreSQL + RLS + Edge Functions + pg_cron) — sin servidor propio
- Mapas: MapLibre GL JS + OpenFreeMap (alternativa gratuita a Google Maps) + OSRM para rutas
- Pagos: Integración directa con APIs de Bancaribe (Pago Móvil C2P/B2P)
- Auth: Twilio para SMS + Supabase Auth + Truora (KYC venezolano)
- Analytics: Sistema propio con materialized views — sin Google Analytics
Filosofía arquitectónica
- Server-light, client-heavy: Toda la lógica de negocio vive en Edge Functions o RPCs de Postgres. No hay backend Node/NestJS aparte. Esto reduce costos a casi 0 mientras escalo.
- Feature flags + promo banners desde admin: Puedo activar/desactivar features en producción sin redeploy. Crítico para iterar con usuarios reales.
- Sistema de "modo real" toggleable: El admin puede apagar pilotos demo de un click, permitiendo demos controladas a inversores sin romper datos.
Métricas técnicas hasta hoy
- 3 capas de analytics: eventos básicos, screen tracking, comportamiento (scroll, tipeo, sensores)
- 2 modos de accesibilidad: Modo Senior (1.75× escala global) + Modo nocturno seguro
- 10 zonas mapeadas (5 en Caracas + La Guaira, Los Teques, Guarenas, Guatire, El Hatillo) con celdas hexagonales H3
- Push notifications vía FCM directo (sin Expo Push)
- SOS de emergencia con grabación de audio opcional (encriptada, acceso admin-only)
Desafíos que enfrenté
Técnicos
- Lockfile crisis (×3): El monorepo con pnpm + Expo SDK 54 + Android tenía conflictos transitivos brutales. Aprendí a usar
pnpm.overridesquirúrgicamente para forzar versiones SDK 54 cuando Expo 56 intentaba colarse. - Codegen nativo de React Native rompiéndose: Una vez borré caches gradle "por las dudas" y el APK quedó sin la clase
MainApplication. La app abría y se cerraba al instante. Lección: nunca borrarandroid/build/sin commit previo. Documenté esto en unBUILD_SAFETY.mdpara que el próximo Claude que trabaje en el repo no caiga en lo mismo. - SVG vs LinearGradient nativo: Pasé días peleando con SVGs externos de Illustrator que no cubrían el 100% de los headers. La solución resultó ser
<Svg>con<LinearGradient>inline + medir el View cononLayout. Cero ambigüedad.
De producto
- Vacío legal del carpooling en Venezuela: No existe regulación clara. Tuvimos que diseñar el sistema para que sea legalmente defensible — los pilotos NO son taxistas, son personas compartiendo costos. La estructura de comisiones y la wallet evitan ser un "operador de transporte".
- Wallet sin SUDEBAN: Operar una wallet en Venezuela sin licencia bancaria requiere arquitectura específica — saldos en custodia, no en pool propio, transparencia total.
- Diseño con founder no-diseñador: Yo no soy diseñador. Cada iteración visual fue trial-error con screenshots. Aprendí color theory básico: por qué un gradient blanco→negro se ve como "mancha negra" sobre azul pero como "sombra elegante" sobre blanco. Es física, no bug.
Humanos
- Soledad del founder técnico: Sin equipo, sin co-founder, sin mentor formal. La IA llenó parte del rol pero no puede dar palmadas en la espalda cuando algo sale mal. Aprendí a documentar el "por qué" de cada decisión para no olvidarlo.
- Convencer a pilotos beta: Los primeros 10 pilotos no creían que la app iba a funcionar. Tuve que hacer demos individuales, llamar uno por uno, y comprometerme a que si no funcionaba, les devolvía el tiempo invertido en doble.
Lo que viene
Esta semana hago el primer test real con un piloto en Caracas. Tenemos $5K de un SAFE inicial para los primeros 3 meses.
Metas Año 1:
- 5,000 usuarios activos en Caracas
- 200 pilotos verificados con docs completos
- Modelo validado para expandir a Maracay y Valencia
Estoy compitiendo en Gemini X Prize no por el premio, sino por la validación: si esta solución resuelve para Venezuela, resuelve para muchos países donde el transporte público colapsó y la gente tiene vehículo pero no plata para Uber.
Viaje no es una app de transporte. Es infraestructura social para que los venezolanos vuelvan a moverse.
Built With
- android
- anthropic-claude
- bancaribe-api
- bcv-api
- claude-code
- edge-functions
- expo-location
- expo-secure-store
- expo-task-manager
- expo.io
- fcm
- firebase
- gradle
- h3-js
- kotlin
- maplibre-gl
- monorepo
- nestjs
- openfreemap
- osrm
- pago-movil
- pg-cron
- pnpm
- postgresql
- react-native
- react-native-svg
- react-navigation
- supabase
- truora-kyc
- twilio
- typescript
- vercel
- zustand
Log in or sign up for Devpost to join the conversation.