Producto propio
Portfolio Web
Portafolio personal con Astro 5, API en Go y LibSQL.
Ficha del proyecto
- Organización
- Producto propio
- Año
- Estado
- Publicado · destacado
- Stack
- Go Astro Docker
Sobre el proyecto
Sitio estático de alto rendimiento construido con Astro 5.0, respaldado por una API REST en Go y base de datos LibSQL distribuida.
01
El problema
Un sitio estático es rápido pero obliga a editar código y volver a desplegar para cambiar una coma. Un CMS tradicional resuelve la edición, pero a cambio cada visita pasa por un proceso de aplicación y una base de datos. La meta era tener las dos cosas: HTML plano servido por nginx y contenido editable desde un panel, sin renunciar a ninguna.
02
Mi rol
Diseño, desarrollo y operación completos: frontend, API, modelo de datos, panel de administración, infraestructura y despliegue.
03
Arquitectura y decisiones
- Astro 5 con salida estática: el contenido se resuelve en build, así que cada visita se sirve como HTML plano desde nginx, sin proceso de aplicación en la ruta crítica.
- API propia en Go con Gin sobre LibSQL: un binario sin dependencias de runtime y una base embebida, en vez de arrastrar un stack completo para un contenido que cabe en pocas tablas.
- Panel de administración en HTMX en lugar de una SPA: el CRUD se resuelve devolviendo fragmentos de HTML desde el servidor, sin build de frontend ni estado duplicado en el cliente.
- Reconstrucción disparada por el propio API: al guardar en el panel se escribe en un volumen compartido y un servicio systemd reconstruye el sitio, de modo que editar no exige acceso al servidor.
- Despliegue con releases atómicos: cada build va a releases/<marca de tiempo> y se publica renombrando el symlink current, que es una operación atómica. Si el build falla, la versión en línea queda intacta.
- nginx por delante con TLS de Let’s Encrypt, cabeceras de seguridad, límite de peticiones sobre el API y caché inmutable para los assets con hash.
- Todo en Docker Compose sobre un VPS propio y con los puertos publicados solo en loopback: el único proceso expuesto a internet es nginx.
- Migraciones idempotentes con marca de aplicación, para que las siembras iniciales no reescriban datos que se hayan editado desde el panel.
04
Impacto
Publicar o corregir contenido se hace desde el panel y el sitio se reconstruye solo: no hace falta tocar el repositorio ni entrar al servidor. Las visitas no ejecutan código de aplicación ni consultan la base de datos. Los despliegues no tienen ventana de caída y se conservan las últimas cinco versiones para volver atrás.
¿Necesitas algo parecido a Portfolio Web?
Cuéntame qué tienes que construir y te respondo en menos de 24 horas. Si prefieres revisar primero la trayectoria completa, el CV está listo para descargar.