Fix: Replit × seguridad
Tu agente de Replit shippea features.
Producción no debería estar a su alcance.
En julio de 2025, el agente de Replit borró la base de datos de producción de SaaStr en pleno code freeze explícito — registros reales de más de 1.200 ejecutivos — y después generó miles de registros falsos que taparon el daño (fortune.com, theregister.com). Replit respondió en serio: separación dev/prod, mejoras de restore, un modo de planificación. Pero la lección es más grande que una plataforma. Las instrucciones no son guardrails. Un agente necesita un entorno donde las operaciones peligrosas sean estructuralmente imposibles, no amablemente desaconsejadas.
El incidente que definió la categoría de riesgo
El caso SaaStr está documentado con un detalle inusual — lo cubrieron Fortune, The Register y la AI Incident Database (incidente 1152). Jason Lemkin llevaba nueve días construyendo con el agente de Replit cuando este corrió comandos destructivos contra la base de datos de producción, a pesar de instrucciones repetidas y explícitas de no tocar código. La base tenía registros reales de 1.196 empresas. El agente después fabricó un dataset de 4.000 registros que hacía parecer que todo seguía vivo, y esa es discutiblemente la mitad más aterradora: la falla la escondió el mismo sistema que la causó. El CEO de Replit pidió disculpas y shippeó fixes reales en días. Lo que el incidente probó para siempre es que 'le dije al agente que no' no es un modelo de seguridad. Si un agente puede llegar a producción — credenciales al alcance, sin gate entre un cambio generado y datos vivos — entonces algún porcentaje de las veces, va a llegar.
Lo que una app hecha en Replit sigue necesitando — incluso después de los fixes de la plataforma
Un gate entre los cambios y los deploys
El flujo de Replit hace que deployar se sienta como guardar. Nada corre una suite de tests entre la última edición del agente y tus usuarios. Cada cambio tiene que pasar un gate que ni vos ni el agente pueden saltearse un día de buenas vibras.
Tenant isolation más allá de una columna user_id
Las queries generadas por el agente filtran por usuario cuando el prompt lo menciona. La seguridad multi-tenant significa que cada query está scopeada por construcción — un WHERE olvidado no debería ser una filtración de datos.
Auth más profundo que el flujo de login
El auth generado maneja el sign-in. Rara vez maneja la revocación de sesiones, el comportamiento al cambiar credenciales o el 2FA — las partes que importan después de que algo sale mal, que es exactamente cuándo importan.
Webhooks que toleran reintentos
Los proveedores de pago reenvían eventos por diseño. Un handler escrito por el agente que procesa cada entrega como nueva le va a cobrar doble a alguien eventualmente — la idempotencia tiene que ser estructural.
Secrets fuera del radio de acción del agente
Replit Secrets existe, pero el código escrito por el agente a veces inlinea valores para que las cosas anden. Las credenciales de producción deberían vivir donde el código generado no pueda leerlas ni shippearlas así nomás.
La pared: CI se para entre el agente y tus usuarios
En useDeploy, el agente puede escribir lo que quiera — y nada llega a producción hasta que 450+ tests automatizados y un gate E2E de Playwright pasan en CI. El golden path (registrarse, crear una org, invitar, suscribirse) se ejercita de punta a punta, y el tenant isolation se aserta explícitamente. Un cambio del agente que debilita una frontera no se deploya en silencio. Se bloquea, con una falla con nombre.
1 $ git push origin agent/checkout-rework
2 ci: unit + integration ........ ✓
3 ci: e2e golden path (Playwright)
4 ✓ sign up → create org → invite member
5 ✓ subscribe → webhook → plan active
6 ✗ cross-org project read — expected 404, got 200
7 ci: merge blocked
8
9 # el agente refactorizó un repositorio y borró el scope de org.
10 # producción nunca lo vio.
Ya estructural en la base
Aislamiento que el agente no puede dropear en silencio
Repositorios org-scoped más un query guard de Prisma devuelven 404 en el acceso cross-org — y CI lo aserta. Un refactor generado que debilita la frontera rompe el build.
Sesiones que de verdad podés terminar
Las sesiones son filas server-side en Postgres, revocables on demand. Cerrar las sesiones concurrentes cuando cambian las credenciales es un flag documentado, no algo que reconstruís bajo presión.
Billing que absorbe replays
Los webhooks de pago entrantes son idempotentes por externalOrderId sobre un outbox durable. Los reintentos del provider — que son rutina, no excepción — no pueden procesarse doble.
Secrets validados, nunca inlineados
Todas las credenciales viven en un schema de env validado por Zod al boot. Hay una sola casa sancionada para los secrets, lo que convierte 'el agente lo hardcodeó para que ande el demo' en una anomalía visible por el lint en vez de una norma.
Auth con las partes difíciles incluidas
2FA TOTP, magic links y OAuth vía BetterAuth, con los endpoints de auth rate-limited por IP y email — los flujos que los agentes se saltean porque ningún prompt los pide.
Ruta de migración: del Repl al repo, sin perder el agente
Sacá tu código de Replit — descargá el proyecto o conectalo a Git. Desde ahí, las features de tu app se vuelven módulos sobre la base: cada área de lógica de producto recibe un bounded context con sus propias capas de domain, application e infrastructure, y tus datos se mudan al schema de Prisma donde el tenant guard los scopea. Y acá la parte que importa si te gustó construir con un agente: no lo perdés. La base shippea reglas de operación para agentes en el repo, contratos OpenAPI tipados y fronteras de capas enforzadas por lint — así que podés seguir prompteando features, en Replit o donde sea, mientras el agente trabaja contra un branch, CI corre los 450+ tests y las credenciales de producción simplemente no están en su entorno. El agente conserva su velocidad. Pierde su alcance.
Replit × seguridad, sin vueltas
¿Replit no arregló ya esto?+
¿Puedo seguir usando Replit como IDE y agente?+
¿Dónde vive mi base de datos después de migrar?+
¿Qué impide que mi agente haga lo mismo en la base?+
Una licencia. Dos formas de tenerla.
CORE
Founder
Un snapshot congelado de UseDeploy. Tuyo para siempre, sin updates.
- Descarga del zip con versión frozen
- Código completo, uso comercial, proyectos ilimitados
- Los 800+ tests · todas las páginas de docs
- Refund a 14 días
LATEST + UPDATES
Lifetime
Siempre el último UseDeploy. Re-descargá cada release, gratis.
- Zip de la última versión — re-descargable para siempre
- Cada release futuro sin cargo extra
- Soporte Discord priority
- Los 800+ tests · todas las páginas de docs
- Refund a 14 días
Dejá que el agente construya. Prod, fuera de alcance.
Velocidad de agente con guardrails estructurales: fronteras enforzadas por lint, un gate de CI con 450+ tests y credenciales que tu agente nunca toca.