Um sistema de mensagens completo estilo Slack, construído dentro do MeshApp. Canais, DMs, threads, reações, presença online e muito mais — tudo conectado ao ecossistema existente.
Tudo que você espera de um chat moderno, integrado ao ecossistema MeshApp.
Canais públicos e privados por equipe, projeto ou tópico. Qualquer colaborador cria e gerencia.
DMs 1-on-1 e em grupo. Encontre ou crie conversas instantaneamente com colegas.
Responda a mensagens específicas sem poluir o canal principal. Mantenha contexto organizado.
Reaja a mensagens com emojis. Feedback rápido sem precisar digitar.
Veja quem está online em tempo real. Bolinha verde integrada com o sistema de presença.
Envie imagens, documentos e vídeos. Mesma infraestrutura S3 do MeshApp — sem limite extra.
Encontre qualquer mensagem em qualquer canal. Busca poderosa com PostgreSQL full-text search.
Configuração por canal: todos, somente menções ou mudo. Push notification para offline.
Fixe mensagens importantes no canal. Acesso rápido a informações críticas.
Edite suas mensagens a qualquer momento. Indicador visual de "editado". Exclusão soft.
Mencione usuários específicos ou @todos para notificar o canal inteiro. Autocomplete integrado.
Badge de não-lidos no menu lateral, mesmo sem estar na página de chat. Nunca perca uma mensagem.
Preview de como o chat ficará integrado ao MeshApp. Layout com sidebar de canais, área de mensagens e painel de threads.
O socket conecta no login. O badge vermelho de não-lidos aparece no menu lateral mesmo fora do /chat. Você nunca perde uma mensagem.
Mensagens aparecem instantaneamente na tela antes da confirmação do servidor. Zero delay perceptível.
Lista de mensagens virtualizada com react-virtuoso. Performance perfeita mesmo com milhares de mensagens.
5 entidades TypeORM seguindo os mesmos padrões do MeshApp (UUID, timestamps, soft delete).
(channel_id, created_at DESC) em chat_messages — Query principal(channel_id, user_id) UNIQUE em chat_channel_members — Membership(user_id) em chat_channel_members — "Meus canais"(parent_message_id) em chat_messages — ThreadsGIN(to_tsvector('portuguese', content_text)) — Full-text search(account_id) em chat_channels — Multi-tenancyComo o sistema se integra com a infraestrutura existente do MeshApp.
15+ eventos real-time: receive-message, message-updated, message-deleted, thread-reply, reaction-updated, user-typing, presence-update, read-receipt, join-channel, leave-channel...
Mensagens enviadas via POST /api/chat/messages com multipart/form-data para suportar upload de arquivos. Server persiste e emite via gateway.
Queries de canais e mensagens via GraphQL com paginação cursor-based. Cache automático via Apollo Client.
Por que trazer o chat para dentro do MeshApp faz sentido.
| Aspecto | Slack (Hoje) | MeshApp Chat (Proposta) |
|---|---|---|
| 💰 Custo | Licença separada por usuário | ✓ Incluso na plataforma |
| 🔗 Contexto | Separado do sistema de RH | ✓ Integrado (feed, PDI, feedback) |
| 🏆 Gamificação | Nenhuma | ✓ XP e MeshCoins por interação |
| 🟢 Presença | Apenas no Slack | ✓ Reflete uso real da plataforma |
| 🔎 Busca | Limitada no free tier | ✓ Full-text sem limite |
| 📎 Arquivos | Storage do Slack (limitado) | ✓ Mesmo S3 da plataforma |
| 🔔 Notificações | Separadas, outro app | ✓ Centralizadas no MeshApp |
| 👥 Multi-tenancy | Workspace separado | ✓ Mesmo account system |
| 📈 Engagement | Tira usuário do MeshApp | ✓ Mantém usuário no MeshApp |
| 🔒 Dados | Servidor externo (EUA) | ✓ Próprio, sob controle total |
| 🔄 Alternância | Trocar entre 2+ apps | ✓ Tudo em um lugar só |
4 fases, estimativa de 12 semanas com 2 devs (1 back + 1 front).
A infraestrutura já existe. WebSocket, Redis, S3, Event Emitter — tudo funcionando. Só precisamos construir em cima.