¿Por qué existe este sitio?
Un problema de larga data al aprender cualquier tecnología nueva es que la mayor parte de la documentación y los ejemplos que puedes encontrar en internet o que te dan las IAs son tan triviales que no te permiten saber si la tecnología o tu implementación resistirán una carga de trabajo real y compleja. Un ejemplo de esto son los numerosos ejemplos de listas de tareas.
Tengo planeado un proyecto SASS basado en varias suposiciones tecnológicas que necesitan ser probadas incluso antes de intentar construir el proyecto real, y un sitio de perfil personal como este, impulsado por un backend completo de CMS, es lo bastante complejo como para merecer un despliegue de producción adecuado y lo bastante simple como para no tardar demasiado en montarse; con el beneficio adicional de que, si todo va bien, obtengo un sitio de perfil que rinde bien y será un buen banco de pruebas para más experimentos técnicos.
Cloudflare como destino de despliegue
Cloudflare Workers https://workers.cloudflare.com/ parecen, a primera vista, una forma extremadamente barata de desplegar una aplicación compleja. El desarrollo del back-end parece sencillo y robusto, y el paquete OpenNext https://opennext.js.org/ parece proporcionar una forma eficiente de desarrollar tu front-end en Next.js https://nextjs.org/ y desplegar en Cloudflare.
Dudo que este sitio atraiga mucho tráfico humano; sin embargo, intentaré dirigir hacia él tanto tráfico de búsqueda web y de rastreadores de IA como sea posible. De ese modo, debería poder averiguar el coste real de ejecutar un sitio con mucha actividad en la plataforma de Cloudflare.
Hacer este sitio más complicado de lo que debería ser
Backend de gestión de contenidos (CMS)
Con toda honestidad, este sitio, tal y como está actualmente, podría montarse de forma improvisada con un agente de programación en unas pocas horas; sin embargo, un sistema serio no debería necesitar un despliegue para cambiar contenido básico. Por tanto, este sitio usa un CMS completo basado en Payload CMS (https://payloadcms.com/) desplegado como un Cloudflare Worker separado.
Payload en sí utiliza una base de datos SQL, que a su vez necesita desplegarse como una instancia de base de datos CloudFlare D1 SQLite https://developers.cloudflare.com/d1/, y gestionarse correctamente con migraciones de base de datos para soportar el ciclo de vida del desarrollo.
Traducciones automatizadas
Este sitio admite 20 idiomas. Dado que el sitio web es un andamiaje simple para el contenido del CMS, la parte de i18n se gestiona con un agente de programación (Co-pilot y Claude Opus 4.5) durante el desarrollo.
Eso deja que todo el contenido actual y futuro del CMS necesite traducirse automáticamente cada vez que se cambie cualquier contenido en inglés.
Worker basado en colas y Cron
El requisito de traducción requiere un proceso razonablemente complicado que:
- Se activará mediante un temporizador Cron.
- Identificará cualquier contenido que necesite una nueva traducción.
- Ejecutará una traducción de forma fiable.
- Se recuperará de forma fiable de un fallo.
Por lo tanto, se utiliza otra instancia de CloudFlare D1 para hacer seguimiento del trabajo de traducción, y se usan Cloudflare queues (https://developers.cloudflare.com/queues/) con un patrón productor-consumidor basado en cron para gestionar y escalar las tareas. Se llama a la API gpt-5.2 de OpenAI para hacer las traducciones y AI.SDK https://ai-sdk.dev/ lo integra todo.
Para este sitio, es excesivo, pero cualquier sistema de producción, a cualquier escala, necesita un patrón robusto para orquestar el procesamiento en segundo plano.
Versiones anteriores de este sitio
Ya he hecho este sitio dos veces como herramienta para aprender nuevas tecnologías:
2013 - Aprender Ruby y AWS
- Ruby on Rails v4.0.0.
- Estilos con Bootstrap v3.
- CoffeeScript para la UI.
- Patrón de front-end Backbone Marionette VMC.
- Desplegado en un host de AWS.
2017 - Aprender React
- React v16.0.0 para la UI.
- Redux y Thunk para operaciones asíncronas.
- Semantic UI para estilos.
Qué sigue
El sitio está correctamente configurado para SEO, y se necesita una cadencia regular de nuevo contenido para impulsar el tráfico de rastreadores. Publicaré artículos más detallados sobre las distintas tecnologías y soluciones utilizadas.
