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:
| Ruta | Descripción |
|---|---|
apps/frontend-nextjs | Aplicación web principal (Next.js 14, puerto 3001) |
apps/frontend-public | Aplicación React heredada (CRA) |
apps/backend | API de GraphQL (Apollo Server + Express) |
apps/ios | App nativa de iOS |
apps/docs | Este sitio de documentación (puerto 3003) |
Paquetes compartidos
| Paquete | Descripción |
|---|---|
packages/graphql | Única fuente de verdad — esquema GraphQL (schema.web/schema.admin) + operaciones (Web/, Admin/) |
packages/apollo-web | Cliente TS generado @closegram/apollo-web para frontend-nextjs |
packages/apollo-admin | Cliente TS generado @closegram/apollo-admin para frontend-admin |
packages/apollo-swift | Módulo Swift ClosegramGraphQL generado para apps/ios |
packages/tailwind-config | Configuración compartida de Tailwind |
packages/typescript-config | Configuración compartida de TypeScript |
packages/eslint-config | Reglas 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
| Funcionalidad | Estado |
|---|---|
| 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) | ✅ |