October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

Construindo a SurfaAI do zero: stack, decisões e o que eu faria diferente

Como a SurfaAI foi construída segundo o próprio autor: stack declarada, fluxo de destination charges no Stripe Connect, créditos emitidos por webhook e migração de Asaas para Stripe.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

O relato de Cesar Eduardo Sturmer, apresentado como engenheiro de software sênior, descreve como ele construiu sozinho a SurfaAI, uma plataforma que conecta alunos a instrutores ou prestadores de serviço e concentra agendamento, pagamento e repasse automático. O trecho mais útil para quem constrói algo parecido é a integração financeira: cobrança com destination charges no Stripe Connect Express, emissão de créditos apenas depois do webhook payment_intent.succeeded e backend em Supabase. Segundo o autor, o produto está em produção, com usuários e pagamentos reais, e migrou de Asaas para Stripe quando já tinha usuários ativos.

Todas as afirmações sobre implementação e operação são do autor, sem auditoria independente. Este texto organiza as decisões do relato original publicado no DEV Community em 30 de setembro de 2026, explica os trade-offs de cada uma e aponta o que precisa ser verificado antes de reaproveitar o desenho.

As an Amazon Associate I earn from qualifying purchases.

O que a SurfaAI se propõe a resolver

A proposta, segundo o autor, é que cada prestador não precise montar o próprio checkout, o faturamento nem a divisão de valores. O aluno agenda e paga dentro do produto, e a plataforma cuida do repasse ao prestador já descontada a sua taxa.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Essa centralização é o núcleo do produto e também o principal custo. Ao receber o dinheiro de vários prestadores, a plataforma passa a responder pelo fluxo de cobrança, pelos repasses e pelo que acontece quando algo falha no meio do caminho. Quase todas as decisões relatadas derivam dessa escolha.

A stack declarada

O autor descreve as camadas abaixo. A coluna da direita resume o papel que o texto atribui a cada peça.

Camada Tecnologia declarada Papel descrito pelo autor
Frontend e rotas de API Next.js, React e TypeScript Interface e endpoints no mesmo projeto
Interface Tailwind Construção da UI
Backend Supabase com Postgres, Auth e RLS Banco de dados, autenticação e controle de acesso por linha
Pagamento e repasse Stripe Connect Express Cobrança e transferência aos prestadores

O critério declarado é produtividade para um time pequeno sem abrir mão de segurança e correção financeira. É um raciocínio do autor, não um resultado medido. Vale entender o que RLS (Row Level Security) faz nessa arquitetura: o próprio banco decide quais linhas cada usuário pode ler ou alterar. Isso centraliza a regra de acesso, mas as políticas passam a ser código de segurança que também precisa de testes.

Destination charges: como o autor descreve o fluxo

O autor chama o desenho de destination charges. Pelo texto, a plataforma cria o PaymentIntent e define dois parâmetros: application_fee_amount, para a taxa da plataforma, e transfer_data.destination, para apontar a conta Connect do prestador. Depois que o pagamento é confirmado, a Stripe faz a transferência líquida ao prestador, segundo a descrição do autor.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Os três elementos da cobrança

  • Cobrança criada pela plataforma: o PaymentIntent nasce do lado da plataforma, que mantém o controle da transação.
  • Taxa da plataforma: application_fee_amount define quanto fica com a plataforma. Na Stripe, esse valor é expresso na menor unidade da moeda; em reais, em centavos.
  • Destino do repasse: transfer_data.destination aponta a conta Connect do prestador que recebe o restante.

O que o leitor precisa checar é o que esse modelo implica legal e fiscalmente no seu país e no tipo de serviço que vende. O relato apresenta o desenho como descrição da própria implementação, não como configuração validada para qualquer marketplace ou jurisdição.

Crédito só depois do webhook

Para as compras de créditos, o autor é direto:

“Desde o início, decidimos que créditos de compra nunca são criados no client-side — só no evento payment_intent.succeeded do webhook do Stripe.”

Segundo o autor, a regra tem dois objetivos: evitar concessões duplicadas causadas por atualizações repetidas da tela de confirmação e manter uma origem rastreável para cada crédito. Na prática, isso separa a experiência visual do estado financeiro. A tela pode mostrar sucesso antes de o saldo ser gravado, e a concessão depende apenas do evento recebido pelo servidor.

Essa separação elimina a duplicação vinda do cliente, mas não elimina a repetição de eventos: um webhook pode ser reenviado. O relato não detalha como o sistema trata esse caso.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Migração de Asaas para Stripe com usuários ativos

O produto começou com o Asaas e foi migrado para a Stripe quando já havia usuários. Essa é a parte do relato com maior risco operacional e a menos detalhada. O texto não descreve o plano de migração, os controles usados, a duração, os impactos para os usuários nem qualquer evidência de ausência de indisponibilidade.

Para quem lê, a pergunta prática é o que acontece com cobranças pendentes, repasses ainda não concluídos e prestadores já cadastrados no processador antigo quando o gateway troca. Nada disso aparece no relato, então ele não serve como guia de migração.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

O que o relato não estabelece

  • Números: não há dados publicados sobre usuários, receita, conversão, custo, latência ou redução de erros. O autor fala em usuários e pagamentos reais sem quantificá-los.
  • Código: o texto não mostra a implementação de destination charges.
  • Comparações: não há comparação entre alternativas de stack ou de gateway.
  • Balanço do que mudaria: o título promete “o que eu faria diferente”, mas o próprio autor descreve este primeiro texto como relato de decisões e trade-offs. Mudanças concretas não aparecem como lista.
  • Temas futuros: o autor anuncia publicações sobre destination charges com código, idempotência em webhooks de pagamento e migração de gateway sem downtime. Nenhum deles é desenvolvido neste texto.

Perguntas para avaliar um desenho parecido

Use o relato como ponto de partida para um checklist. Cada item é uma pergunta para o seu próprio projeto, não um resultado medido no texto.

  • Onboarding e verificação: quem coleta e verifica os dados dos prestadores, e quem responde quando a verificação falha?
  • Cobrança e repasse: em que momento o prestador recebe, e o que acontece com a taxa e o repasse quando há estorno ou contestação?
  • Falhas e duplicidade: como o sistema trata evento repetido, queda entre a confirmação do pagamento e a gravação do crédito, e reprocessamento?
  • Migração de gateway: como cobranças em andamento, saldos e repasses pendentes atravessam a troca, e como você comprova que nenhuma transação ficou sem destino?
  • Carga operacional: quanto trabalho de reconciliação e suporte uma equipe pequena assume quando o dinheiro passa pela plataforma?

The Bottom Line

O relato vale a leitura como registro de decisões de um desenvolvedor sobre um produto que, segundo ele, opera com pagamentos reais. Trate-o como descrição de um caminho, não como prova de que a arquitetura está correta. Antes de reaproveitar qualquer decisão financeira, confirme os detalhes na documentação atual da Stripe e com quem conhece as regras do seu mercado.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.