Cloude: un producto cloud de consumo, de la marca a la seguridad
Un producto cloud de consumo que construimos de principio a fin. 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 de principio a fin. El MVP salió en dos semanas. El equipo que pusimos en el proyecto se quedó después 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 MVPDel brief firmado a la demo en vivo
- 1CodebaseWeb, desktop, React Native, un solo design system
- TodoScopeBrand, product, engineering, arquitectura de seguridad

Una codebase, dos interfaces
La primera decisión fue estructural. Un producto cloud de consumo normalmente saca la web de marketing y la plataforma de repos distintos, con equipos distintos y una traducción constante entre los dos. Apostamos por una única codebase Next.js, un único design system, un único equipo. El founder se convenció.
El trade-off es honesto. Una codebase única significa que el equipo de marketing no publica 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 incrusta 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 lanzamiento salió en una sola fecha, no tres.


Construido para escalar antes de que existieran los usuarios
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. Dimensionamos para la proyección, no para la carga del momento.
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 la red viajan solo los bytes cambiados. Un portátil en un túnel sigue funcionando. Una reconexión se pone al día en un solo round trip.


Móvil es React Native, no una app web disfrazada
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 interfaz en un solo commit. El bundle está diseñado 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 coste de la latencia
Fue la decisión de ingeniería más dura. El cifrado end-to-end suele pasar factura: round trips extra, cold starts más largos, archivos que se abren más despacio. Esa factura no quisimos pagarla.
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 se guardan en el Secure Enclave de iOS y el 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 en claro.
Una empresa de seguridad externa ejecuta pruebas de penetración independientes con cadencia regular. Un programa público de vulnerability disclosure con bounty para investigadores lleva activo desde el lanzamiento.


El design system que alimenta Cloude se construyó desde cero para este encargo y hoy funciona en web, desktop y React Native. Lo seguimos manteniendo nosotros. El equipo se mantuvo pequeño durante todo el proyecto, respaldado por la governance de agentes del estudio: sin proliferación de contratistas, sin traspaso a proveedores. El programa de vulnerability disclosure heredado del trabajo de seguridad sigue activo. Los design tokens del 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
- TodoScopeDel brand a la arquitectura de seguridad, un solo equipo
- 1CodebaseWeb, desktop, React Native, un solo set de design tokens
- Desde el primer díaTokensLos tokens que entregamos 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. Del brand a la seguridad, un solo equipo. Escríbenos.
Empezar un proyecto