Cuando empecé a trabajar en proyectos con builds estáticos, noté un patrón que se repetía: los repos se llenaban de imágenes, PDFs y otros binarios. Los deploys se ralentizaban, el historial de git se inflaba y el control de versiones se volvía un caos.

La solución obvia era “usa S3 o Cloudflare R2”. Pero quería algo más: acceso programático simple, API keys propias, métricas de uso en tiempo real y una interfaz que no requiriera conocer AWS.

El problema real

Los builds estáticos son livianos por naturaleza, pero esa ventaja desaparece cuando el proyecto crece. Un sitio con 50 imágenes de producto, PDFs de documentación y assets de marketing puede llegar a pesar varios cientos de MB fácilmente.

Cada vez que subes un cambio pequeño en el código, el pipeline de CI/CD tiene que manejar todos esos binarios. El resultado: deploys lentos, repos pesados y fricciones innecesarias.

La solución: desacoplar los assets

La idea de Arenal Cloud es simple: sacar los assets del repo y del build completamente. En lugar de referenciar /images/producto.jpg, referencias https://cdn.arenalcloud.com/tu-proyecto/producto.jpg.

El flujo queda así:

  1. Subís el asset una vez via la API o el dashboard
  2. Obtenés una URL de CDN permanente
  3. Referenciás esa URL en tu código
  4. Tu build no incluye ningún asset binario

Stack técnico

Decidí construirlo sobre un VPS propio con object storage compatible con S3 (MinIO). El backend es Node.js con una API REST, autenticación por API keys y un sistema de métricas liviano.

El frontend es Vue.js para el dashboard. Simple, sin frameworks pesados.

Por qué no simplemente usar S3 directamente: quería el control total del producto, poder agregar features específicos para los casos de uso que veía y construir algo que pudiera eventualmente ofrecer como SaaS.

Lecciones aprendidas

El scope creep es real. Empecé queriendo solo subir y servir archivos. Terminé construyendo un sistema de API keys, analytics, múltiples proyectos por usuario y gestión de dominios personalizados.

Construir en público ayuda. Compartir el proceso en LinkedIn generó feedback temprano que evitó que construyera features que nadie necesitaba.

La infraestructura propia tiene sus costos. Manejar un VPS significa ocuparse de actualizaciones, backups, monitoring. No es gratis en tiempo.

El proyecto sigue en desarrollo. Si te interesa probarlo, podés ver la demo en arenalcloud.com.