Saltar al contenido principal

Closegram

Closegram es una plataforma de redes sociales enfocada en conexiones cercanas. Admite publicaciones con múltiples tipos de contenido multimedia, mensajería en tiempo real, llamadas de voz/video, historias, monetización con monedas y suscripciones de creadores.

Estructura del monorepo

Turborepo con npm workspaces:

RutaDescripción
apps/frontend-nextjsAplicación web principal (Next.js 14, puerto 3001)
apps/frontend-publicAplicación React heredada (CRA)
apps/backendAPI de GraphQL (Apollo Server + Express)
apps/iosApp nativa de iOS
apps/docsEste sitio de documentación (puerto 3003)

Paquetes compartidos

PaqueteDescripción
packages/graphqlÚnica fuente de verdad — esquema GraphQL (schema.web/schema.admin) + operaciones (Web/, Admin/)
packages/apollo-webCliente TS generado @closegram/apollo-web para frontend-nextjs
packages/apollo-adminCliente TS generado @closegram/apollo-admin para frontend-admin
packages/apollo-swiftMódulo Swift ClosegramGraphQL generado para apps/ios
packages/tailwind-configConfiguración compartida de Tailwind
packages/typescript-configConfiguración compartida de TypeScript
packages/eslint-configReglas compartidas de ESLint

Ejecutar el proyecto

# All apps in parallel
npm run dev

# Main frontend only
cd apps/frontend-nextjs && npm run dev

# Docs only
cd apps/docs && npm run dev

Antes de ejecutar el backend o el frontend, deberás configurar sus archivos .env — consulta Configuración del entorno para la referencia completa de variables y Obtención de claves de API para instrucciones paso a paso sobre cómo obtener claves reales de Firebase, Google, Apple, Stripe, AWS y el resto.

Stack tecnológico

  • Frontend: Next.js 14 (App Router), React 18, Tailwind CSS
  • API: GraphQL vía Apollo Client (HTTP + WebSocket)
  • Autenticación: Firebase + Apple Sign-In + OTP por teléfono
  • Pagos: Stripe
  • i18n: i18next / react-i18next (EN, ES)
  • Tiempo real: GraphQL Subscriptions (WebSocket)
  • Notificaciones push: Firebase Cloud Messaging (FCM) + VoIP (iOS)
  • Monorepo: Turborepo + npm workspaces

Mapa de funcionalidades

FuncionalidadEstado
Autenticación (correo, Apple, Google, OTP por teléfono)
Publicaciones con múltiples contenidos multimedia y reacciones
Mensajería en tiempo real con tipos de mensajes enriquecidos
Llamadas de voz y video (LiveKit WebRTC)
Monedas, propinas y paquetes de monedas
Mensajes pagos (precio de desbloqueo)
Suscripciones de creadores y conversaciones restringidas por suscripción
Publicaciones exclusivas (restringidas por monedas)
Colaboradores de publicaciones y promociones
Historias y transmisiones en vivo (LiveKit)
Notificaciones (push, correo, SMS)
Publicaciones guardadas y colecciones
Hashtags y tendencias
2FA (TOTP) y gestión de sesiones
Reporte de contenido y reglas de auto-moderación
Exportación de datos (portabilidad GDPR)
Verificación de cuenta (insignias tipificadas)
Lista de usuarios favoritos
Ubicación y usuarios cercanos
Importación de contactos y sugerencias
Comentarios y votación de usuarios
Modo descanso y memorialización
Panel de administración (dashboard, moderación, analítica)
App de iOS (MVVM + Redux + Clean Architecture)