APPProjetosExperiênciaTecnologias|
Voltar
ProjetosO que já construí, com detalhes técnicos.
Em produção

Pagefy: sites prontos pra vender a comércios locais.

Pagefy

Um SaaS pra quem vende sites a comércios locais: busca numa cidade os negócios que não têm site no perfil do Google, gera com IA um site pra cada um a partir dos dados reais (nome, endereço, telefone, horários e fotos) e publica num link público que o vendedor manda pro dono pelo WhatsApp. Tudo funciona por créditos, e o custo de cada ação aparece antes de ela rodar. Frontend na Vercel, API e banco no Railway, pagamento real via Pix e cartão.

Next.js 16
React 19
TypeScript
Tailwind CSS v4
Node.js / Express
Prisma
PostgreSQL
Claude API (Anthropic)
Google Places API
Google OAuth
Asaas (Pix e cartão)
Leaflet
Vercel + Railway
FLUXO TÉCNICO
  • Login só com Google: o backend valida o token no Google (conferindo o aud contra o próprio client id) e devolve um cookie HttpOnly assinado com HMAC, válido em pagefy.app e api.pagefy.app, sem tabela de sessão.
  • A busca consulta a Google Places API por cidade e ramo, filtra quem não tem site, está fechado ou fica a mais de 35 km, e guarda o resultado em cache por 6 h compartilhado entre usuários — cidade repetida não custa nada. O app já abre com a cidade do visitante buscada (localizada pelo IP).
  • O gerador reserva os créditos ao confirmar o prompt, faz uma checagem rápida na web se o negócio já tem site próprio e, se não tiver, gera o HTML numa chamada única à Claude. Se falhar ou for interrompido, os créditos voltam na hora.
  • O site é publicado em /p/[slug], e o botão “Enviar pro dono” gera uma mensagem de WhatsApp com o link, pronta pra editar ou abrir já preenchida.
  • O checkout acontece dentro do app: Pix com QR Code (com polling do status e webhook do Asaas) ou cartão, com planos virando assinatura recorrente. Estornos totais ou parciais tiram os créditos proporcionais de forma idempotente, travando a linha do pagamento (FOR UPDATE).
DESTAQUES
  • Segurança em camadas pro HTML escrito por IA: o código é limpo de scripts externos, trackers, formulários e redirecionamentos na prévia, no download e na publicação, e a página pública é servida com uma CSP estrita que bloqueia qualquer chamada de rede.
  • Preços decididos por custo medido: cada chamada paga registra a ação que a causou, e trocar o gerador de um agente com ferramentas por uma chamada única derrubou o custo por site de ~US$ 1,30 pra ~US$ 0,50 mantendo a qualidade.
  • Proteção contra abuso do plano grátis: o bônus de boas-vindas é concedido uma vez por rede a cada 24 h, guardando só um HMAC do IP, nunca o IP em si.
  • Infraestrutura de produção completa: domínio próprio com DNS, e-mail no domínio (DKIM/SPF), migrations aplicadas a cada deploy e health check.
Em produção

Portfólio Pessoal

Portfólio Pessoal

Este site: frontend em Next.js/TypeScript com React Compiler ativado, hospedado na Vercel. O contador de visitantes do rodapé consulta uma API própria em Node.js/Express, com persistência via Prisma/PostgreSQL — mantida como um serviço à parte do frontend.

Next.js 16
React 19
TypeScript
Tailwind CSS v4
Node.js / Express
Prisma
PostgreSQL
FLUXO TÉCNICO
  • No carregamento, o componente do contador faz um fetch pra API externa de visitas.
  • A API valida/registra o IP do visitante numa tabela via Prisma (com restrição de unicidade), e devolve a contagem total.
  • O calendário de atividade do GitHub observa o atributo data-theme do <html> via MutationObserver, trocando de paleta de cores junto com o toggle de tema, sem recarregar a página.
DESTAQUES
  • React Compiler habilitado, otimizando re-renders automaticamente sem memoization manual.
  • Ambientes separados por variável de ambiente: desenvolvimento aponta pra API local, produção pra API hospedada.
  • Bug de rede documentado e resolvido: o Next.js 16 bloqueia por padrão o WebSocket de hot-reload de origens fora de localhost, o que quebra silenciosamente todos os cliques ao testar pelo celular na mesma rede — corrigido via configuração de origens permitidas.
Em desenvolvimento

DevTracker

DevTracker

Um tracker pessoal de sessões de estudo/código, construído como projeto de aprendizado prático da stack TypeScript → Next.js → Tailwind → Node → Prisma/PostgreSQL — documentando convenções próprias num arquivo dedicado enquanto aprendo cada camada na prática.

Next.js 16
React 19
TypeScript
Tailwind CSS v4
O QUE JÁ EXISTE
  • Navegação completa (Dashboard, Sessões, Estatísticas, Calendário, Configurações) com o layout final da interface.
  • Página de Sessões com o design pronto: cards de estatísticas, filtros e busca — hoje com dados de exemplo, sem persistência real ainda.
PRÓXIMOS PASSOS
  • Persistência de sessões (tecnologia, tempo, data, nota) via Prisma/PostgreSQL.
  • Cálculo real de estatísticas agregadas: horas totais, streak e tecnologia mais estudada.
  • Heatmap de atividade diária, no estilo do calendário de contribuições do GitHub.
No ar há 6 meses

AnalisaCV: um SaaS de análise de currículo.

AnalisaCV

Uma aplicação web sem framework nem bundler que extrai o texto de um currículo em PDF direto no navegador, gera uma crítica gratuita via IA e libera a reescrita completa do documento mediante pagamento via Pix.

JavaScript
PDF.js
html2pdf.js
Claude API (Anthropic)
Mercado Pago (Pix)
Vercel Serverless Functions
FLUXO TÉCNICO
  • Upload do PDF: o PDF.js extrai o texto inteiramente no navegador — o arquivo não chega a sair do client nessa etapa.
  • O texto vai pra uma função serverless que monta um prompt e chama a Claude Haiku via fetch direto na API da Anthropic (sem SDK), pedindo um JSON estruturado com pontos fortes, fracos e sugestões; a função repara manualmente o JSON retornado (remove blocos de markdown, extrai via regex), já que a chamada não usa modo JSON nativo.
  • Ao pagar, outra função valida o CPF e cria a cobrança Pix no Mercado Pago com uma idempotency key (CPF + timestamp), retornando o QR Code.
  • O frontend faz polling num endpoint de status até o pagamento ser aprovado — sem uso de webhook.
  • Aprovado o pagamento, uma segunda chamada à IA reescreve o currículo completo, com um prompt com regras explícitas contra alucinação ("nunca invente experiências, mantenha 100% dos fatos reais"), e o resultado é exportado em PDF via html2pdf.js.
DESTAQUES
  • Arquitetura deliberadamente sem framework no frontend e sem SDK da Anthropic no backend, evidenciando domínio dos fundamentos por trás das abstrações.
  • Prompt engineering com guard-rails explícitos contra alucinação, num caso de uso sensível (reescrever fatos profissionais reais de alguém).
  • 100% serverless: sem servidor dedicado, escala a zero, funções isoladas por responsabilidade (análise, criação de pagamento, verificação de pagamento, reescrita).