No description
  • TypeScript 97.7%
  • Dockerfile 0.9%
  • JavaScript 0.8%
  • CSS 0.4%
  • HTML 0.2%
Find a file
2026-06-04 01:30:58 +02:00
.claude rumder 2026-05-28 14:26:00 +02:00
backend nueva prueba de redeploy 2026-06-04 01:30:58 +02:00
clickhouse rumder 2026-05-28 14:26:00 +02:00
docs rumder 2026-05-28 14:26:00 +02:00
mobile rumder 2026-05-28 14:26:00 +02:00
postgres rumder 2026-05-28 14:26:00 +02:00
shared rumder 2026-05-28 14:26:00 +02:00
web nueva prueba de redeploy 2026-06-04 01:30:58 +02:00
.dockerignore nueva prueba de redeploy 2026-06-04 01:30:58 +02:00
.env.example rumder 2026-05-28 14:26:00 +02:00
.gitignore rumder 2026-05-28 14:26:00 +02:00
.npmrc rumder 2026-05-28 14:26:00 +02:00
CLAUDE.md rumder 2026-05-28 14:26:00 +02:00
docker-compose.yml rumder 2026-05-28 14:26:00 +02:00
package-lock.json rumder 2026-05-28 14:26:00 +02:00
package.json rumder 2026-05-28 14:26:00 +02:00
README.md rumder 2026-05-28 14:26:00 +02:00

Rumder

App de citas con matching por compatibilidad IA, perfiles enriquecidos (video + voz), audio rooms en vivo y toolkit de safety. Mejor que Tinder, Bumble y Hinge porque pone el énfasis donde ellos no: conexión real antes que swipe ciego, y seguridad antes que volumen.

Estado actual: desarrollo local. La rama no se publica a GitHub hasta validación completa.


Stack

Capa Tecnología
Web React 18 + Vite + TypeScript
Mobile React Native + Expo SDK 50
Backend Node 20 + Fastify + TypeScript
BD relacional PostgreSQL 16 + pgvector + PostGIS
Cache / colas Redis 7 + BullMQ
Storage MinIO (S3-compatible, self-hosted)
Analytics ClickHouse
Realtime Socket.io (chat) + LiveKit (audio/video)
ORM Prisma
Auth Google + Apple OAuth + email/código OTP, sobre JWT ES256

Detalles en CLAUDE.md y diagramas en docs/architecture.md.


Estructura

rumder/
├── backend/   # API Fastify + workers BullMQ
├── web/       # SPA React + Vite
├── mobile/    # App React Native + Expo
├── shared/    # tipos TS compartidos
├── docs/      # arquitectura, runbooks
├── design/    # mockups Pencil (.pen)
└── docker-compose.yml

Quickstart

# 1. Configurar entorno
cp .env.example .env       # edita SMTP (envío de códigos), OPENAI, etc.

# 2. Levantar infraestructura (Postgres, Redis, MinIO, ClickHouse, LiveKit)
npm run dev:infra

# 3. Instalar dependencias (en workspaces)
#    --legacy-peer-deps: el workspace mobile (LiveKit RN) tiene un peer conflict que no
#    afecta a backend/web. Mobile se construye aparte con EAS.
npm install --legacy-peer-deps

# 4. Generar claves JWT locales (una sola vez)
cd backend && npm run gen:keys && cd ..

# 5. Migraciones de BD
#    Primera vez (entorno no interactivo): aplica la migración baseline.
cd backend && npm run prisma:generate && npx prisma migrate deploy && cd ..
#    Para crear nuevas migraciones en desarrollo (terminal interactiva): npm run prisma:migrate

# 6. Backend + Web (en terminales separadas)
npm run dev:backend
npm run dev:web

# 7. Mobile (opcional)
npm run dev:mobile

Acceso:


Monetización

Controlada por la variable SUBSCRIPTION_MODE:

  • free: todos los usuarios ven Premium completo, sin paywall. Modo de lanzamiento.
  • subscription: se activa Stripe (web) + IAP (mobile) y el paywall global.

Cambio sin redeploy: edita la variable en Coolify + restart del backend.

Tabla Free vs Premium completa en CLAUDE.md.


Despliegue

Coolify self-hosted sobre VPS. Detalles y checklist en CLAUDE.md → sección Despliegue en Coolify.

Resumen:

  • 2 apps Coolify: rumder-backend, rumder-web (mismo repo, Base Directory distinto).
  • 5 servicios: PostgreSQL, Redis, MinIO, ClickHouse, LiveKit.
  • Solo rumder-web, rumder-backend y livekit con dominio público.
  • Mobile fuera de Coolify (EAS build → stores).