Diagnóstico · 18 Abr 2026

ApoloFlow precisa subir de patamar em 4 dias.

Auditoria completa das 18 rotas da plataforma. 20 bugs identificados, 3 bloqueadores de lançamento. Motor de Templates ainda em POC com gap relevante até o prometido pras propostas Competicion e Empório (envio 22/04).

Fonte: apoloflow.pages.dev
Viewport testado: 1440x900 · 390x844
Páginas auditadas: 18 de 18
Console errors: 0

Panorama O QUE ACHAMOS

Bloqueadores (P0)
3
impedem entrega premium
Qualidade (P1)
12
afetam percepção de premium
Polish (P2)
5
ajustes finos
Rotas OK
18/18
sem pageerror, sem 404

Três padrões se repetiram em 18 páginas auditadas.

1. Infraestrutura do cliente exposta na UI. Chaves de API (Anthropic, OpenAI, Groq, Gemini, Unsplash, Pexels) pedidas direto ao usuário em Configurações, custo por vídeo exibido em Vídeos IA. Inaceitável para ticket de R$ 2.190 a R$ 2.490 por mês. O cliente precisa contratar um serviço pronto, não virar integrador.

2. Mobile não foi auditado antes. Sidebar some em 390px sem alternativa de navegação, números de KPIs cortados no overflow, headlines cortadas, elementos colidindo com botão de ajuda. Oito rotas com o mesmo padrão de sobreposição do ícone "?" em cima de selects e CTAs.

3. Regressões em relação ao que a memória registrou. O logo SVG unificado v12 (16/04) não está em produção no onboarding (ainda mostra letra "A" em caixa roxa) e o Solar Noir não foi aplicado ao fundo do overlay (continua gradient roxo saturado hardcoded).

Bloqueadores (P0) 3 ITENS

Itens que impedem entrega premium. Todos resolvidos antes de 22/04.

P0 · BLOQUEADOR
BUG-17 · Configurações
Cliente paga R$ 2.490 por mês e a UI pede a chave API da Anthropic, OpenAI, Groq, Gemini, Unsplash e Pexels.
Página Configurações expõe 6+ campos de API keys com instruções do tipo "Obtenha key gratuita em console.groq.com". Viola a diretriz cliente leigo (nunca pedir configs técnicas) e a diretriz não expor infraestrutura. Daniel (Competicion) não vai abrir conta em seis serviços.
Migrar todas as chaves para variáveis server-side (Workers env / KV secret). Página Configurações fica só com branding e preferências.
P0 · BLOQUEADOR
BUG-10 · Vídeos IA
Custo operacional "$0.05/5s" visível no seletor de resolução.
Select "720p (~$0.05/5s)" vaza custo interno para o cliente final. Quebra a percepção de produto acabado e puxa margem pra negociação.
Remover referência a custo por segundo do label. Manter apenas resolução técnica (720p / 1080p / 4K) e, se precisar, um selo "econômico / padrão / premium".
P0 · BLOQUEADOR
BUG-06 · Mobile navegação
No viewport 390px a sidebar simplesmente some e não há botão hamburger.
Usuário sem como alternar entre as 18 rotas do produto quando está no celular. Metade da audiência que vai abrir o link pela primeira vez (WhatsApp, Story) fica travada no Dashboard.
Hamburger topo-esquerda que abre drawer off-canvas. Breakpoint 1024px aciona o modo mobile.

Qualidade premium (P1) 12 ITENS

Afetam a percepção de produto acabado. Resolver em sequência.

P1
BUG-01 · Onboarding mobile
Card de boas-vindas não é responsivo.
Em 390px a headline quebra em "ApoloFlo", o input do e-mail extrapola à direita e o botão "Próximo" sai da tela.
max-width: min(92vw, 480px); padding responsivo; inputs com width 100%.
P1
BUG-02 · Logo onboarding
Onboarding mostra um quadrado roxo com a letra "A" em vez do SVG oficial.
A memória v12 (16/04) registrou que o SVG inline foi aplicado em 3 pontos (sidebar, hero, onboarding). Em produção, só o header da sidebar recebeu. Regressão visível.
Injetar o mesmo SVG inline nos 3 lugares, escalado via CSS.
P1
BUG-03 · Inputs onboarding
Placeholder preto sobre fundo preto: texto ilegível.
"Ex: Minha Agência Digital" e "email@exemplo.com" não são lidos por quem acessa com a luz ambiente que um celular tem na rua.
Placeholder com rgba(255,255,255,0.45); input-bg #0B0B0F; texto 100% branco no foco.
P1
BUG-04 · Bypass demo
?demo=1 não pula o onboarding mesmo em sessão nova.
A memória v10 registrou que esse atalho passava a estar ativo. Hoje não passa. Dificulta a própria auditoria e demos rápidas.
checkOnboarding() ler URLSearchParams antes do localStorage. Se demo=1, setar LS e pular.
P1
BUG-05 · Gradient onboarding
Fundo roxo saturado hardcoded no overlay, fora do Solar Noir aprovado.
CSS do overlay: linear-gradient(135deg, #4F46E5, #7C3AED). O Solar Noir do hero já estabilizou em dark com halo âmbar reduzido.
Trocar por gradient dark #0F0F12 → #1A1C24 + halo âmbar opacity 0.22.
P1
BUG-07 · Contraste KPI
Números dos cards KPI em lilás de baixo contraste.
Dashboard, Performance e Aprovação usam número em lilás claro sobre dark. Legibilidade comprometida, sobretudo no mobile.
Número em branco 700-800; label em lilás secundário. Contraste 7:1 mínimo.
P1
BUG-08 e BUG-12 · Helper "?" sobreposto
Ícone de ajuda flutua em cima de 8 headers de páginas diferentes.
Recorre em Dashboard, Clientes, Brand Center, Visual Studio, Vídeos IA, Performance, Relatórios, Propostas, Contratos, Aprovação, Config, Trafego. Z-index e posicionamento errados no componente global.
Reposicionar o helper absolute/right: -28px fora do container, ou mover para o final do header.
P1
BUG-09 · Logo header
"Apolo FLOW" com setinhas âmbar no header ≠ SVG unificado v12.
Três versões de logo convivem no produto: header sidebar (tipografia + setinhas), onboarding (letra A), preview v12 (SVG inline gold shimmer). Fragmentação de identidade que já foi cobrada em memória.
Um SVG único em 3 pontos. Fonte do PNG retina 692x294 como fallback.
P1
BUG-15 · Empty state Relatórios
Resumo Executivo mostra "-100% vs mês anterior" quando não há dados.
Semanticamente errado: sem dados não é queda, é estado inicial. Primeira visita do cliente dá a impressão de que a conta está afundando.
Detectar zero-state: "Sem dados suficientes para comparativo" + skeleton suave.
P1
BUG-16 · Inconsistência KPI
Três padrões diferentes de card KPI convivem na mesma app.
Dashboard usa lilás; Performance combina laranja, verde, rosa, lilás; Relatórios usa azul teal, verde e âmbar. Sem semântica clara entre sucesso, alerta, neutro.
Tokens --kpi-success, --kpi-warning, --kpi-danger, --kpi-neutral aplicados globalmente.
P1
BUG-20 · KPI mobile cortado
Números renderizam truncados: "5.40" em vez de "5.400", "17.0" em vez de "17.00%".
Container não acomoda font-size 32px em 390px. Overflow esconde dígitos sem qualquer indicação.
font-size: clamp(22px, 5vw, 32px); overflow visible; container flex-shrink: 0.
P1
Performance · bundle
HTML single-file de 777KB com Material Symbols full baixando 1 a 3 MB de fonte.
CSS inline 330KB + JS inline 626KB + 457 referências a ícones sem subsetting. Aceitável hoje, insustentável quando a plataforma ganhar mais módulos.
Subset de Material Symbols (~30 ícones usados); defer do JS não-crítico; preload da Plus Jakarta no head.

Polish (P2) 5 ITENS

P2
BUG-11 · Brand Center
Seed default com Texto e Fundo idênticos (#666666).
Seed default coerente + guard pra alertar contraste < 3:1.
P2
BUG-13 · Visual Studio vazio
Tela em branco até o usuário buscar algo.
Empty state com ilustração âmbar e sugestões iniciais.
P2
BUG-14 · Modo Escuro redundante
Toggle de tema solto no rodapé da sidebar num produto que nasceu dark.
Mover para Configurações ou remover.
P2
BUG-18 · Botão PDF cortado
"Exportar PL..." em Propostas e Contratos (deveria ser "Exportar PDF").
min-width e white-space: nowrap no botão.
P2
BUG-19 · Amarelo fora da paleta
CTA "Link de Aprovação" em amarelo saturado que destoa do Solar Noir.
Migrar pro token âmbar do design system.

Motor de Templates PROMETIDO 22/04

As propostas da Competicion (R$ 2.490/mês) e do Empório das Grifes (R$ 2.190/mês) prometem templates.competicion.com.br e templates.emporiodasgrifes.com.br em produção. Hoje existe apenas a POC motor-poc-competicion.pages.dev com 4 layouts estáticos.

O que já existe

  • POC de rendering HTML com 4 layouts testados visualmente
  • Decisão arquitetural de engine compartilhada 1:N (memória project_apoloflow_motor_templates)
  • Schema config JSON rascunhado (brand, logo, palette, fonts, layouts, constraints)
  • Fluxo editorial do ApoloFlow que alimentaria o motor (Conteúdo, Visual Studio, Calendário)

O que falta até 22/04

  • Engine de render foto robusta (Cloudflare Browser Rendering API ou Puppeteer)
  • Engine de render vídeo (FFmpeg em Worker / Container, corte + intro + logo + trilha)
  • Config JSON carregado dinamicamente por cliente
  • Subdomínios templates.{cliente}.com.br apontando para a mesma engine
  • Interface cliente-facing (upload, preview, baixar PNG/MP4)
  • Auth simples por cliente
  • Biblioteca de primitivos reutilizáveis (foto bg, texto overlay, badge, marca)
Risco concreto. Fechar ambas as propostas sem a engine em produção obriga a operar manualmente a entrega dos primeiros 30 dias. Ainda é viável, mas corrói a promessa "motor exclusivo" e cria débito que se acumula no mês seguinte.

Roadmap 18→22 4 DIAS

Sequência sugerida. Discutimos cada bloco antes de executar.

Bloco 1 · Desexpor infraestrutura ~4h

BUG-17 + BUG-10. Mover chaves de API para Workers env. Configurações vira só branding. Tirar custo por segundo de Vídeos IA.

Bloco 2 · Mobile navegável ~3h

BUG-06 + BUG-20 + BUG-08/12. Hamburger drawer, ajuste de KPIs responsivos, reposicionar helper "?".

Bloco 3 · Onboarding Solar Noir ~2h

BUG-01 a BUG-05. Responsivo, SVG unificado, contraste, bypass, gradient.

Bloco 4 · Sistema KPI unificado ~3h

BUG-07 + BUG-15 + BUG-16 + BUG-09. Tokens semânticos, empty states, logo uniforme.

Bloco 5 · Motor de Templates MVP ~14-18h

Engine foto em produção (Browser Rendering API), config JSON por cliente, 4 layouts Competicion polidos, subdomínio templates.competicion.com.br no ar.

Bloco 6 · Replicação Empório ~4-5h

Swap de config + 4 layouts próprios em templates.emporiodasgrifes.com.br.

Bloco 7 · Polish final ~2h

P2 completos, Material Symbols subset, preload fonts, cache-busting _headers.

Soma: 32 a 37 horas de trabalho focado em 4 dias. Cabe se a prioridade for exclusiva. Engine de vídeo fica fora desse bloco inicial e entra na semana seguinte, operando manualmente no primeiro mês de cada conta.