$Substack2EPUB

NodeTypeScriptFastifyReactPostgreSQLViteTailwindPlaywright

O Substack2EPUB nasceu de uma necessidade simples: ler minhas newsletters do Substack como livro, no meu leitor de e-books, sem depender do app ou do e-mail. Construí uma API em Node/TypeScript com Fastify que importa automaticamente as newsletters que a conta já segue no Substack, através de um fluxo de autenticação sem senha (o próprio Substack envia o link de login, que a API troca por um JWT). A partir do feed, o usuário seleciona posts e converte em EPUB, inclusive mesclando vários posts num único livro, usando Playwright para renderizar o conteúdo original e uma fila de exportação assíncrona. O dashboard é em React + Vite + Tailwind, com TanStack Query cuidando do cache de estado do servidor. Escrevi a suíte de testes com Vitest (67 testes, 100% passando) cobrindo desde a autenticação até a geração do EPUB, e documentei toda a arquitetura para facilitar contribuições futuras.

← Voltar ao portfólio