ProdutoNo ar

Inamorei, cartas de amor digitais

Cartas de amor digitais com fotos, música e contador do tempo juntos, que construí com um parceiro. Quem compra monta a carta em 4 passos, paga R$ 9,90 por Pix ou cartão sem criar conta e recebe um link para presentear.

Papel
Desenvolvimento full-stack com um parceiro. Fiz o painel, a IA, os webhooks de pagamento, a página da carta e o sistema visual
Período
maio – jun. 2026
Stack
Next.js, TypeScript, Supabase, PostgreSQL, Stripe
Commits
26 de 38
Página inicial e primeiro passo da criação da carta, no ar.
pagamento único, Pix ou cartão
R$ 9,90
semanas até a primeira versão
4
correções de segurança rastreadas no código
17

Contexto

Presente digital costuma ser compra por impulso, e exigir cadastro atrapalha a venda. O Inamorei entrega uma página de presente montada em minutos, paga uma vez e enviada como link. Por trás, o problema é cobrar e publicar para um comprador anônimo, confirmando o pagamento por dois caminhos sem publicar a carta duas vezes.

O que faz

  • Criação da carta em 4 passos com preview ao vivo: nomes e template, data, carta, música, fotos e roleta.
  • Texto da carta escrito ou melhorado por IA em 4 tons: romântico, poético, leve e profundo.
  • Busca de música no YouTube, só com vídeos que podem ser incorporados.
  • Até 6 fotos por carta.
  • Checkout sem cadastro: Pix com QR Code e Copia e Cola ou cartão pelo Stripe.
  • Página da carta com retrospectiva estilo Stories, envelope que abre, contador do tempo juntos e player.
  • Programa de afiliados com login pelo Google, comissão por faixas e saque via Pix.
  • Painel administrativo com indicadores, funil de conversão e cartas recentes.
  • Página inicial em português e inglês com dados estruturados, sitemap e llms.txt.
  • Rotina diária que apaga as cartas que ficaram em rascunho.

Decisões

Webhooks de pagamento verificados sem SDK

Nos webhooks do Pix e do cartão, o HMAC-SHA256 é calculado sobre o corpo cru da requisição, comparado em tempo constante e aceito só dentro de uma janela de 5 minutos, contra replay.

Confirmação de pagamento sem publicar duas vezes

A carta pode ser liberada pelo webhook ou pela consulta de status que o checkout faz a cada 3 s. O evento só é marcado como processado depois de concluído, então uma falha no meio volta no retry, e as atualizações condicionais impedem a publicação dupla.

Uma IA que só escreve cartas

O texto de quem usa vai delimitado como conteúdo, não como instrução. A resposta é limpa e descartada se parecer recusa ou meta-resposta, e cada IP pode pedir no máximo 8 textos à IA por hora.

A retrospectiva para quem recebe

Até 8 slides, conforme o conteúdo da carta, com barra de progresso, toque para avançar, segurar para pausar, atalhos de teclado e respeito à preferência de movimento reduzido.

Um sistema visual próprio

18 tokens de cor, três famílias tipográficas e componentes de marca como selo de cera, carimbo, polaroid e textura de papel, usados na página inicial, na criação e na carta.

Correções de segurança rastreáveis

Dezessete itens de uma auditoria de segurança estão citados por ID no código, ao lado do que os resolve: CSP e mais 6 headers, 9 limites de taxa por IP e o sufixo dos links gerado com crypto.randomBytes.

Detalhes técnicos

Arquitetura
  • Monólito Next.js 16 organizado por domínio: criação, carta, pagamento, afiliados e admin.
  • Supabase Postgres; toda escrita passa pelo servidor, em Server Actions, rotas e webhooks.
  • Rate limit com Upstash Redis em 9 pontos, CSP e mais 6 headers de segurança.
Pagamentos
  • Pix pela AbacatePay e cartão pelo Stripe Payment Element, chamados via REST.
  • Webhooks verificados por HMAC e status consultado a cada 3 s até abrir a carta.
Próximo projetoSite da REDD