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.

Astro SolidJS Supabase Stripe FRED
AxioStats: Datos Versionados y API Estática sin Servidor

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 curl de 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.