Pular para o conteúdo
<Dev.Lucas />
Voltar aos projetos

Marketplace B2B · SaaS

Negócios

Marketplace que conecta clientes a empresas e profissionais autônomos em todo o Brasil, com busca com IA, até 3 orçamentos gratuitos, chat, comunidade e painéis por perfil. Web e app Android.

Meu papel
Desenvolvedor full-stack · projeto autoral, da modelagem ao deploy
Período
Desde mai 2026
ReactTypeScriptNode.jsExpressSupabaseTanStack QueryCapacitor
Página inicial do Negócios, com a busca por serviço, categoria ou cidade.

Em números

  • 23

    permissões de acesso por papel (RBAC)

  • 20+

    migrações SQL versionadas

  • 2

    repositórios: API em Node.js e site em React

Contexto

O Negócios (negocios.com.br) é um marketplace que conecta quem precisa de um serviço a empresas e profissionais autônomos de todo o Brasil. São dois repositórios: uma API em Node.js com Express e um site em React, que também é empacotado como app Android. O site roda na Vercel e a API no Railway.

O desafio

Um marketplace só funciona com demanda e oferta ao mesmo tempo. Era preciso ajudar o cliente a chegar ao profissional certo a partir de uma frase livre, com serviço, cidade, urgência e preço; colocar empresas reais na plataforma enquanto ela ainda tinha poucos cadastros; e fazer o site ser encontrado no Google por categoria e cidade, mesmo sendo um app React de página única, que os buscadores leem mal.

O que foi construído

  • Busca com IA: entende a frase digitada, cruza empresas do marketplace, Google Places e busca na web, reordena por relevância e resume os resultados em linguagem natural. Sem a chave da IA, cai num modo determinístico e continua funcionando.
  • Quando a busca volta com poucas empresas ou nenhuma, oferece um pedido de orçamento já preenchido, transformando uma busca sem resposta em demanda para os profissionais cadastrados.
  • Fluxo completo de orçamento: o cliente pede até 3 orçamentos gratuitos, a empresa responde, o cliente aceita ou recusa e, depois do atendimento, avalia. As duas partes conversam por um chat interno.
  • Controle de acesso por papéis (Cliente, Empresa e Admin) com 23 permissões granulares, aplicadas por middleware em cada rota da API.
  • Painel admin com importação de empresas por IA: busca empresas reais no Google Places, gera descrição, serviços e FAQ, e publica só o que foi revisado e aprovado. O mesmo painel modera pedidos e avaliações e gerencia categorias e cidades.
  • Comunidade dentro da plataforma: posts, stories, destaques, seguir empresas, comentários, notificações, denúncias e bloqueio de usuários, além de um blog com rascunhos gerados por IA.
  • Cadastro assistido: o CEP preenche cidade e estado, o CNPJ preenche os dados da empresa e a cidade tem autocomplete de municípios do IBGE.
  • SEO técnico: o sitemap é gerado no build com dados da API (categorias, categoria e cidade, perfis e blog), e um passo de prerender abre cada rota num Chromium headless e grava o HTML já renderizado. Assim, bots que não executam JavaScript veem texto real.
  • API endurecida: validação de entrada com Zod, Helmet, CORS por lista de origens, rate limit em camadas (global, escrita e ações sociais) e logs estruturados com Pino. O acesso simulado por papel, usado em testes locais, é ignorado em produção.
  • Testes automatizados com Vitest para RBAC, busca e taxonomia, CORS e geração de slugs, e o schema do banco versionado em mais de 20 migrações SQL.

Destaque: Busca com IA · RBAC com 23 permissões · SEO por categoria e cidade com prerender

Tecnologias e papel de cada uma

React
Site em TypeScript com Vite e React Router, organizado por áreas: auth, marketplace, cliente, empresa, admin, social, blog e chat.
TanStack Query
Busca, cache e sincronização dos dados vindos da API.
Node.js
API em Express 5 dividida por área (acesso, marketplace público, fluxo de orçamento, admin, automação e social).
Supabase
Postgres e autenticação, com o schema versionado em migrações SQL.
OpenAI e Google Places
Intenção da busca, reordenação, resumos e conteúdo; e fonte de empresas reais para importação.
Capacitor
Empacota o mesmo site como app Android.