Pular para o conteúdo
← Voltar para o Skalablog

Artigo publicado

AbacatePay: a arquitetura em quatro pastas que sustenta um gateway Pix real

Engenharia de SoftwareNext.js

A AbacatePay, gateway de Pix para desenvolvedores, opera com uma arquitetura de apenas quatro pastas: api, front-end, admin e documentação. Roda em Node com Fastify e MongoDB, e sustenta uma operação financeira real com equipe de duas pessoas. Veja o que cada pasta faz e por que a dupla não mudaria nada hoje.

Como funciona a arquitetura da AbacatePay em quatro pastas

A AbacatePay, gateway de pagamentos Pix feito para desenvolvedores, roda toda a operação sobre quatro projetos separados: a api, o front-end, o admin e a documentação. Segundo o vídeo publicado em março de 2025 no canal do Daniel Lima, essa arquitetura enxuta processou mais de 3.000 transações nos primeiros dois meses, com 2.000 usuários cadastrados e R$ 0 investidos em infraestrutura ou tráfego pago.

A regra implícita é proporcionalidade de esforço: capricho onde o público enxerga, simplicidade onde só o time entra. O front-end tem identidade visual própria; o admin é um template pronto, propositalmente feio, acessado só pelos fundadores. Cada pasta resolve uma dor distinta, e o time não superengenheira nenhuma delas.

PastaStackPúblicoNível de capricho
APIFastify, TypeScript, MongoDBFront-end e adminAlto (domínio do negócio)
Front-endNext.js, Tailwind CSS, shadcn/uiClientes e visitantesAlto (identidade própria)
Adminshadcn/ui com template prontoSó fundadores e equipeBaixo (proposital)
DocumentaçãoMintlifyDesenvolvedores integrandoAlto (open source)

O contexto importa. A dupla já tinha rodado a Alert Pix, plataforma de doações via Pix para streamers com áudio por inteligência artificial. Quando o gateway de pagamento da época derrubou a plataforma e bloqueou contas PJ e pessoais, com a operação transacionando cerca de R$ 74.000 por mês, eles decidiram construir o próprio meio de pagamento apoiados em uma comunidade de mais de 6.000 pessoas no Discord. A AbacatePay nasceu daí, e a comunidade Crazystack Typescript acompanhou o processo desde o início.

API: Fastify, TypeScript e MongoDB em monolito modular

A api da AbacatePay é um monolito modular escrito em TypeScript, que tipa o JavaScript e permite modelar filas e transações. O framework é o Fastify, focado em performance, e o banco é o MongoDB. Não há microsserviços. Os plugins do Fastify funcionam como módulos: o time copia um plugin de um projeto para outro e sobe um SaaS novo rapidamente a partir de um boilerplate próprio.

A escolha da stack foi pragmática. Node era o ecossistema que os dois fundadores já dominavam, o Fastify mostrou-se rápido na Alert Pix e o MongoDB tem um plano gratuito que encaixa num projeto sem investimento. Para filas e processamento assíncrono, o time usa BullMQ com Redis. Quando perguntam sobre escalabilidade, a resposta do vídeo é direta: pensar em escalar antes de ter escala é, nele, um erro de foco.

Duas respostas da comunidade merecem registro. Sobre modelagem, o banco é resolvido com módulos no próprio monolito. Sobre o backoffice, o admin não acessa o banco diretamente: ele consome a api, o que permite trocar ou criar outro backoffice sem tocar no domínio. Quem quiser aprofundar no conceito de monolito modular encontra material sobre o tema na plataforma do Crazystack Typescript, comunidade ligada ao Bootcamp do Dev Doido e ao Gustavo Dev Doido, com quem o projeto mantém conexão.

Vale um lembrete do vídeo: além do código existe a burocracia de uma fintech. Contratos, providers, nota fiscal, contabilidade e abertura de empresa consomem tanto tempo quanto o desenvolvimento. O vídeo foca no código, mas o aviso fica.

Observabilidade com webhooks do Discord

Para observabilidade sem ferramenta paga, o time usa webhooks do Discord: cada evento relevante notifica canais em tempo real. Transação em produção, transação em modo de teste, erro, login, pull request. Se às 8h ninguém fez login, algo está estranho.

Daniel compara a sensação à de dono de loja vendo quem entra pela porta. Sábado na hora do almoço, restaurante vazio? A fachada está errada, o chão está sujo, algo precisa mudar. No começo, antes de existir o admin, o Discord era a única janela de operação. Hoje ele divide essa função com o dashboard.

Front-end: Next.js com identidade visual própria

O front-end da AbacatePay usa Next.js, framework React para produção, com Tailwind CSS e alguns componentes do shadcn/ui. A maior parte dos componentes, porém, é escrita à mão. O time reconhece que não é o caminho mais rápido, mas foi a forma encontrada de fugir da internet preta e branca padronizada.

A crítica do vídeo é específica: todo produto hoje parece com o template padrão do shadcn, do mesmo jeito que todos pareciam Bootstrap antes. Para um produto indie de pagamentos, personalidade é parte do produto. Você precisa gostar de estar no ambiente, e a identidade visual da marca veio de referências variadas reunidas pelos fundadores.

SEO como conjunto de pequenas práticas

O SEO entra como prática contínua dentro da pasta app do Next.js. O blog é alimentado por arquivos em Markdown dentro de posts, e cada página define metadados com Open Graph para Twitter e outras redes, ajustando título e descrição de como o link aparece em cada rede. Escrever um post sobre taxação do Pix, por exemplo, é criar um arquivo e publicar. Daniel brinca que SEO é como namorar: não existe um único gesto que resolva, é um conjunto de boas práticas somadas que faz o site aparecer nas buscas.

Admin: um dashboard propositalmente simples

O admin é um projeto separado que consome a api e serve para visualizar usuários, transações e aprovar quem quer ir para produção. O time pegou um template pronto do shadcn, adicionou autenticação e seguiu em frente. O design é propositalmente sem identidade: é uma planilha, vista apenas pelos fundadores e pela equipe pequena.

A proteção vem em camadas simples:

  1. A URL não é pública, ninguém de fora chega nela.
  2. Todas as rotas que regem o painel são protegidas.
  3. A autenticação exige segundo fator, inclusive para o time interno.

Nada de papéis complexos, nada de multi-tenant. A lição do vídeo: simplifique enquanto o caso de uso é só você e seu sócio, e resolva escala quando ela chegar.

Documentação open source no Mintlify

A documentação é a única das quatro pastas 100% aberta ao público. O time refez tudo no Mintlify, plataforma de documentação que combina texto e requisições executáveis, e mantém o repositório aberto para contribuições via pull request ou issue. O tema criado por eles pode ser reutilizado por qualquer pessoa.

Antes do Mintlify, a experiência veio do Scalar, ferramenta que documenta endpoints no estilo Swagger e foi usada na época da Alert Pix para streamers integrarem doações. A migração ainda não é total porque alguns ajustes de requisições seguem pendentes. O princípio, em ambos os casos, é documentação enxuta: o erro comum de fintechs, no vídeo, é excesso de informação para um público sem tempo e sem paciência.

A integração prometida é simples: um desenvolvedor júnior consegue integrar o Pix da AbacatePay em menos de cinco minutos, teste que o próprio time conduziu. Entre os recursos já lançados estão link de pagamento, cupom e planos de Pix com recorrência, com cartão e afiliados no roteiro.

Deploy e o limite da hospedagem gratuita

O backend e o front-end eram hospedados na Fly.io, plataforma de deploy de aplicações com camada gratuita, num setup documentado pelo próprio canal como "deploy com R$ 0". Em 2025, com a escala crescendo, a camada gratuita deixou de comportar a operação e o time iniciou a migração para outra hospedagem.

É um problema bom, como o vídeo resume. Não há Python no projeto: toda a operação é Node.js, do backend ao front-end, o que mantém um único contexto técnico para o time de duas pessoas. A linguagem única em api, front e documentação é apresentada como a maior vantagem do ecossistema JavaScript para quem constrói sozinho.

Até o momento do vídeo, nenhum fundador mudaria a arquitetura. O projeto tinha poucos meses de vida, a satisfação com o monolito modular era alta e as atalhos tomados, chamados de "caminho das pedras", seguiam aceitáveis para o estágio. Ao acompanhar em 2026, vale checar a documentação oficial para o estado atual do produto, porque o vídeo retrata um momento inicial e o roteiro incluía assinaturas e cartão.

FAQ sobre a arquitetura da AbacatePay

Quais são as quatro pastas da AbacatePay?

São quatro projetos separados: a api em Fastify e TypeScript, o front-end em Next.js, o admin em shadcn/ui e a documentação open source no Mintlify. Cada pasta tem propósito e nível de capricho distintos.

A AbacatePay usa microsserviços?

Não. O vídeo deixa claro que a api é um monolito modular, organizado em plugins do Fastify que podem ser reutilizados entre projetos. O time prioriza velocidade de iteração com equipe mínima.

Qual banco de dados a AbacatePay usa?

MongoDB, em plano gratuito, escolhido pelo custo zero e pela familiaridade do time. O admin não acessa o banco diretamente: ele consome a api como qualquer outro cliente.

Por que Fastify em vez de outros frameworks Node?

Porque era o ecossistema que os fundadores já dominavam, mostrou boa performance na Alert Pix e permitiu criar um boilerplate reutilizável. A decisão foi pragmática, não ideológica.

Quanto custou para começar a AbacatePay?

Segundo o vídeo, R$ 0 investidos, com hospedagem na camada gratuita da Fly.io e banco MongoDB gratuito. Toda a comunidade cresceu de forma orgânica, sem tráfego pago.

A documentação da AbacatePay é open source?

Sim, é a única das quatro pastas totalmente aberta. Qualquer pessoa pode abrir pull request ou issue no repositório e reutilizar o tema criado para o Mintlify.

Quanto tempo leva para integrar o Pix da AbacatePay?

O time afirma que um desenvolvedor júnior conclui a integração em menos de cinco minutos, resultado de uma documentação enxuta e testada internamente.

Qual front-end a AbacatePay usa?

Next.js com Tailwind CSS e alguns componentes do shadcn/ui, mas a maioria dos componentes é escrita à mão para manter uma identidade visual própria e fugir do padrão visual da internet.

Vale copiar essa arquitetura para o meu SaaS?

Para um time enxuto sem investimento, o vídeo sugere que sim: monolito modular, um único ecossistema de linguagem, observabilidade barata via Discord e esforço de design proporcional à visibilidade de cada projeto.

Do vídeo de 22 minutos para o artigo que os buscadores encontram

O que fez a AbacatePay funcionar foi proporcionalidade: quatro pastas, cada uma com o esforço certo. O mesmo vale para conteúdo. A explicação de 22 minutos do Daniel, dada em vídeo, funciona no YouTube, mas ninguém encontra num buscador.

Se você também explica arquitetura, stack e decisões de código em vídeo, esse conhecimento merece vida em texto. Cole a URL do seu vídeo no Skala Blog: a plataforma transcreve e gera o artigo pronto para revisão. O mesmo fluxo de quatro pastas, agora para o seu conteúdo.

Source video