Bonafé

Case study / Produto e plataforma

Marca da AILE Promoções & Eventos, três figuras estilizadas em degradê laranja e vermelho.AILE

Uma 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

01

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.

Next.jsGSAPSplineSASS
02

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.

Next.js 16ElysiaJSTauri 2Postgres

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.

  1. 01

    Banco de talentos

    banco-talentos

    Quem existe e pode ser chamado, com importação em lote.

  2. 02

    Vagas

    vacancies

    O que o cliente pediu, traduzido em posição a preencher.

  3. 03

    Colaboradores

    colaboradores

    Quem entrou, com dados e documentos sob validação.

  4. 04

    Clientes e contratados

    clientes/[id]/contratados

    Quem trabalha para qual cliente, no período de qual ação.

  5. 05

    Agenda e equipe

    agenda

    Quando e com quem, sem depender de mensagem solta.

  6. 06

    Procedimentos

    procedimentos

    O que fazer em campo, versionado e acessível a quem executa.

  7. 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

Painel em blocosRepresentação da interface

Dashboard

modo de edição

Ações da semana

Vagas abertas

Escala de hoje

Pendências de documento

O painel não é uma tela fixa: é uma grade de blocos que cada usuário arruma, sincronizada em tempo real para dois operadores não sobrescreverem um ao outro.
  1. 01DashboardA leitura do dia, em blocos que o usuário arruma.
  2. 02ColaboradoresCadastro, documentos e histórico.
  3. 03ClientesContas atendidas e quem está alocado em cada uma.
  4. 04Banco de talentosBase de candidatos, com importação.
  5. 05EquipeO time interno e seus acessos.
  6. 06AgendaEscalas e compromissos da operação.
  7. 07Fluxos de trabalhoProcessos desenhados em editor de fluxo.
  8. 08ProcedimentosDocumentação operacional versionada.
  9. 09RelatóriosIndicadores por recorte, com página própria.
  10. 10AuditoriaQuem fez o quê, quando.
  11. 11E-mailCaixa e campanhas dentro do produto.
  12. 12NotificaçõesO que exige ação, sem virar ruído.

Arquitetura

Três superfícies falando a mesma língua

Arquitetura do projetoRepresentação da interface

apps

  • web

    Next.js 16, HeroUI v3, TanStack Query

  • server

    ElysiaJS, Better Auth, Drizzle

  • desktop

    Tauri 2 e React

packages

  • database

    Drizzle, Redis, singletons hot-reload

  • effect

    Erros tipados, retry, ponte com OTel

  • yjs

    Salas de tempo real e documentos

  • msgpack

    Transporte binário no gateway

  • brazilian-utils

    CPF e formatos locais

services

  • mail

    Microsoft Graph, sem servidor de e-mail

  • whatsapp

    Canal da equipe de campo

  • template

    Molde para o próximo serviço

infra

  • postgres · redis · caddy

    Containers, TLS, self-hosted

A regra do repositório é estender o pacote compartilhado, nunca duplicar a lógica dentro de um domínio. É o que mantém três superfícies falando a mesma língua.

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.