AxioStats: Datos Versionados y API Estática sin Servidor
Infraestructura de datos reales: snapshots versionados en Git, gráficos SVG renderizados en servidor, API JSON estática con CORS y acceso monetizado vía Stripe.
La Fuente de Verdad, Versionada
AxioStats es una infraestructura de datos que trata la información como código: cada dataset vive como un snapshot JSON versionado dentro del repositorio, refrescado por un pipeline de descarga real (scripts/refresh-data.mjs) que consulta fuentes como FRED, el registro npm o Wikimedia. Nada se fabrica a mano: si un número cambia, el cambio queda registrado, auditable y revisable en Git como cualquier otra línea de código.
El modelo de datos es estricto: un dataset = dominio × motor. El sistema distingue cinco dominios (macroeconomía, mercados, ecosistema desarrollador, inteligencia artificial y medios) y mantiene datasets de referencia como tipos de interés, inflación, frameworks npm/PyPI, leaderboards de LLMs o latencia de APIs.
Render Server-First con Islas SolidJS
Construido sobre Astro 7, el contenido se entrega como HTML estático sin JavaScript bloqueante; la interactividad se hidrata únicamente donde existe:
- CommandPalette (SolidJS): búsqueda global con
Ctrl+K, categorizada y con atajos. - DatasetTools: exportación de cada dataset a CSV, JSON y PNG, snippet
curlde la API y código embed. - ChartCompare: comparador dual estilo terminal de datos (”+ Compare”) que carga dos series e indexa sus ejes.
- Poll (SolidJS): encuesta con persistencia local, tema claro/oscuro y menú móvil con cierre por
Escape.
Cada isla incluye tests colocalizados ejecutados con Vitest + @solidjs/testing-library bajo jsdom.
Gráficos Sin Librerías
Los gráficos de cada dataset se dibujan como SVG generados en servidor (DatasetChart.astro), sin una sola dependencia de charting en el cliente: el HTML ya llega con la curva dibujada, con un coste de 0 KB de JavaScript en la renderización de datos.
API Estática con CORS
Cada dataset expone una API estática de solo lectura en /api/datasets/<id>.json con cabeceras CORS habilitadas, generada en build. Los serializadores (CSV, JSON, tablas) y el resumen ejecutivo derivado de los datos reales están cubiertos por tests unitarios.
SEO y Distribución
Cada dataset genera su propia tarjeta OpenGraph de 1200×630 (public/og/) en EN y ES, el sitemap emite <lastmod> reales derivados del contenido versionado (nunca la hora del build), y la base incluye hreflang, JSON-LD, RSS para el blog y security.txt conforme a RFC 9116.
Monetización y Acceso (Billing Edge)
El acceso a los datos con valor añadido se controla en el borde: Cloudflare Functions exponen checkout.ts y stripe-webhook.ts contra Stripe, mientras que keys.ts gestiona llaves de API verificadas contra Supabase (autenticación) y el esquema Drizzle. El plan gratuito existe de forma deliberada; el tier de pago desbloquea el acceso Pro sin romper el modelo de datos público.
Internacionalización Milimétrica
EN es el idioma por defecto y ES es una réplica exacta de rutas (/ y /es/...) alimentada por diccionarios tipados con claves espejo, para que ningún string se desincronice entre idiomas.
AxioStats no es un dashboard decorativo: es una tubería de datos donde cada observación tiene procedencia, cada gráfico pesa cero en el cliente y cada acceso es controlable.