Paleta de comandos

Navegá el sitio, cambiá el tema o saltá a un proyecto.

MP
Volver al trabajo
Estrella islámica de 8 puntas — logo de Deen
Super-app · Comunidad/2026/Sistemas distribuidos · Rust · Cross-platform

Deen

Super-app islámica construida de extremo a extremo — del gateway en Rust al renderer de Corán en GPU.

  • Rust
  • Axum
  • Pingora
  • NATS
  • UniFFI
  • React Native
  • Skia
  • WebXR
El ángulo

Arquitectura políglota de 10 microservicios con gateway Pingora y outbox NATS, reuso de código a través del límite de lenguaje (el mismo crate Rust corre en el server y dentro de la app vía UniFFI), y craft visual con starfield procedural de color astronómico.

0

Microservicios

0

Rutas

~1.500

Tests Rust

0

Paletas WCAG-AA

El problema

Una super-app que no puede permitirse inconsistencias

Cálculos religiosos sensibles (horarios de oración, calendario) que deben dar exactamente el mismo resultado en el servidor y en el dispositivo, dentro de un sistema con muchos servicios independientes.

La decisión

Rust de punta a punta y eventos por outbox

Modelé el dominio en crates Rust reutilizables y los expuse a la app vía UniFFI: el mismo código de prayer-times en server y cliente, sin reimplementar. La consistencia entre servicios se garantiza con un outbox transaccional sobre NATS y un gateway Pingora que centraliza auth.

El resultado

Políglota por fuera, coherente por dentro

108 rutas, 10 servicios, ~1.500 tests, y una capa visual cuidada — del Mushaf en GPU al cielo estrellado por clase espectral — sobre una base que no se contradice a sí misma.

En pantalla

Lo que se ve

Prayer Landscape

Las 6 oraciones ciclando (Fajr → Isha) en GPU Skia

Cielo por clase espectral

Color de estrella físicamente derivado

Luna creciente

Luna SVG fotorrealista sobre vacío estrellado

Topología

clientes → Pingora → 10 servicios → Postgres/Redis/NATS

Bajo el capó

Una pieza load-bearing

Código real del proyecto — la parte que sostiene la idea.

apps/web-landing/src/components/decorations/night-sky.tsx
TSX
// LCG determinista -> mismo cielo en server y cliente, sin hidratación rota.
function seededRng(seed: number) {
  let s = seed >>> 0;
  return () => {
    s = (s * 1664525 + 1013904223) >>> 0;
    return s / 0xffffffff;
  };
}

/** Color astronómico: 70% blancas, 18% cálidas (G/K), 12% frías (B/A). */
function starColor(hue: number) {
  if (hue < 0.7) return "rgb(255,255,255)";
  if (hue < 0.88) return "rgb(255,239,200)";
  return "rgb(207,225,255)";
}

Starfield por clase espectral. PRNG determinista (mismo cielo en server y cliente, sin hidratación rota) y color de estrella derivado de su clase espectral.

Lo resuelto

En concreto

10 microservicios (9 Rust/Axum + 1 Hono) tras un gateway Pingora con JWT Ed25519.

Outbox transaccional sobre NATS para eventos consistentes entre servicios.

El mismo crate Rust de prayer-times corre en el server y dentro de la app RN vía UniFFI.

Renderer del Mushaf en GPU con Skia y experiencias WebXR.

Sistema de 5 paletas accesibles WCAG-AA y starfield con color de estrella por clase espectral.