Dónde estamos
El código está adelantado; producción y el negocio, no
Del 22 al 23 de octubre se completó el recorrido hasta el pago y se agregó el cobro con QR de Upay, probado con un simulador porque todavía no hay credenciales. Encima se armaron las liquidaciones: emma cobra los pagos online, descuenta su comisión y le transfiere el neto al propietario en dos cortes por mes (el 15 y el último día hábil). El 29 de octubre se integró todo al backend.
La app está caída. La base de datos se quedó sin servicio y, sin base, nadie puede entrar, pagar ni usar el panel. Lo primero es decidir dónde va a vivir la base (abajo).
- Invitaciones, KYC, import de CSV y login revisados de punta a punta, con altas por autoservicio cerradas por defecto.
- Varios intentos de cobro por pago (link o QR) y un único punto que acredita, con el monto que confirma la pasarela.
- QR de Upay con webhook firmado que siempre reconfirma antes de acreditar, y simulador local.
- Liquidaciones netas: pantalla del admin, aviso por email y estado en Cobranzas para el propietario.
- Correo modelo para pedirle a Upay el alta y el sandbox, enviado por Slack el 29/10.
Decisión urgente · para el equipo
¿Dónde vive la base de datos de emma?
La base de producción está en Neon con el plan gratis, que da 100 horas de cómputo por mes. La API la consulta todo el tiempo y no la deja dormir, así que el cupo dura unos 16 días. Se agotó alrededor del 20 de octubre y desde entonces la base no responde.
- Por qué es crítico: todo emma depende de la base. Sin ella no hay login, cobros, liquidaciones ni panel.
- Neon no es imprescindible: emma usa Postgres estándar, sin nada propio de Neon. Puede vivir en cualquier proveedor; cambiar es copiar los datos y cambiar una variable.
- Los datos actuales están trabados hasta que se renueve el cupo (probablemente el 1/11) o se pase Neon a un plan pago. Destrabarlo un rato para copiarlos cuesta centavos, porque se paga por hora de uso.
Lo que revisamos del ecosistema y no conviene para la base:
- Contabo (la VM de desarrollo): se podría, pero mezcla producción con la máquina donde trabaja Claude, obliga a abrir un puerto a internet y deja backups y caídas a nuestro cargo.
- Cloudflare: no ofrece Postgres. D1 es SQLite y obligaría a reescribir el backend. Sí sirve para el DNS y para guardar documentos (R2).
- Vercel: su Postgres es Neon, con los mismos límites.
- Supabase gratis: funcionaría, pero es un proveedor nuevo y sin garantías para un producto que mueve plata.
Pregunta para el equipo: ¿alguien de afuera usó la app en producción? Por ejemplo, propietarios que pidieron acceso, cuentas reales o contratos cargados. Si todo son pruebas del equipo, se puede arrancar con la base vacía y es más rápido. Si hay dudas, se copia todo.
Cómo leer la lista
Sin esto la app no funciona o no se puede salir al piloto.
Tiene que estar resuelto antes del piloto con personas reales.
Para operar tranquilos y crecer; puede esperar unas semanas.
Corto plazo · noviembre
Poner en producción lo que ya está hecho
En este orden: cada paso destraba el siguiente.
-
Destrabar la base de datos
CríticaEjecutar la opción que elija el equipo en la decisión de arriba: crear la base nueva o pagar Neon, copiar los datos si hace falta y apuntar la API a la base.
Por qué importa: sin base la app entera está caída; nadie puede entrar ni pagar. -
Correr los chequeos previos al deploy
AltaPegar
docs/predeploy-checks.sqlen el editor SQL de la base de producción. Solo lee: busca emails repetidos con distintas mayúsculas, invitaciones que dejan de servir y los pagos que copia la migración nueva.Por qué importa: evita sorpresas al aplicar las migraciones, como cuentas duplicadas que no pueden entrar o invitaciones que dejan de andar. -
Desplegar el backend nuevo
AltaRailway despliega solo cada vez que se mergea a
main, y al arrancar aplica las cuatro migraciones. Con la base lista y un backup hecho, alcanza con volver a desplegar el último cambio y probar la salud de la API.Por qué importa: pone en línea el pago con QR y las liquidaciones. Sin esto, el front nuevo no puede salir. -
Publicar el front que acompaña
AltaLos dos cambios del front (pantalla de pago con QR, liquidaciones y textos sobre la plata) usan endpoints nuevos. Vercel los publica apenas se mergean, así que van justo después del backend, nunca antes.
Por qué importa: sin esto, propietarios e inquilinos no ven nada de lo nuevo. -
Mandar el correo a Upay
AltaA
soporte@upay.com.py, o por un contacto en ueno, que puede acelerar. Pide el alta como comercio, credenciales de sandbox, cómo se firman los avisos de pago, comisión por medio de pago, plazos de liquidación y si se puede cobrar directo a cada propietario.Por qué importa: depende de un tercero y es el camino más largo: cuanto antes sale, antes hay credenciales y costos reales. -
Consulta con contador o abogado sobre la plata de terceros
AltaCon los pagos online, emma recibe el alquiler y después se lo transfiere al propietario. Hay que confirmar qué implica ante el BCP y en lo impositivo, y qué plazo se le puede prometer al propietario.
Por qué importa: recibir plata ajena puede estar regulado. Conviene saberlo antes de cobrar online, no después. -
Aviso automático si la app se cae
AltaUn flujo de n8n que consulte
/healthcada pocos minutos y avise por Slack si la API o la base fallan.Por qué importa: la base estuvo caída unos 9 días sin que nadie se enterara. -
Backup diario de la base
AltaUn respaldo automático todos los días, cifrado y guardado fuera del proveedor de la base, igual que se hace hoy con n8n.
Por qué importa: sin backup, un error o un borrado de datos de pagos no tiene vuelta atrás. -
Probar contra el sandbox de Upay
MediaCuando lleguen las credenciales, se cargan en Doppler (
stg) desde la Mac, sin pasarlas por chat. Después se activa el modo real en staging y se valida la firma del webhook, lo más ambiguo de su documentación.Por qué importa: confirma que el cobro con QR anda de verdad antes de ofrecerlo. El piloto puede arrancar con transferencia. -
Revisar los ajustes que quedaron de octubre
MediaLinks de los emails que apuntaban a la demo vieja, usuarios de prueba en la base y comprobantes guardados en la nube con Cloudflare R2 (el código está, faltaban la cuenta y las claves).
Por qué importa: son detalles que una persona real nota en el primer uso, y los comprobantes hoy se pierden en cada actualización.
No hay pendientes con ese filtro en esta etapa.
Mediano plazo · diciembre a febrero
Salir con personas reales y sostenerlo
-
Sociedad, RUC y papeles legales
CríticaConstituir la sociedad y sacar el RUC. En paralelo: términos y condiciones, privacidad (Ley 6.534), autorización de pago del inquilino y el contrato del piloto. Estado al 12/10: abierto; si avanzó, actualizar.
Por qué importa: sin empresa no hay cuenta bancaria comercial, no se puede facturar la comisión ni firmar con clientes. -
Ensayo general con 5 a 10 personas reales
AltaRecorrido completo con montos chicos: invitación, pago (transferencia y QR), comprobante, confirmación, liquidación y factura de emma.
Por qué importa: nadie de afuera usó la plataforma todavía. Las fricciones las tenemos que encontrar nosotros, no un cliente. -
Piloto con 20 a 50 propiedades
AltaMedir desde el primer mes la tasa de pago a tiempo, cuánto se paga online y cuánto por transferencia, y el tiempo que emma retiene la plata hasta cada corte.
Por qué importa: es el primer ingreso real y el dato que valida el negocio frente a clientes y bancos. -
Revisar la comisión por medio de pago
AltaEl sistema tiene la comisión de emma en 2,5%. Según lo que responda Upay: comisión distinta por medio de pago, un costo de servicio para la tarjeta (si es legal) o empujar al QR y la transferencia.
Por qué importa: si la pasarela cobra más que eso con tarjeta, emma pierde plata en cada pago con tarjeta. -
Upay en producción
MediaCertificación, credenciales de producción y activación del modo real. Si Upay permite un comercio por propietario o dividir el cobro, la plata iría directo al propietario.
Por qué importa: suma el pago online, que es más cómodo para el inquilino, pero el piloto no depende de esto. -
Dominio, email de marca y hosting comercial
MediaPasar la app a un dominio de emma (verificar
emma.com.py), mover los emails a una casilla de la marca y pasar a un plan de Vercel que permita uso comercial.Por qué importa: el plan actual de Vercel no permite uso comercial y un dominio propio da confianza en los emails a clientes. -
Deploys más seguros y feriados en los cortes
MediaSumar un control antes de cada salida a producción (salud de la base, migraciones probadas) y coordinar el orden entre back y front. Agregar los feriados de Paraguay al calendario de cortes, que hoy solo saltea fines de semana.
Por qué importa: hoy un merge sale directo a producción, como pasó el 29/10. -
Robustez del cobro
MediaQue los efectos de un pago acreditado (puntos y avisos) se reintenten si fallan. Un procedimiento para devolver el doble cobro con QR, que hoy es manual. Import en segundo plano para archivos de miles de filas.
Por qué importa: con volumen, los casos raros dejan de ser raros y cada uno es un reclamo. -
Facturación electrónica y auditoría de seguridad
MediaFacturas por SIFEN con un proveedor habilitado, y una auditoría de seguridad externa antes de abrir a propietarios fuera del piloto.
Por qué importa: son requisitos para abrir al público. Para el piloto pueden esperar.
No hay pendientes con ese filtro en esta etapa.
Para decidir juntos
Seis decisiones abiertas
Las respondemos en la página de preguntas del equipo, junto con otras sobre lo que Claude puede construir. Ahí cada uno vota, comenta y se registra lo que se decide.
¿Dónde vive la base de datos?
CríticaRailway (recomendado), Neon pago o esperar. Sin esto la app sigue caída. Ver opciones
¿Hay datos reales que conservar?
CríticaSi alguien de afuera usó la app, se copian los datos a la base nueva. Si fueron solo pruebas, se arranca vacía y es más rápido. Ante la duda, se copia todo.
¿Comercio por propietario o liquidaciones?
AltaHoy emma cobra y transfiere. Si Upay permite un comercio por propietario o dividir el cobro, se simplifican lo legal y la caja.
¿Qué plazo le prometemos al propietario?
AltaLos cortes son el 15 y el último día hábil. Falta definir si se comunica un compromiso formal y revisarlo con el contador.
¿Comisión única o por medio de pago?
AltaDepende de lo que cobre la pasarela con tarjeta, QR y transferencia.
¿Quién opera el día a día?
MediaAprobar propietarios, registrar las transferencias de cada corte, revisar alertas de pagos y responder dudas.