Introducción
Qué es BloomX y cómo se organiza esta documentación.
BloomX es un cliente de correo web multi-empresa, con marca propia por dominio, que recibe y envía a través de Resend, guarda en PostgreSQL y almacenamiento S3-compatible, y se amplía con extensiones. Esta documentación describe el sistema tal como está hoy y se verifica contra el código.
Qué ofrece#
- Multi-tenant real: N frontends (uno por empresa) sobre un backend compartido, sin secretos globales: cada instancia se autentica con su propia clave Ed25519 (Arquitectura).
- Tu marca completa: paleta por modo claro/oscuro, radio, tipografía y una landing de login configurable, con contraste AA garantizado (Temas, Landing).
- Correo completo: bandeja con búsqueda por operadores, etiquetas y reglas, contactos, calendario y citas, PWA, atajos e i18n es/en (Funciones).
- Envíos masivos: Elixir con plantillas Liquid, campañas en segundo plano, cuotas y bajas de un clic (Elixir).
- Extensibilidad: extensiones con contrato
handler(ctx), permisos, credenciales por dominio y hooks (DLP incluido) (Extensiones). - Seguridad por capas: MFA TOTP, sesiones revocables, cifrado en reposo con rotación de claves, assets firmados, antivirus opcional y auditoría (Seguridad).
Honestidad ante todo
Cada página indica lo que no existe o funciona a medias (por ejemplo: sin IMAP, snooze sin interfaz, sandbox que no es frontera fuerte, hook CRON sin disparador). La matriz CIS / NIST / ISO y los apartados "Límites" no maquillan.
Por dónde empezar#
- Quiero poner BloomX en marcha: Puesta en marcha, Variables de entorno, Despliegue y Correo: Resend y DNS.
- Quiero entender cómo encaja todo: Arquitectura y Seguridad.
- Soy diseñador y quiero adaptar la marca: Temas empresariales y Landing y login.
- Soy desarrollador: Crear una extensión, API del frontend y API del backend y firma.
- Algo falla: Operación y pruebas y Preguntas frecuentes.
Cómo usar esta documentación#
- Busca en el cuadro de la cabecera (atajo
/): indexa todas las páginas en el idioma activo. - Cada página tiene tabla de contenido (a la derecha en pantallas anchas, plegable en móvil) y enlaces a la página anterior y siguiente.
- Los bloques de código tienen botón Copiar. Todos los valores son marcadores de posición: nunca pegues secretos reales en el repositorio.
- Cambia de idioma con los botones ES / EN de la cabecera. Cada empresa puede ocultar o mostrar esta documentación.
Repositorios#
| Repositorio | Contenido |
|---|---|
bloomx | Frontend Next.js: interfaz, API /api/*, esquema con db:ensure, esta documentación |
bloomx-backend | Backend compartido: /api/config, registro de dominios, extensiones y sandbox, pagos |
bloomx-extensions | Extensiones (manifest.json + server.js), schema compartido y tests de contrato |
Primeros pasos
- ArquitecturaBackend compartido multi-tenant, N frontends y flujo de servicios.
- Puesta en marchaDe cero a un despliegue funcionando, en orden.
- Variables de entornoTodas las variables: obligatorias y opcionales, frontend y backend.
- DespliegueVercel (frontend y backend), cron, Upstash y base de datos.
- Correo: Resend y DNSWebhooks de Resend, SPF, DKIM, DMARC, MTA-STS y TLS-RPT.
Personalización
Funciones
- Funciones del correoReglas, labels, búsqueda, contactos, citas, offline, atajos e i18n.
- Elixir y LiquidPlantillas, filtros, campañas en segundo plano y bajas.
- Reuniones (Zoom y Meet)Crear reuniones de Zoom, Google Meet o enlace propio desde calendario, correo y citas.
- Sealer y OrganizerEnvío sellado (con sus límites reales) y organización con IA.
- Capacidades de IAProveedores y qué funciones usan IA.
- AlmacenamientoAdjuntos y activos en S3/B2/R2.
Seguridad
Desarrolladores
- ExtensionesContrato handler(ctx), manifest, permisos, sandbox y hooks.
- Cómo funciona el marketplaceNavegación, búsqueda, favoritas, suites con instalación conjunta, fichas y compatibilidad con instancias antiguas.
- Publicar tus metadatos de catálogopublisher, suite, categorías, etiquetas, capturas y changelog de tu extensión en el marketplace.
- Guía de desarrolladorPublicar extensiones de terceros: id, versionado, revisión, precios, reparto 70/30 y cobro.
- Guía de facturaciónComprar extensiones, suscripciones, ingresos, saldo, CSV y cuenta de PayPal.
- Configuración de PayPalOperador: app REST, variables, webhook, cron, DDL, sandbox/live y baja de Mercado Pago.
- Proveedores OAuth como extensiónEscribir un proveedor OAuth, dependencias, modos de autenticación, STRIDE y cumplimiento.
- Crear una extensiónPaso a paso con un ejemplo mínimo.
- Página completa y navegaciónCrear una página completa (cabecera, KPIs, gráficos, tabla) y una entrada de navegación con insignia, auth y reglas de seguridad.
- Kit de componentes y UIComponentes, tematización, estado, expresiones y acciones de las extensiones.
- Herramientas de extensionesSDK, plantilla, validador, playground, galería y gestión en /extensions.
- DiscordLib: bot de DiscordBot de Discord por REST sin gateway: ajustes, permisos, ejemplos, garantías del núcleo, Interactions por HTTP y límites en serverless.
- TSDocs: referencia del SDKInterfaces, tipos, funciones, acciones y servicios del host, generados de los .d.ts del SDK.
- API del frontendEndpoints públicos y autenticados con ejemplos curl.
- API del backend y firmaBackend compartido y protocolo de firma v1 con código Node.
Operación
- Consola de administraciónUsuarios, cuentas, correo, marca, extensiones, seguridad, auditoría y retención.
- Filtro de spam y remitentesMotor explicable, niveles, listas de bloqueo y permitidos, aprendizaje y correos externos.
- Importar y exportar correoMBOX, EML, ZIP y PST desde Gmail, Titan, Outlook o Thunderbird; buzones faltantes, cifrado y salvaguardas.
- Operación y pruebasBackups, migraciones, pruebas, E2E y solución de problemas.
- Admin CLI y consola de comandosTerminal web y CLI `bloomx` por HTTPS: instalación, login, niveles de permisos, sesión privilegiada única, tokens y comandos.
- Preguntas frecuentesRespuestas rápidas a los problemas habituales.