Case study / Produto e plataforma
AILEUma operação de campo inteira dentro de um produto
A AILE recruta, contrata e coloca equipes em campo para ativações de marca. O trabalho acontece fora do escritório, muda a cada campanha e envolve cliente, equipe, agenda e prestação de contas. Construímos as duas pontas: o site que capta e a plataforma que opera.
- Papel
- Landing page e plataforma interna
- Natureza
- Projeto para cliente
- Superfícies
- Site, web app e app desktop
- Domínio
- Promoções, eventos e RH
- Entrega
- Monorepo, 3 apps e 9 pacotes
O cliente
Quem contrata pessoas para trabalhar onde a marca aparece
A AILE atua há mais de dez anos em promoções, eventos e recursos humanos, com operação em Campinas, Santos e São José dos Campos. O que ela vende é presença: alguém da equipe dentro do supermercado, do evento, da rua.
Isso muda a natureza do problema. Não é um time fixo em um escritório, é um elenco que se remonta a cada campanha, para clientes diferentes, em cidades diferentes, com procedimentos diferentes.
- Recrutamento e seleção
- Ativação de marca em campo
- Eventos corporativos e convenções
- Sampling, blitz e degustações
- Alocação e transporte corporativo
O desafio
Cada ação em campo é um projeto inteiro com prazo de dias
- 01
As pessoas mudam a cada campanha
Não existe organograma estável. Existe um banco de talentos que precisa virar equipe montada, em dias, com o perfil que o cliente pediu.
- 02
O trabalho não acontece onde o sistema está
Quem executa está em campo. O produto precisa alcançar essa pessoa por onde ela já é alcançável, não exigir que ela venha até o painel.
- 03
Alguém vai pedir a prestação de contas
Cliente cobra evidência, e a operação precisa reconstruir o que foi combinado, por quem e quando. Auditoria não é recurso extra, é requisito.
As duas frentes
Um site para captar, uma plataforma para operar
O site que capta
Next.js com animação em GSAP e uma cena 3D em Spline. A função é uma só: apresentar os cinco serviços e transformar interesse em contato.
A plataforma que opera
Monorepo com web, API e app desktop. É onde o talento vira equipe, a equipe vira escala e a escala vira relatório.
O modelo de domínio
Do talento ao relatório, sem buraco no meio
A entidade central não é o funcionário, é a alocação: uma pessoa, um cliente, um período. Cada etapa abaixo é uma área real do sistema, com rotas, schema e testes próprios.
- 01
Banco de talentos
banco-talentosQuem existe e pode ser chamado, com importação em lote.
- 02
Vagas
vacanciesO que o cliente pediu, traduzido em posição a preencher.
- 03
Colaboradores
colaboradoresQuem entrou, com dados e documentos sob validação.
- 04
Clientes e contratados
clientes/[id]/contratadosQuem trabalha para qual cliente, no período de qual ação.
- 05
Agenda e equipe
agendaQuando e com quem, sem depender de mensagem solta.
- 06
Procedimentos
procedimentosO que fazer em campo, versionado e acessível a quem executa.
- 07
Relatórios e auditoria
relatorios/[kpi]O que aconteceu, com rastro de quem registrou o quê.
A plataforma
Doze áreas, um painel que cada pessoa arruma
Dashboard
modo de ediçãoAções da semana
Vagas abertas
Escala de hoje
Pendências de documento
- 01DashboardA leitura do dia, em blocos que o usuário arruma.
- 02ColaboradoresCadastro, documentos e histórico.
- 03ClientesContas atendidas e quem está alocado em cada uma.
- 04Banco de talentosBase de candidatos, com importação.
- 05EquipeO time interno e seus acessos.
- 06AgendaEscalas e compromissos da operação.
- 07Fluxos de trabalhoProcessos desenhados em editor de fluxo.
- 08ProcedimentosDocumentação operacional versionada.
- 09RelatóriosIndicadores por recorte, com página própria.
- 10AuditoriaQuem fez o quê, quando.
- 11E-mailCaixa e campanhas dentro do produto.
- 12NotificaçõesO que exige ação, sem virar ruído.
Arquitetura
Três superfícies falando a mesma língua
apps
webNext.js 16, HeroUI v3, TanStack Query
serverElysiaJS, Better Auth, Drizzle
desktopTauri 2 e React
packages
databaseDrizzle, Redis, singletons hot-reload
effectErros tipados, retry, ponte com OTel
yjsSalas de tempo real e documentos
msgpackTransporte binário no gateway
brazilian-utilsCPF e formatos locais
services
mailMicrosoft Graph, sem servidor de e-mail
whatsappCanal da equipe de campo
templateMolde para o próximo serviço
infra
postgres · redis · caddyContainers, TLS, self-hosted
Alcance
O produto vai até onde o trabalho acontece
E-mail dentro do produto
Um serviço próprio sobre a API do Microsoft Graph, sem servidor de e-mail no meio. Sincroniza caixas pessoais e compartilhadas, recebe as mudanças por webhook e transforma urgência em notificação.
WhatsApp como canal de operação
Serviço dedicado para o canal onde a equipe de campo já responde, em vez de exigir que ela abra outro aplicativo.
Importação em lote
Colaboradores, clientes, contratados, banco de talentos e fluxos entram por importação. Migrar planilha é parte do produto, não gambiarra de implantação.
App desktop e push
Aplicativo em Tauri 2 para quem trabalha o dia inteiro no sistema, com notificação push via Firebase para o que não pode esperar.
Decisões de engenharia
Escolhas que aparecem no dia a dia de quem mantém
Monorepo com pacotes de verdade
Nove pacotes compartilhados, entre eles banco, erros tipados, transporte binário, tempo real e utilitários brasileiros. A regra é estender o pacote, nunca duplicar a lógica no domínio.
Erro tipado em vez de try/catch
Effect.js com erros nomeados e políticas de retry declaradas. Falha de rede, de banco e de autenticação são coisas diferentes, e o código trata como coisas diferentes.
Tempo real onde faz diferença
Yjs com gerenciador de salas próprio, para dois usuários mexerem no mesmo painel sem sobrescrever um ao outro.
Observabilidade desde o começo
OpenTelemetry no servidor e no front, com traços enviados para o Axiom. Quando algo falha em produção, a pergunta é onde, não se aconteceu.
Multi-organização e permissões
Autenticação com Better Auth, login social Google e Microsoft, e permissões separadas por administração e por organização.
Self-hosted por escolha
Postgres, Redis e Caddy com TLS em containers, para a operação rodar na infraestrutura do cliente e não em plataforma de terceiro.
Complexidade para clareza
O que a operação vê é o que sobrou depois do trabalho
A complexidade real
- Elenco que muda a cada campanha
- Vários clientes e várias cidades
- Procedimento diferente por ação
- Cobrança de evidência depois
A superfície entregue
- Um fluxo do talento ao relatório
- Um lugar por cliente e por ação
- Procedimento versionado no produto
- Rastro de auditoria automático
Software de RH costuma ser desenhado para o organograma. Este foi desenhado para o elenco, que é como esse negócio realmente funciona.
O resultado
O que existe hoje
Site publicado
Landing em aile.com.br apresentando os cinco serviços, com animação e cena 3D.
Plataforma com três superfícies
Web, API e aplicativo desktop compartilhando os mesmos pacotes e o mesmo modelo de dados.
Doze áreas em operação
Do banco de talentos à auditoria, cada área com rotas, schema e testes próprios.
Canais que a equipe já usa
E-mail e WhatsApp integrados ao produto, em vez de processos paralelos fora dele.
Uma nota sobre números: este case não publica dados de produtividade, custo ou volume da operação da AILE. São dados do cliente, e divulgá-los sem necessidade não acrescenta nada ao que o projeto demonstra.
O que aprendemos
Quatro coisas que este projeto ensinou
Modelar o negócio, não o organograma
A entidade central aqui não é o funcionário, é a alocação: uma pessoa, um cliente, um período. Acertar isso simplificou tudo o que veio depois.
Encontrar o usuário onde ele está
Integrar e-mail e WhatsApp custou mais que construir mais telas, e valeu mais, porque não exigiu mudança de hábito de quem está em campo.
Importação é feature, não implantação
Todo cliente chega com planilha. Tratar isso como parte do produto encurta a adoção de semanas para dias.
Auditoria compra confiança
Em operação terceirizada, poder reconstruir o que foi combinado vale mais que qualquer gráfico bonito no painel.
Tem uma operação que ninguém consegue enxergar inteira?
Se o seu negócio vive de coordenar pessoas, clientes e prazos ao mesmo tempo, é esse o tipo de problema que a gente gosta de modelar.

