Cargando...
Por favor, espera un momento
Una selección de proyectos personales en los que continúo aprendiendo y experimentando con nuevas tecnologías.
SaaS multi-despacho para la gestión de tasaciones judiciales de costas. Cubre el ciclo completo: alta de tasaciones, partidos judiciales, procuradores y minutas, con análisis automatizado de documentos mediante la API de OpenAI, generación de PDFs con Puppeteer, notificaciones por email y suscripciones con Stripe. Panel de super-admin para el alta manual de despachos y usuarios. Es el proyecto con más recorrido: unos 90 commits sobre Next.js 16 con App Router, Supabase Auth SSR y Drizzle ORM.
Sitio y CMS a medida para la Asociación Educativa Vida y Valores de Canarias. Incluye web pública con noticias, proyectos y portal de transparencia (junta directiva y cuentas anuales), formulario de alta de socios con validación real de NIF/NIE/IBAN españoles, y donaciones puntuales más domiciliación de cuotas SEPA vía GoCardless. El panel de administración usa Google OAuth con roles y galerías de imágenes, protegido con reCAPTCHA v3.
Aplicación mobile-first para calcular dosis de medicamentos pediátricos a partir del peso del niño. Gestiona perfiles de varios niños, calcula dosis de los fármacos más comunes y registra el seguimiento de enfermedades. Tiene plan Pro con pagos vía Stripe, emails transaccionales con Mailgun y panel de administración de usuarios y cobros. Construido con Server Components y Server Actions sobre Supabase con RLS, cuidando accesibilidad y modo oscuro.
Sistema de reserva de turnos de adoración para la Capilla de San Jorge (Santa Cruz de Tenerife). Los adoradores consultan disponibilidad y reservan turnos sueltos o en series recurrentes; los administradores definen reglas periódicas que generan los slots automáticamente, gestionan altas con aprobación y publican noticias. Autenticación doble por OTP de WhatsApp y magic link, con auditoría en base de datos. Cubierto con tests unitarios en Vitest y E2E en Playwright.
Sitio oficial del poeta y ensayista Carlos Javier Morales. Presenta la bibliografía completa, artículos y entrevistas, biografía, poética y una selección mensual de poemas del mes. Incluye panel de administración propio para publicar contenido sin tocar código, con los ficheros alojados en Vercel Blob y una capa de caché explícita sobre el App Router. Instrumentado con Vercel Analytics y Speed Insights.
Biblioteca personal para catalogar libros y organizarlos en estanterías. Los datos y las portadas se completan automáticamente desde la API de Open Library a partir del ISBN. El esquema vive en un schema propio de Postgres gestionado con Drizzle ORM y migraciones versionadas, con RLS por usuario sobre auth.uid(). Login con Google OAuth y autenticación SSR de Supabase.
Blog de noticias y actividades del Club Náutico Puertito de Güímar. Las noticias se consumen de un JSON alojado en Google Drive, lo que evita montar un backend y deja la edición en manos del club. Interfaz con tarjetas de efecto liquid glass, filtros y buscador de noticias, modo oscuro e imágenes de respaldo desde la API de Unsplash. Con pruebas en Vitest.
Landing institucional estática del AMPA del CEIP San Fernando, pensada como puerta de entrada a su plataforma de gestión. Sin backend, login ni base de datos: una sola página más las legales, con fuentes autohospedadas, View Transitions, sitemap y JSON-LD. Cierra con Lighthouse 100/100/100/100 y cero incidencias de axe-core en WCAG 2.1 AA.
Sitio divulgativo sobre la Perfecta Devoción a la Santísima Virgen según San Luis María Grignion de Montfort. Reúne la explicación de la consagración total, los Grupos de Esclavitud Mariana de Amor con su manual, una biblioteca de libros consultables en modal con enlaces a las ediciones, biografía del santo y páginas legales completas con banner de consentimiento de cookies. Tipografía editorial con Playfair Display e Inter, y páginas estáticas servidas desde el App Router.