Fala pessoal,
Trabalho há anos com desenvolvimento e uma "dor" constante é gerar relatórios em PDF de alta fidelidade. Bibliotecas de frontend muitas vezes quebram o layout na hora de imprimir, e soluções de backend costumam ser chatas de configurar ou manter (PhantomJS e wkhtmltopdf já estão meio datados, e rodar Chrome headless na mão consome muita RAM).
Decidi criar uma API feita em NestJS + Playwright para resolver isso de vez, focando totalmente na experiência do desenvolvedor (no momento apenas existe api, mas estou pensando em criar uma interface).
O que ela faz?
Basicamente, você envia JSON e recebe PDF. Mas com superpoderes:
- HTML & CSS Moderno: Renderiza usando engine de browser real (Chrome/Chromium), então Flexbox, Grid e CSS moderno funcionam perfeitamente.
- Sistema de Templates:
- Master Layouts: Defina o cabeçalho/rodapé/estilos globais uma vez e reutilize em todos os relatórios.
- Partials: Header e Footer nativos do PDF (para repetir em todas as páginas com numeração correta).
- Handlebars: Toda a lógica de injeção de dados (
{{ cliente.nome }},{{#each itens}}) já está integrada.
- Alta Performance:
- Modo Síncrono para relatórios rápidos.
- Modo Assíncrono (Fila/BullMQ) para relatórios pesados.
- Webhooks: A API te avisa via POST quando o relatório estiver pronto (não precisa ficar fazendo polling, mas se quiser pode kkkk).
Por que estou postando aqui?
O projeto está funcional e estou abrindo para Beta Testers. Não tem pegadinha, não tem cadastro, não vou pedir cartão de crédito, eu gero um token e você usa.
Quero feedback real de devs que precisam gerar boletos, faturas, relatórios gerenciais, etc.
Como testar?
O acesso é controlado por API Key.
Se tiver interesse em brincar com a API, é só me mandar um email:
[andretimm2012@gmail.com]
Eu gero uma chave e te mando junto com a documentação.
Tech Stack para curiosos:
- NestJS
- TypeORM (Postgres)
- BullMQ (Redis)
- Playwright (Headless Browser)
- Handlebars
Qualquer dúvida técnica ou sugestões, podem perguntar aqui nos comentários também!
Abs!
Top comments (0)