Indústria

SaaS · Produtividade B2B

Cliente

UX System · Produto próprio

Papel

Product Designer + Eng.

Ano

2024 · em produção

Plataforma UX System

SINAIS DISPERSOSJiraNotionSlackExcelFigmaChatGPTWhatsAppEmail23 min perdidos por troca de contextoDEBATE IADSDataUXResearchSynthesisINSIGHTPagamento derruba 65%Fricção em validação de cartão.UX + Data confirmaram o padrão.entrou-65%DS96%UX92%acordoAbrir tarefa →upload → debate multi-agente → insight acionável → tarefa

Plataforma de produtividade que une tarefas, notas, funis e IA contextualizada num workspace compartilhado. Desenhada, pesquisada e codada por mim, da primeira entrevista ao deploy em produção.

Esse não é um case de interface. É um case de produto: começa em entrevistas com operadores e decisores, passa por modelagem de dados, design tokens, debate multi-agente e segurança a nível de linha, e termina num sistema rodando com equipes reais analisando funis e tomando decisão com IA que enxerga o contexto do workspace.

Contexto do negócio

Equipes de produto operam num patchwork: Jira para tarefas, Notion para notas, Slack para decisão, planilhas para dados. Cada ferramenta resolve um pedaço — ninguém costura o fio da decisão. A IA entrou nesse cenário como mais uma aba, respondendo bonito sobre nada em particular, porque não enxergava o contexto do produto.

O UX System nasce para fechar esse loop: uma plataforma única onde tarefa, nota, funil e análise qualitativa convivem — e onde a IA trabalha com contexto real do workspace, não com um prompt perdido. O princípio de desenho é o inverso da lógica "mais features": menos atrito, mais signal.

01 · contexto atual · 14 entrevistas · 3 perfis · saturação em 11Onde moram os dados hojeMesma decisão atravessa 5+ ferramentas por semanaJiratarefasNotionnotasSlackdecisãoExcelfunilFigmarascunhoEmailfeedbackWhatsAppalertaChatGPTIA solta!Switch cost médio: 23 min por troca41% da semana perdida em re-entrar em contextoFalas literais · transcritascódigos em destaque reaparecem em 8+ entrevistasPM · STARTUP SEEDTenho tarefa no Jira, nota no Notion,feedback no Slack. Ninguém costura isso.fragmentacaoDESIGNER SÊNIOR · SAAS B2BA IA responde bonito, mas semcontexto. Parece estagiário queacabou de chegar.ia-sem-ctxTECH LEAD · STARTUP SÉRIE AAchei chave de IA hardcoded nofront de um concorrente. Emproduto pago. Isso é comum.segurancaPRODUCT OPS · FINTECHAnalisar um funil leva meio dia.No final, só valida o que oCEO já decidiu.teatro

Pesquisa e descobertas

Conduzi 14 entrevistas em profundidade com dois perfis: operadores (PMs, designers, tech leads) e decisores (founders, product ops, diretores de design). Transcrevi, codifiquei em clusters de afinidade e testei hipóteses em protótipos antes de escrever qualquer linha de produção. Saturação ocorreu na 11ª entrevista; as três últimas confirmaram sem adicionar.

Três descobertas travaram escopo: (1) o switch cost entre ferramentas custa ~23 min por troca — contexto mental que se perde; (2) a IA sem contexto vira ruído plausível e piora decisão; (3) analisar quantitativo sem a voz do usuário produz decisão enviesada — e analisar qualitativo sem quantidade produz teatro.

02 · pesquisa · jobs + evidência + oportunidade14entrevistas11ªsaturação teórica47códigos nominais12temas após affinity3JTBD priorizadosJOBEVIDÊNCIACONTRA-EVIDÊNCIAOPORTUNIDADE01Quando recebo feedback do usuárioquero conectar ao funil em que ele caiupara saber se é ruído ou padrão#atrito-coleta9 / 14PM“Feedback fica no Slack, morre.”DESIGNER“Quando lembro, já passou.”9/14O que foi DESCARTADOautomatizar coleta sem consentimentodashboard que ninguém abremotivo: alto custo, baixo retorno em entrevistasOPORTUNIDADEIA que cruza qualitativo × quantitativoalto valorbaixo custodiferencial02Quando abro uma análise novaquero ver o contexto do workspacepara não gastar 1h re-explicando#ia-sem-ctx11 / 14PM“Precisa colar o contexto todo.”DESIGNER“Fica reinventando.”11/14O que foi DESCARTADOensinar contexto manualmente a cada sessãotrocar de modelo a cada tarefamotivo: alto custo, baixo retorno em entrevistasOPORTUNIDADEAgente com leitura do workspacealto valorbaixo custodiferencial03Quando compartilho uma notaquero link sem expor o time inteiropara revisar com o cliente sem risco#seguranca8 / 14PM“Mando link, time inteiro vê.”DESIGNER“Não dá pra revogar.”8/14O que foi DESCARTADOexpor nota por email com anexologin obrigatório antes do previewmotivo: alto custo, baixo retorno em entrevistasOPORTUNIDADEShare público com revogação + RLSalto valorbaixo custodiferencial

Decisões de produto

Design tokens antes de componentes

Cor, espaçamento, radius e tipografia centralizados. Trocar dark/light ou ajustar contraste AA vira mudança de token, não caça ao bug em 80 arquivos.

Isolamento real via RLS

Multi-workspace com Row Level Security no Postgres. Se o cliente escapar da verificação, o banco ainda recusa. Segurança é default, não feature opcional.

IA por debate, não por oráculo

Um Data Scientist e um UX Researcher analisam em paralelo; um Synthesizer resolve o conflito. Se um falha, o outro alimenta a síntese. Promise.allSettled no lugar de Promise.all.

Falha graciosa sempre visível

Error Boundary global, timeouts em uploads, fallback para perda de conexão. Heurística #9 do Nielsen — reconhecer e recuperar de erro — aplicada como gate de release.

03 · decisões · o que ficou e o que foi cortadoMANTIDO · 4 decisões estruturaisCORTADO · 4 que pareciam obrigatóriasRLS em todas as tabelassegurança é defaultcusto +2 semanasretorno +3 contratosDebate multi-agenteevita viés do LLM únicocusto +10 diasretorno precisão 1.6×Proxy IA em Edge Functionchave nunca no clientecusto +3 diasretorno 0 vazamentosDesign tokens primeirodark/light em 1 dia depoiscusto +5 diasretorno tema sem regressãoChat em tempo real entre usersduplica Slack; sem demanda realeconomizou -3 semanasEditor de dashboard drag-dropninguém abre o que ninguém editaeconomizou -4 semanasIntegração com 8 ferramentasfoco: resolver, não conectareconomizou -6 semanasIA que escreve código do apprisco > valor com time de 1economizou -2 semanasSomatório: +20 dias investidos em infra · -15 semanas evitadas em features que ninguém pediu

Arquitetura e construção

Stack escolhido para velocidade de iteração e baixo custo operacional. React 19 + Vite 8 no cliente, com Context API segmentado por domínio (auth, workspace, tasks, notifications, theme) — evita re-render em cascata e deixa o ownership claro. Supabase gerencia Postgres + Auth + Realtime + Edge Functions.

A chave do Gemini nunca toca o cliente: uma Edge Function serve como proxy, faz rate limit por usuário, valida uploads (PDF via pdf.js, planilha via xlsx) e loga custo por requisição. RLS guarda cada tabela por workspace_id. Realtime tem cleanup obrigatório no unmount — padrão da casa, auditado por linter customizado.

Front-end

React 19 · Vite 8 · Context isolado · tokens · a11y AA

Back-end

Supabase · Postgres · RLS em 14 tabelas · triggers de auditoria

IA

Gemini via Edge Function · Proxy · rate limit · log de custo

Parsing

pdf.js · xlsx · Timeout · limite de tamanho · sandbox

Integrações

WhatsApp Cloud API · Notificação crítica só

Qualidade

Lint custom · ErrorBoundary · 6 auditores especializados

04 · arquitetura · fluxo de uma análise qualitativaCLIENTEBORDAIADADOSReact 19 · Vite 8SPA com Context por domínioUpload PDF / XLSXpdf.js · xlsx · limite 10MBError Boundaryfallback com retryDesign Tokensdark · light · AAPOST /analyze · auth.jwtJWT check · RLSverifica workspace_idRate limit10 req/min por userProxy Geminichave no secret · nunca clientLog de custotokens in/out por requestPromise.allSettled([DS, UX])ORQUESTRAÇÃO · DEBATE DIALÉTICODSData Scientisttemp 0.3 · 6k tokRevisa dados brutos, calcula drops, cohort analysisUXUX Researchertemp 0.3 · 6k tokLê sessões, codifica, mapeia fricção mentalresultados (JSON)Synthesizer — UX-firsttemp 0.25 · 16k tok · tolerante a falha1. Recebe as duas perspectivas (ou apenas uma, se a outra falhou)2. Resolve conflitos priorizando a voz do usuário3. Devolve JSON estruturado para a UI renderizarINSERT · auditedSupabase · PostgresRLS por workspace_id · triggers de auditoria · realtime com cleanup obrigatórioanalysestasksnotesfunnelsmembers

Solução

Interface única onde o operador vive o dia: Kanban com drag-and-drop, prioridades e atribuição; notas compartilháveis por link público com revogação; análises qualitativas por upload de arquivo; funis com debate multi-agente; chat IA que lê tarefas, notas e funis do workspace — nunca de outro.

Mobile first para notificação e consumo; desktop first para criação e análise. A mesma decisão de produto atravessa os dois: insight acionável em primeiro plano, botão de próxima ação visível, nunca "exportar para Excel e ver depois".

uxsystem.app/ws/produto/funisUXUX SystemProdutoTRABALHOTarefas24Notas38Análises12Funis3IAChat contextualizadoAta de reuniãoResumo diárioEQUIPE · 4David (você)Mariana · DesignLucas · EngJúlia · OpsStatus · tudo okRLS · realtime · IAAnálises / Funis / Checkout Q3Onde perdemos o usuário?3.241 sessões · 5 etapas · importado de checkout_q3.csv · análise em 2.7sEntrou3.241100%Cadastro2.54278%-22%Dados pessoais1.67252%-34%Pagamento57418%-66%!Sucesso42413%-26%SÍNTESE · UX-FIRSTPagamento é o ponto de sangria — não o Cadastro.UX Researcher: "usuários relatam erro genérico 'tente novamente' em validaçãode cartão — não sabem se é limite, CVV ou instabilidade."Data Scientist: "drop proporcional em todos os cohorts, sem viés de horário."DSconfiança 96%UXconfiança 92%acordo: altoAbrir tarefa P1 →Exportar PDFCompartilhar10:42quarta, 17 abrilBom dia, David3 tarefas · 1 insight novoINSIGHT · ALTAPagamento derrubou 66%síntese pronta · toque para abrirHOJERevisar síntese do funilAnálises · 10:00Nota compartilhada c/ MarianaNotas · 14:00Publicar relatório Q3Análises · 17:00Pergunte à IA"Resumo das notas da semana"HomeTarefasIAEquipeDBVOCÊ"Resume o que decidimos sobre o checkout essa semana"UX SYSTEM · IALucas abriu tarefa P1 de validação de cartão (#142). Marianacomentou que erro genérico já havia aparecido em 2 funis anteriores.#142nota · Marianacontexto: workspace

Resultado

Em produção com equipes reais. Após auditoria de segurança independente (6 agentes especializados: autenticação, RLS, integrações externas, criações, estado, equipes), todas as tabelas passaram com isolamento validado, zero vazamento entre workspaces, chaves de IA fora do bundle e Error Boundary cobrindo 100% da árvore.

-72%

tempo de análise (2h → 3min)

+3.4×

notas compartilhadas vs mês 1

0

vazamentos entre workspaces

94%

tarefas fechadas no prazo

Tempo para análise qualitativa caiu de ~2h (extrair, tabular, escrever) para ~3 minutos (upload → debate → síntese). Adoção cresceu 3.4× em notas compartilhadas. 94% das tarefas fechadas no prazo. O número que mais importa, porém, é o que não aparece em dashboard: equipes relatam que "finalmente a IA ajuda em vez de atrapalhar".

05 · resultado · 90 dias em produção · 4 equipes reaisTEMPO DE ANÁLISE-72%2h → 3minNOTAS COMPARTILHADAS+3.4×vs mês 1VAZAMENTO ENTRE WORKSPACES0auditado 2× por quarterTAREFAS FECHADAS NO PRAZO94%+22pp vs linha de baseAntes · DepoisMedido em 4 equipes, baseline de 30 dias antes do rolloutExtrair dados → achar drop92 min6 minEscrever síntese qualitativa75 min4 minDistribuir para equipe40 min2 minAcionar tarefa a partir de insight65 min3 minAuditar segurança antes do release120 min18 minantes (linha de base)depois (UX System)AUDITORIA INTERNA · 6 AGENTES ESPECIALIZADOS100% dos domínios passaramantes de cada release · executa em ~2 minutosauditor-segurancaRLS · auth · OWASP · segredos14/14auditor-equipesconvites · roles · workspace switch9/9auditor-criacoestarefas · notas · análises · onboarding11/11auditor-estadocontext · memory leaks · re-renders8/8auditor-integracoesGemini · WhatsApp · pdf.js · xlsx7/7auditor-uxheurísticas · feedback · double-submit12/12

Design, código e IA — o ciclo fechado

Não existe mais a linha que separa "designer que desenha" de "dev que implementa". No UX System desenhei cada interação, validei contra as 10 heurísticas de Nielsen, implementei com foco em performance e segurança, e auditei com agentes especializados antes de cada release. A IA é ferramenta — o ofício continua humano: decidir o que vale, o que dispensar, o que tornar invisível para o usuário.

O que este projeto prova, em primeira pessoa, é que um profissional com domínio de UX, código e orquestração de IA entrega hoje o que ontem pedia um time. Não porque a IA substitui alguém, mas porque ela remove a fricção entre pensar e construir — desde que alguém ainda saiba o que vale a pena pensar.