Ir al contenido

Sites Platform

🟡 Draft Arquitectura técnica Multicliente En análisis

Sites Platform propone convertir la creación de sitios pequeños y semiestáticos en una plataforma reutilizable, operable y monetizable.

La idea no es construir un CMS genérico, sino una fábrica interna para producir sitios B2B con bajo costo operativo, alta reutilización técnica y publicación eficiente sobre Cloudflare.


Hoy, cada sitio simple puede implicar trabajo repetitivo:

  • desarrollo casi desde cero;
  • configuración manual;
  • mantenimiento individual;
  • dificultad para escalar clientes;
  • poca trazabilidad de costos y uso.

Sites Platform reduce ese esfuerzo con una base común de templates, themes, blocks, configuración y datos administrados.


La plataforma separa claramente estructura y datos.

Interzone define estructura
→ template, theme, bloques, formularios, dominio, SEO base
Cliente actualiza datos
→ productos, categorías, precios, descripciones, imágenes, PDFs

La regla principal es:

Cambios estructurales
→ build externo
Cambios de datos
→ publicación de JSON + HTML fragments en R2
→ sin rebuild

Esto permite que el cliente actualice contenido operativo sin recompilar todo el sitio.


AccessPlatform
→ Sites Admin .NET
→ SQL Server
→ Sites Publisher .NET
→ Astro + R2
→ Cloudflare Worker dedicado
→ Sitio público

Responsabilidades principales:

ComponenteRol
AccessPlatformIdentidad, roles, permisos y tenant.
Sites Admin .NETAdministración de sitios, datos, publicación y métricas.
SQL ServerFuente de verdad para drafts, snapshots, catálogos, auditoría y billing.
Sites Publisher .NETOrquesta publicación, genera JSON, HTML fragments y assets.
AstroGenera estructura estática desde templates y blocks.
Cloudflare R2Almacena JSON, HTML fragments, imágenes, PDFs y snapshots.
Cloudflare WorkersEntrega pública, routing, cache y composición de fragments.

El sitio público no consulta SQL Server ni el backend .NET en cada visita.


La arquitectura está diseñada bajo un enfoque Workers-first.

Cloudflare cubre la solución con:

  • Workers Static Assets para servir HTML, CSS, JS e imágenes estáticas desde Cloudflare.
  • Direct Upload para publicar assets estáticos mediante API o pipeline.
  • R2 para almacenar imágenes, PDFs, JSON, HTML fragments y snapshots.
  • Workers para routing, cache, composición de fragments y entrega pública.
  • GraphQL Analytics API para medir consumo por sitio y alimentar reportes.

En el plan gratuito, Cloudflare permite validar el modelo con límites suficientes para MVP y pilotos controlados:

  • Workers Free incluye uso limitado de Workers.
  • El límite diario documentado para Workers Free es de 100,000 requests por cuenta.
  • Las solicitudes servidas directamente como Static Assets son gratuitas e ilimitadas según la documentación de Workers Static Assets.
  • R2 permite operar almacenamiento de objetos con modelo de bajo costo y sin egress tradicional.

Conclusión: la primera versión puede validarse sobre Cloudflare Free / bajo costo, siempre que el diseño mantenga el Worker liviano y use cache/static assets correctamente.


6. Punto técnico clave: no renderizar catálogos en el Worker

Sección titulada «6. Punto técnico clave: no renderizar catálogos en el Worker»

El Worker no debe construir HTML complejo desde JSON en cada request.

Modelo correcto:

Cliente actualiza datos
→ .NET valida y sanitiza
→ .NET genera catalog-current.json
→ .NET genera catalog-current.html
→ .NET publica en R2
→ Worker solo compone HTML final

El Worker hace una operación ligera:

HTML base + HTML fragment pre-generado = página final

Ventajas:

  • bajo consumo de CPU en Cloudflare;
  • buen SEO porque el visitante recibe HTML completo;
  • actualizaciones rápidas sin rebuild;
  • menor riesgo operativo;
  • mejor control de seguridad.

La solución incorpora controles desde el diseño:

  • sanitización obligatoria antes de generar HTML fragments;
  • prevención de XSS;
  • paginación de fragments grandes;
  • aislamiento por tenant y sitio;
  • un artefacto por sitio;
  • ningún build puede mezclar datos de múltiples clientes;
  • el backend .NET no ejecuta Node ni compila Astro;
  • Cloudflare API se consume mediante cola con rate limiting;
  • reconciliación entre SQL Server y Cloudflare para evitar drift operativo.

Para clientes B2B, se recomienda una instancia dedicada por cliente.

Esto permite:

  • aislamiento técnico;
  • configuración propia;
  • métricas por sitio;
  • límites de uso;
  • reportes mensuales;
  • planes comerciales por capacidad de visitas.

Ejemplo de planes:

PlanCapacidad sugerida
Base50,000 visitas/mes
Business150,000 visitas/mes
Premium500,000 visitas/mes
CustomA medida

La medición de uso no ocurre en tiempo real por request. Se calcula de forma eventual mediante job diario/mensual que consulta métricas de Cloudflare y actualiza SQL Server.


  • Menor tiempo de entrega de sitios simples.
  • Reducción de trabajo repetitivo.
  • Mejor margen operativo.
  • Escalabilidad con bajo costo inicial.
  • Clientes con capacidad de autogestionar datos simples.
  • Sitios rápidos, cacheables y SEO-friendly.
  • Base técnica preparada para monetización por planes.
  • Arquitectura alineada con Cloudflare Workers y R2.

  1. Construir el proyecto Astro base con templates, themes y blocks.
  2. Implementar Sites Publisher .NET para generar JSON, HTML fragments y assets.
  3. Publicar estructura mediante builder externo y Workers Static Assets.
  4. Usar R2 para datos, imágenes, PDFs y fragments.
  5. Implementar composición de fragments en Worker.
  6. Agregar métricas, billing eventual y reportes.
  7. Validar el MVP en Cloudflare Free / bajo costo antes de escalar.

Sites Platform permite transformar el desarrollo repetitivo de sitios pequeños en una plataforma reutilizable, segura y monetizable.

La combinación .NET + Astro + Cloudflare Workers + R2 permite entregar sitios rápidos, de bajo costo operativo y preparados para escalar. El plan gratuito de Cloudflare es suficiente para validar el modelo inicial si se mantiene la arquitectura liviana: static assets, R2, HTML fragments pre-generados y Workers dedicados solo para composición, routing y control.