Cloude: un producto cloud de consumo, de la marca a la seguridad
Un producto cloud de consumo que construimos end to end. Una única codebase Next.js, un único design system, un único equipo en web, desktop y React Native. El MVP salió en dos semanas. Nos quedamos y construimos encima el producto de consumo final, sobre la misma base, con cifrado end-to-end y claves protegidas por hardware en el centro de la arquitectura.

Construimos Cloude end to end. El MVP salió en dos semanas. El equipo que pusimos en marcha se quedó más allá del lanzamiento y construyó el producto de consumo final sobre la misma base. Un solo encargo, una única codebase Next.js, un único design system, un único equipo en web, desktop y React Native.
Lo que entregamos
- 2Semanas al MVPBrief firmado a la demo en vivo
- 1CodebaseWeb, desktop, React Native, un solo design system
- End to endScopeBrand, product, engineering, arquitectura de seguridad

Una codebase, dos superficies
La primera decisión fue estructural. Un producto cloud de consumo normalmente envía web de marketing y plataforma desde repos distintos, con equipos distintos y una capa de traducción entre los dos. Argumentamos por una única codebase Next.js, un único design system, un único equipo. El founder compró el argumento.
El trade-off es honesto. Una codebase única significa que el equipo de marketing no envía copy sin coordinarse con el deploy de ingeniería, y el equipo de producto tiene que pensar en SEO cuando refactoriza un componente. Aceptamos esos costes porque la ventaja era mayor. La web de marketing encajona el componente Files en producción en lugar de un mockup: lo que el visitante ve en la landing es lo que recibe cuando se registra. El trimestre de lanzamiento salió en un solo evento de calendario, no tres.


Ingenierado para la escala antes de que los usuarios existieran
El MVP arrancaba con una cohorte pequeña de early-access. El deck de la seed proyectaba un orden de magnitud más para fin de año. Ingenieramos para la proyección, no para la carga actual.
La lista de la biblioteca está virtualizada con un cap de filas fijo independientemente del tamaño del dataset, así el coste de render se mantiene plano a medida que crece la biblioteca. Los archivos recientes vienen de una única query server-side indexada en (owner_id, accessed_at desc), y el plan de la query se mantiene constante en cada petición. Las carpetas y las vistas recientes leen de una caché local-first en IndexedDB mantenida en sync con el servidor mediante un motor de sync diferencial: por el cable viajan solo los bytes cambiados. Un portátil en un túnel sigue funcionando. Una reconexión se pone al día en una sola ronda.


Móvil es React Native, no una app web travestida
El atajo habría sido una PWA dentro de una WebView. Construimos nativo. El cliente React Native consume los mismos design tokens que la web vía un package compartido, así un bump de los tokens se propaga a cada superficie en un solo commit. El bundle está ingenierado para mantenerse bajo el umbral de hot-fetch de la Store tras el tree-shaking: las actualizaciones se descargan en silencio. El transporte es HTTP/3 sobre QUIC. El primer frame interactivo en un Android de gama baja tiene el mismo coste fijo sin importar el tamaño del dataset: listas virtualizadas y queries indexadas hacen el trabajo pesado en el servidor, no en el dispositivo.

Cifrado sin el impuesto a la latencia
Fue la decisión de ingeniería más dura. El cifrado end-to-end suele aparecer en la ventanilla de Hacienda: round trips extra, cold starts más largos, archivos que se abren más despacio. Nos negamos a enviar eso.
El almacenamiento está cifrado en reposo con AES-256-GCM. Las claves por cuenta se derivan vía Argon2id desde la passphrase del usuario y nunca se guardan en el servidor. Los archivos compartidos viajan cifrados end-to-end con intercambio X25519. Las claves privadas viven dentro del Secure Enclave de iOS y del StrongBox de Android, protegidas por hardware y resistentes a la extracción incluso en un dispositivo rooteado. La arquitectura es zero-knowledge: el servidor guarda blobs opacos y nunca ve una clave desenvuelta.
Pruebas de penetración independientes corren con cadencia recurrente con un estudio de seguridad externo. Un programa público de vulnerability disclosure con bounty para investigadores está vivo desde el lanzamiento.


El design system que alimenta Cloude se construyó desde cero para este encargo y hoy vive en web, desktop y React Native. Lo seguimos manteniendo nosotros. El equipo se mantuvo pequeño durante toda la duración, integrado por la governance de agentes del estudio: sin proliferación de contractors, sin handoff a vendors. El programa de vulnerability disclosure heredado del trabajo de seguridad sigue activo. Los design tokens que enviamos el primer día son los mismos que corren en producción hoy.
Stack
- Next.js16
- React19
- TypeScript5
- React Native
- Postgres16
- Supabase
- Cloudflare R2
- Vercel Edge
- Sentry
- Meilisearch
“Dos semanas del brief al MVP en vivo. El estudio siguió y entregó el producto final sobre la misma base. La infraestructura que levantaron el primer día aguantó. Cifrado activado por defecto, latencias por debajo del segundo desde cualquier edge. No tuvimos que renegociar el scope ni una vez.”
Operativo, hoy
- End to endScopeDel brand a la arquitectura de seguridad, un solo equipo
- 1CodebaseWeb, desktop, React Native, un solo set de design tokens
- Day oneTokensLos tokens que enviamos en el lanzamiento siguen corriendo en producción
¿Estás construyendo algo que tiene que durar más allá de la seed?
Trabajamos con founders y equipos que tienen objetivos de ingeniería medibles y deben alcanzarlos antes de la siguiente ronda. End to end, un solo equipo. Escríbenos.
Empezar un proyecto