O problema
Uma pequena redação que mantém sites em WordPress precisa acompanhar muitas fontes, escolher as notícias, escrever, checar os fatos, encontrar uma imagem e depois publicar a mesma matéria nas redes sociais e em podcasts. Cada etapa é manual e acontece em uma ferramenta diferente.
O que eu construí
Construí uma plataforma web multiusuário que capta notícias de feeds e fontes da web e as leva, passando pela redação com IA, até a publicação no WordPress e em outros canais.
- Assistente de artigos em 12 etapas: fonte, notícia, pesquisa aprofundada, cinco opções de título, lead, corpo, revisão de fatos e gramática, SEO, imagem, áudio, revisão final e publicação. Cada etapa tem seu próprio endpoint, então uma etapa que falha pode ser repetida isoladamente.
- Personagens de IA: perfis de autor com identidade, tom e estilo, reutilizados entre os artigos. Tudo o que é escrito sob um mesmo “autor” mantém a mesma voz.
- Motor de bots: bots agendados buscam notícias, filtram, escrevem com um personagem escolhido e publicam ou salvam um rascunho. O agendador verifica a cada 60 segundos e aceita agendamentos diários, por hora, por intervalo e por dia da semana, com um tempo de espera que impede execuções duplicadas.
- Publicação multicanal: vários sites WordPress, Facebook, Instagram, X, Substack, podcasts no Spreaker e WhatsApp, além de notícias em áudio com vozes da ElevenLabs e vídeos com avatares da HeyGen.
- Perfis e créditos: 7 perfis, de administrador a testador. Cada usuário tem uma cota de créditos com registro de cada ação de IA e recargas via PayPal. Os administradores podem assumir a conta de um usuário para dar suporte.
- Pensada também para equipes no exterior: a interface está traduzida em 8 idiomas, incluindo árabe, hindi e chinês.
Os números
- 111 handlers de rotas de API por trás do dashboard.
- 67 páginas na aplicação, incluindo a área de administração.
- 8 idiomas de interface e 7 perfis de usuário com permissões separadas.
Com o que foi feito
Next.js 14 com o App Router, React 18, TypeScript e Tailwind CSS. NextAuth para login com e-mail, Google ou Facebook. MySQL 8 via mysql2. OpenAI para textos e imagens, com Gemini, ElevenLabs e HeyGen como provedores adicionais. As chaves de API de cada usuário são armazenadas criptografadas com AES-256-GCM. Um plugin WordPress complementar em PHP adiciona os perfis de jornalista e de redação dentro do WordPress. Também empacotei a plataforma como produto self-hosted, com guias de instalação e de arquitetura.
Por que foi feito assim
Optei por não usar ORM. As queries são SQL parametrizado puro via mysql2, e o Next.js compila em modo standalone em um único server.js. O motivo é a hospedagem: o engine WASM do Prisma ficava sem memória na hospedagem compartilhada cPanel, e um bundle standalone roda em servidores baratos. Os usuários usam as próprias chaves de IA, então a plataforma não paga pelas chamadas de IA deles.


