Voltar aos projetos
DestaqueAno · 2026

Dandy Portfolio

Meu papelDesenvolvedor full-stack (solo)

O portfólio que você está vendo agora não é um site estático — é uma aplicação full-stack completa: multilíngue, com captação de leads, geração de PDF e integração com banco de dados.

Next.js 16React 19TypeScriptSupabase

O problema

Precisava de um portfólio que também funcionasse como prova técnica em si — não só listar projetos, mas demonstrar arquitetura, i18n, integração de backend e deploy na prática.

A solução

Next.js 16 com App Router e React 19, TypeScript em modo estrito, internacionalização com next-intl (português, espanhol e inglês), Supabase como backend dos formulários de orçamento, e geração de PDF sob demanda com @react-pdf/renderer.

Minha responsabilidade

Projetei e construí o site inteiro sozinho: arquitetura, design system, os dois wizards de captação de leads, a geração de PDF, o sistema de traduções e o deploy na Vercel com domínio próprio.

Arquitetura

Next.js App Router com rotas de API próprias; os formulários usam React Hook Form + Zod, com o mesmo schema validado no cliente e no servidor; as rotas de API gravam no Supabase, geram um PDF do briefing e disparam e-mails via Resend.

Principais funcionalidades

  • Site multilíngue (PT/ES/EN) com next-intl, incluindo rotas e metadata por idioma
  • Dois wizards multi-etapas de captação de leads, com validação compartilhada cliente/servidor via Zod
  • Geração de PDF sob demanda a partir de cada briefing enviado
  • Página de status de projeto por token, privada e sem necessidade de login
  • Domínio próprio com deploy contínuo na Vercel

Decisões técnicas

  • Zod como fonte única de validação, compartilhada entre o formulário (client) e a rota de API (server), pra nunca ficarem dessincronizados
  • Honeypot simples nos formulários para filtrar bots sem precisar de captcha
  • Service role key do Supabase confinada só ao servidor, nunca exposta ao navegador

Desafios

Ainda vou detalhar os desafios técnicos reais deste projeto.

O que aprendi

Ainda vou detalhar os aprendizados específicos deste projeto.