~/h0wzy/work/studiobiasantos LEIAME.mdworkcvprivacy-policyen

Studio Bia Santos

em produção trabalho para cliente

Manicure com atendimento particular a domicílio em Londrina e região.

2026-07-082026-08-16 · 23 commits

o_problema

Uma profissional autônoma sem presença digital, cujo agendamento acontecia inteiramente por conversa solta no WhatsApp: sem contexto do serviço, sem preço visível, sem prova social organizada.

o_que_faz

  • Página única, estática, sem backend, sem banco e sem estado de servidor.
  • Um card de agendamento que não reserva horário: monta a mensagem e abre a conversa no WhatsApp, onde o horário é confirmado por uma pessoa. Não há sistema para operar, e a confirmação continua onde já estava.
  • Hero, sobre com retrato real, serviços com preço, galeria com fotos reais de clientes, depoimentos como screenshots reais de WhatsApp, CTA final e rodapé de quatro colunas.
  • Calendário para escolha de data, WhatsApp flutuante, imagem de Open Graph gerada no tema da marca, e robots e sitemap gerados.

stack

frontend

Next.js (App Router) · React 19 · TypeScript · Tailwind CSS v4 · shadcn/ui on Base UI · Vitest

outros

Vercel · GitHub Spec Kit

medido

Procedimentos numerados de validação em navegador
25V-001 a V-025 nos quickstarts das specs
Pesos da fonte de display
1hierarquia vem de tamanho e respiro, por decisão

como_foi_construido

Spec-driven com quatro specs, uma constituição de projeto que prevalece sobre todo o resto, e uma especificação viva do produto mantida ao lado.

O rebranding de salão de bairro para boutique está documentado como spec própria, e as regras que sobraram dela estão escritas de forma proibitiva: uma fonte nomeada "acabou, não reintroduzir"; a paleta antiga vinho, marfim e blush "acabou, não reintroduzir". Componentes leem tokens semânticos, nunca um hex literal.

O detalhe tipográfico é a assinatura do projeto: a fonte de display tem exatamente um peso. Hierarquia vem de tamanho, entreletra e respiro, nunca de peso mais forte. Headings ficam fixos em peso 400 com síntese de peso desligada, porque faux-bold borra uma didone.

A tipografia é auto-hospedada. Google Fonts em tempo de execução é proibido no projeto, inclusive quando uma ferramenta tenta injetar.

Um único módulo de configuração é a fonte exclusiva de contato, serviços, preços, horários e disponibilidade.

limitacoes_conhecidas

  • O card de agendamento não reserva nada. É decisão de produto, não funcionalidade faltando: não há sistema para a cliente operar.
  • A suíte de testes cobre invariantes estruturais (contagem de rótulos, os seis cabeçalhos de seção, integridade das âncoras) e explicitamente não cobre aparência. O jsdom não carrega a folha de estilo, então o teste prova que o token foi aplicado e nunca que o pixel foi pintado.
  • Por causa desse limite, a validação de layout e acessibilidade continua sendo medição manual obrigatória em navegador real, com vinte e cinco procedimentos numerados em vez de um substituto automatizado.
  • Regras de conteúdo não são estilísticas: existem dois serviços e apenas dois, nenhuma prova social é inventada, e todo número publicado deriva de dado real em tempo de execução.

tempo de código rastreado

11 hrs 3 mins Fonte: WakaTime · rastreado desde 2026-03-17 até agora

voltar para todos os trabalhos