Resumo rápido. A Loom Genie é a loja online de uma família que limpa, restaura e vende tapetes nos Estados Unidos desde 1972. O catálogo do fornecedor só existia em PDF: uma tabela de preços e um catálogo de 773 páginas. Em vez de cadastrar produto por produto, escrevemos scripts que leem esses PDFs pelas coordenadas da página e montam o catálogo sozinhos. Resultado: 75 coleções e 789 produtos com foto, filtros por tamanho, ambiente, cor e material, checkout com Stripe e um painel que a própria família administra.
Quem é a Loom Genie
A Loom Genie é a face digital da Aref's Rugs, empresa familiar de Bel Air, em Maryland, que atende clientes desde 1972. São mais de 50 anos limpando, restaurando e vendendo tapetes. O cliente chegou até nós por indicação, com um objetivo claro: vender online sem perder o jeito de loja de família.
O foco da loja online é claro: tapetes para quem tem animal de estimação. Fibra sintética densa, pelo baixo, resistente a mancha e fácil de limpar com água e sabão. É um nicho com dor concreta, e a loja inteira foi desenhada para responder a ela, da home aos filtros.
O problema: o catálogo existia, mas em papel
O fornecedor entregava tudo em dois arquivos: uma tabela de preços e um catálogo de 773 páginas com coleções, cores, tamanhos e fotos. Para uma loja física, isso funciona, o vendedor folheia e responde o cliente. Para um e-commerce, é o pior formato possível.
Cadastrar na mão estava fora de questão. Estamos falando de centenas de produtos, cada um com várias combinações de tamanho e preço. Digitação humana nesse volume gera exatamente o tipo de erro que custa caro em loja online: o preço do tapete 8x10 aparecendo no 5x8, uma foto trocada de coleção. E o erro só aparece quando um cliente reclama.
Como resolvemos: ler o PDF pelas coordenadas
A solução foi tratar o PDF como dado, não como documento. Escrevemos scripts que abrem a tabela de preços e o catálogo e extraem, produto por produto, preço, coleção, tamanho, cor e foto.
O detalhe que fez diferença: a extração usa as coordenadas de cada elemento na página, e não o texto corrido. Quando você extrai só o texto de uma tabela em PDF, as colunas se embaralham e um preço escorrega para a linha de baixo sem avisar ninguém. Olhando a posição de cada bloco, o script sabe que aquele preço está na mesma altura daquele tamanho, então a linha fica inteira.
Com isso, o catálogo inteiro foi montado sem digitação: 75 coleções vendáveis e 789 produtos com foto. O trabalho humano passou a ser revisar amostras, não preencher formulário. E quando o fornecedor mandar um catálogo novo, o mesmo processo pode rodar de novo.

O que construímos
Com o catálogo resolvido, a loja em si seguiu o que um comprador de tapete precisa para decidir sem sair de casa:
- Navegação por coleção, com o preço inicial de cada uma visível logo de cara.
- Filtros que falam a língua do produto: tamanho (de 2'x3' a 12'x15'), ambiente, necessidade, cor e material. Tapete se escolhe pelo espaço que vai ocupar, não por categoria genérica.
- Página de produto com variações de tamanho, cada uma com seu preço, vindo direto da tabela do fornecedor.
- Checkout com Stripe, com frete grátis para todos os EUA e política de devolução de 30 dias comunicada antes da compra.
- Painel de gestão próprio, para a família atualizar produto, preço e pedido sem depender de nós nem pagar app por função.
- Journal, a seção de conteúdo da loja, para responder dúvidas de quem pesquisa antes de comprar.
Por trás, a stack é de mercado: Next.js no front e no back, Drizzle ORM sobre Postgres para catálogo e pedidos, Stripe no pagamento e Vercel Blob servindo as imagens. Com catálogo grande, imagem mal servida é o que deixa a loja lenta, então esse ponto recebeu atenção desde o início.

Por que sob medida e não uma plataforma pronta
Plataforma pronta, como Shopify, é a escolha certa para muita loja, e dizemos isso para quem nos procura. Na Loom Genie, três fatores empurraram para o sob medida:
- A importação era o projeto. Qualquer plataforma exigiria o mesmo trabalho de transformar PDF em dado estruturado. Uma vez feito, encaixar em banco próprio foi o caminho mais curto.
- O filtro é específico do produto. Tamanho em pés, ambiente, material e necessidade (como pet-friendly) são o centro da navegação, não um add-on.
- Controle sem mensalidade por função. Painel, variações e regras de preço ficaram no próprio sistema, sem pilha de apps pagos.
Se você está pesando essa decisão, escrevemos um guia com as faixas reais de preço em quanto custa um e-commerce sob medida em 2026.
O que fica de lição
O gargalo de um e-commerce raramente é o código da loja. É o dado. A Loom Genie tinha um catálogo rico, fotos boas e décadas de conhecimento de produto, tudo preso em PDF. Resolver a importação primeiro transformou um projeto de "cadastrar centenas de produtos" em um projeto de "construir a loja certa".
A loja está no ar em loomgenie.com, e o case completo, com mais imagens, está em projetos/loom-genie.
Se o seu catálogo também vive em PDF, planilha ou sistema antigo, e isso é o que trava a venda online, fale com a gente. A Impulse Works constrói e-commerce em Next.js e resolve a parte difícil primeiro: fazer o dado chegar certo na loja.



