Cartas Rápidas
Resumen
Cartas Rápidas es una herramienta web para generar cartas legales claras y listas para enviar, orientada a casos frecuentes en España (baja de gimnasio, desistimiento, reclamaciones, devoluciones SEPA y solicitudes relacionadas con ASNEF). En la versión 2.x el proyecto evoluciona hacia un portal de información legal con sección de recursos extensa, monetización mediante Google AdSense y Ezoic, analítica GA4, y una suite de calidad completa (Vitest + Playwright + Lighthouse CI en Netlify y GitHub Actions).
Contexto
Proyecto de utilidad pública: combina contenido legal “plantillable” con guías prácticas, páginas de recursos temáticos (derechos del consumidor, protección de datos, cambios legislativos, etc.) y FAQ estructurada. El despliegue sigue un flujo dev → staging → main con versiones etiquetadas automáticamente y builds estáticos en Netlify. Desde la v2.x incorpora monetización publicitaria (AdSense + Ezoic) con consentimiento CMP y políticas legales actualizadas, y cuenta con un sistema de CI/CD robusto que incluye E2E con Playwright y auditorías Lighthouse con umbrales de calidad obligatorios.
Stack
- Astro 5 para sitio estático, content collections, rutas localizadas (i18n) y SEO configurado con datos estructurados (Schema.org).
- Tailwind CSS 4 con plugin Vite (
@tailwindcss/vite) y tokens de tema para modo claro/oscuro y alto contraste. - Preact para componentes interactivos (generador, feedback CTA, conmutadores de tema).
- jsPDF 4 para exportación de cartas a PDF en el cliente.
- WebCrypto API y localStorage para el módulo de cuenta local cifrada.
- web-vitals (producción) para reporte de métricas Core Web Vitals a GA4.
- Google Analytics 4 y Google AdSense + Ezoic para analítica y monetización, con banner CMP (Gatekeeper Consent).
- Netlify con Node 20, plugin @netlify/plugin-lighthouse (umbrales de quality gate), headers CSP granulares y redirect de ads.txt a Ezoic.
- GitHub Actions: CI con jobs de lint, i18n:check, Vitest (unit), Playwright (E2E) y LHCI (Lighthouse); Dependabot para npm y actions.
- Vitest + jsdom para tests unitarios y Playwright (Chromium/Firefox/WebKit) para E2E.
Resultados (v2.35.0)
- Monetización integrada: Google AdSense y Ezoic activos en producción con banner de consentimiento CMP, ads.txt delegado vía redirect y CSP adaptado para ambas plataformas sin degradar la seguridad del resto del sitio.
- Analítica real: GA4 configurado mediante variable de entorno en Netlify y web-vitals integrado como dependencia de producción para enviar métricas CWV directamente a Google Analytics.
- Quality gates en Lighthouse: el plugin de Netlify falla el deploy si performance < 0.85, a11y < 0.90 o SEO < 0.90; adicionalmente LHCI corre en CI de GitHub Actions y sube artefactos del informe.
- Testing completo: Vitest para lógica unitaria (jsdom) y Playwright para E2E con soporte multi-navegador en CI; ambos integrados en el pipeline de CI de GitHub Actions y en el script
ci:verifylocal. - Portal de recursos: seis páginas de recursos temáticos independientes (con datos estructurados Article y Schema.org), FAQ con FAQPage schema, página “Sobre” e índice de recursos enlazado desde la home.
- Sistema de diseño documentado: página brand-spec con paleta de colores tokenizada, escala tipográfica, tokens de espaciado, radios, sombras y motion; accesible en
/brand-specpara referencia interna. - Seguridad por capas: headers HTTP completos (CSP, HSTS preload, X-Frame-Options DENY, Permissions-Policy restrictiva) con política diferenciada para
/assets/*,/*y/ads/*.
Resultados (v1.4.0)
- Experiencia multilingüe: la web está disponible en español, catalán y euskera con rutas localizadas y metadatos SEO por idioma, lo que amplía el alcance y mejora el posicionamiento.
- Cuenta local cifrada: los usuarios pueden guardar borradores de cartas, firmas y recordatorios en su dispositivo, exportarlos/importarlos con cifrado AES‑GCM y recuperarlos sin backend, mejorando la retención y la privacidad.
- Feedback contextual: cada guía incluye una llamada a la acción que abre el formulario de contacto pre‑rellenado, facilitando la recogida de sugerencias e incidencias específicas.
- Accesibilidad y personalización: se introducen modos oscuro y de alto contraste con persistencia en localStorage y conmutadores accesibles, mejorando la usabilidad en diferentes entornos.
- SEO avanzado: normalización de slugs, control de duplicados, campos opcionales og_image y un sitemap enriquecido con changefreq/priority elevan la indexación y la presentación en redes sociales.
- Transparencia y profesionalidad: actualización de todas las referencias al correo de contacto a info@cartasrapidas.es y añadido enlace al portfolio del autor en la sección “Quién está detrás”.
- DevOps y documentación: nuevos workflows de CI/CD automatizan tests, auditorías y despliegues; documentación completa y plantillas de PR/issues facilitan contribuciones y mantienen la calidad del código.
Resultados (v0.2.5)
- Generación de cartas completamente en el navegador: mejora de privacidad al no depender de backend para datos personales.
- Catálogo de plantillas en Markdown con placeholders: mantenimiento más simple (editar contenido sin tocar lógica de UI).
- Exportación a PDF y copia rápida: reduce fricción para el caso de uso principal (enviar por correo/registro).
- “Guías y plantillas” como capa de descubrimiento: facilita navegación a cada modelo disponible.
- Señales técnicas para SEO/performance:
siteconfigurado en Astro y prefetch activado para navegación más fluida.
Roadmap corto
- Reactivar rutas i18n (ca/eu) en producción cuando las traducciones estén completas y validadas por revisores nativos; actualmente están redirigidas a
/en Netlify. - Sincronizar el módulo de cuenta local con almacenamiento en la nube opcional para que los usuarios puedan recuperar cartas en múltiples dispositivos.
- Ampliar la cobertura de tests E2E (Playwright) con escenarios de generación de carta, firma y descarga PDF.
- Incorporar analítica opt‑in anonimizada para priorizar nuevas plantillas y mejoras según el uso real (GA4 ya activo; pendiente dashboard de contenidos).
- Evaluar migración de rutas
/cay/eua subdominio o dominio independiente para mejorar el SEO multilingüe cuando la localización esté completa.