DOST

Ícone de DOST

Independente

Minha marca de roupas e a loja que construí para ela: catálogo, carrinho, frete, checkout com Stripe e pedidos.

Uma marca precisava de mais que uma vitrine

A DOST começou como minha própria marca de roupas. Páginas de produto bonitas eram a parte fácil. Vender de verdade significava que estoque, identidade, cotação de frete, pagamento e estado do pedido precisavam concordar sobre um único fluxo de compra. Se qualquer uma dessas peças mentisse para as outras, alguém ia pagar por algo que não deveria ter sido vendido.

O problema real era concordância. Produto, carrinho, cotação de frete, pagamento e pedido precisavam descrever a mesma compra, mesmo quando um dos serviços externos falhava no meio do caminho.

Sendo dono do caminho de compra

Construí a loja sozinho e sou dono tanto da marca quanto da engenharia. Descoberta de produtos, autenticação, carrinho, cotação de frete, Stripe Checkout e gestão de pedidos vivem num único app responsivo, para clientes logados e visitantes.

Isso coloca todo o caminho de compra no meu escopo: rotas de API, persistência, integrações de pagamento e frete, comportamento do carrinho e as transições de pedido que amarram tudo isso.

Mantendo o servidor honesto

Trato os valores atuais do banco como a fonte da verdade, em vez de confiar em preços de carrinho que chegaram do navegador. A disponibilidade é checada de novo nas fronteiras do checkout, porque estoque é um alvo móvel e um carrinho desatualizado não deveria ganhar.

Os pagamentos ficam dentro do Stripe Checkout. Eu não queria a loja coletando dados sensíveis de cartão diretamente. Visitantes ainda conseguem consultar um pedido depois, mas não finjo que essa consulta é a mesma coisa que uma conta de cliente completa.

O caminho de compra depende de serviços terceiros de pagamento e frete. Falhas externas precisam ser tratadas sem comemorar um checkout incompleto como se fosse um pedido concluído.

O que está rodando hoje

O resultado é uma loja ativa onde catálogo, carrinho, frete, checkout e pedidos compartilham um único fluxo de compra, em vez de se comportarem como demos separadas. Ela suporta tanto contas de cliente quanto compras de visitantes sem borrar a diferença entre as duas.

O repositório continua privado. Também não publico dados de clientes, faturamento, conversão, volume de transações ou afirmações sobre a confiabilidade dos pagamentos; nenhum desses números é necessário para explicar as decisões de engenharia por trás da loja.

Feito com

Next.js / React / TypeScript / Supabase / Stripe / Frenet / Zustand / TanStack Query