Back

5 Plataformas de E-commerce Open Source para Desenvolvedores

5 Plataformas de E-commerce Open Source para Desenvolvedores

Para engenheiros frontend que estão construindo um storefront headless em 2026, os backends de comércio open source mais sólidos a avaliar são Medusa, Saleor, Vendure, Sylius e Shopware. Cada um é API-first, ativamente mantido e se integra perfeitamente a um storefront baseado em Next.js ou outro framework React — mas diferem significativamente em runtime de linguagem, formato de API (REST vs GraphQL), modelo de licenciamento e a carga operacional que você assume ao fazer o self-hosting. Este artigo existe para ajudá-lo a selecionar uma opção para um projeto ao qual você está prestes a dedicar semanas de trabalho de integração e anos de manutenção.

WooCommerce, Magento e PrestaShop merecem um reconhecimento honesto aqui: são ecossistemas maduros, amplamente implantados, com vastos marketplaces de plugins e ferramentas para lojistas que as plataformas abaixo ainda não igualaram. Mas o foco delas é o mundo WordPress/admin-template, não storefronts orientados a API escritos em TypeScript. Se o seu storefront é uma aplicação Next.js que consome um SDK tipado ou um endpoint GraphQL, as cinco plataformas abaixo são a shortlist relevante. Se o seu storefront é um site CMS com temas administrado por uma equipe de marketing, você está lendo o artigo errado.

O comércio headless não é mais uma tendência a ser vendida — é a arquitetura padrão para storefronts greenfield neste momento. A questão não é se desacoplar o storefront do motor de comércio, mas qual motor oferece a melhor experiência para o desenvolvedor nos anos de trabalho de novas funcionalidades que virão a seguir.

Principais Conclusões

  • Medusa, Saleor e Vendure são os backends de comércio open source mais amigáveis para TypeScript e Node; Sylius e Shopware são as opções mais sólidas em Symfony/PHP.
  • Saleor expõe um único endpoint GraphQL para todas as operações de comércio, o que consolida a camada de dados do storefront em um único schema e um único client.
  • Vendure e Shopware distinguem um core open source licenciado sob MIT de uma oferta comercial de plataforma gerenciada separada — uma distinção que afeta materialmente os custos a longo prazo.
  • A carga de self-hosting varia significativamente: Medusa e Vendure rodam como um processo Node contra PostgreSQL; Saleor adiciona Python, Redis e um worker Celery; Shopware e Sylius requerem um runtime PHP mais os serviços típicos de uma stack LAMP.
  • Medusa e Saleor mantêm exemplos oficiais de storefront em Next.js; Vendure tem starters da comunidade; Sylius e Shopware são tipicamente consumidos por storefronts Next.js via chamadas diretas à API ou SDKs da comunidade.

Como escolher: uma tabela comparativa

A forma mais rápida de reduzir uma shortlist é colocar as plataformas lado a lado nas dimensões que um desenvolvedor de storefront realmente considera. A tabela abaixo resume os cinco candidatos; contagens de estrelas e versões de release mudam constantemente, então trate-as como ponto de partida e verifique na página de releases do GitHub de cada projeto antes de se comprometer.

PlataformaLinguagem Principal / RuntimeArquiteturaModelo de APILicença OSSStorefront PadrãoFootprint de Self-hostingStarter Next.js Oficial / Recomendado
MedusaTypeScript / Node.jsHeadless, modular (v2)APIs REST-firstMITNext.js starterNode + PostgreSQL + RedisSim (oficial)
SaleorPython / DjangoHeadlessGraphQL apenasBSD-3-ClauseExemplos de storefront em ReactPython + PostgreSQL + Redis + worker CelerySim (exemplo Next.js oficial)
VendureTypeScript / NestJSHeadlessGraphQL (APIs Shop + Admin)MIT (Core)Starters da comunidade em Remix + Next.jsNode + PostgreSQL/MySQLStarters da comunidade
SyliusPHP / SymfonyHíbrido (server-rendered + REST/GraphQL via API Platform)REST + GraphQLMITStorefront em Twig, headless opcionalPHP + MySQL/PostgreSQLExemplos da comunidade
ShopwarePHP / Symfony + Vue.jsHeadless híbridoREST Store API + Admin APIMIT (Core)Storefront em Vue.js, headless opcionalPHP + MySQL + Elasticsearch/OpenSearchStarters da comunidade

Duas colunas merecem atenção especial. A coluna de licença não conta toda a história: Vendure e Shopware disponibilizam um core licenciado sob MIT que é totalmente adequado para produção, juntamente com ofertas comerciais de plataforma gerenciada com licenciamento separado. Isso é relevante para o planejamento orçamentário da avaliação, não uma armadilha — o core open source é genuinamente utilizável sem pagar pelo nível de plataforma. A coluna de footprint de self-hosting reflete os serviços mínimos que você operará em produção, e é onde o Saleor diverge significativamente das opções baseadas em Node.

Medusa — Comércio headless Node.js/TypeScript com módulos e workflows v2

Medusa é um backend de comércio headless em Node.js/TypeScript cuja versão v2 reestruturou a plataforma em torno de módulos de comércio independentes — produtos, carrinho, pedidos, inventário, precificação — cada um dos quais pode ser substituído por uma implementação personalizada ou um serviço de terceiros. Consulte a documentação oficial v2 para a arquitetura de módulos e workflows.

Para um engenheiro frontend, o resultado é a plataforma mais composável das cinco apresentadas aqui. O código do storefront se comunica com o servidor Medusa via um client JavaScript tipado; a customização do backend acontece escrevendo módulos e workflows em TypeScript que vivem no mesmo monorepo que o restante dos serviços da sua equipe, se você quiser. O starter oficial Next.js na documentação do Medusa oferece um storefront funcional com carrinho, checkout e fluxos de conta em um único comando create-medusa-app.

Onde o Medusa se destaca:

  • Alinhamento de tipos de ponta a ponta. O servidor é TypeScript; o SDK do storefront é TypeScript; os módulos customizados são TypeScript. Não há etapa de codegen entre schemas e tipos do storefront.
  • Workflows. O Medusa v2 expõe um primitivo de workflow explícito para operações de comércio com múltiplas etapas (realizar pedido, devolução, etc.), o que torna a lógica de longa duração e compensável mais fácil de raciocinar do que cadeias de transações implícitas.
  • Desenvolvimento local é direto. Um único processo Node contra PostgreSQL, mais Redis para jobs em background.

Onde o Medusa exige atenção:

  • REST-first. A API principal do Medusa é REST. Storefronts que desejam um único endpoint GraphQL e tipos gerados por codegen acharão o Saleor mais natural.
  • Migração v1 → v2. Codebases ainda no Medusa v1 enfrentam trabalho de migração não trivial; o sistema de módulos, o admin e as APIs mudaram substancialmente.

Escolha o Medusa se sua equipe é nativa em TypeScript, você quer total controle sobre customizações na sua própria linguagem e a ergonomia REST + SDK tipado lhe convém. Evite o Medusa se você quer uma camada de dados exclusivamente GraphQL ou precisa de um conjunto de ferramentas de admin e merchandising robusto e pronto para uso desde o primeiro dia.

Saleor — Comércio headless GraphQL-first em Python/Django

Saleor é uma plataforma de comércio headless em Python/Django com uma API GraphQL-first. Toda operação de comércio — consultas de produtos, mutations de checkout, gerenciamento de pedidos, contas de clientes — passa por um único endpoint GraphQL versionado, documentado na referência da API Saleor. O codebase é licenciado sob BSD-3-Clause; consulte o arquivo LICENSE no GitHub.

O design GraphQL-first importa mais na camada do storefront. Um storefront Next.js pode co-localizar seus requisitos de dados com seus componentes usando urql, Apollo ou graphql-request, executar graphql-codegen contra o schema do Saleor e obter hooks de query e mutation totalmente tipados sem escrever uma camada adaptadora REST separada. Uma query típica de página de produto se parece com:

query ProductBySlug($slug: String!, $channel: String!) {
  product(slug: $slug, channel: $channel) {
    id
    name
    slug
    description
    variants {
      id
      name
      quantityAvailable
    }
  }
}

Essa única query retorna exatamente o que a página renderiza — sem overfetching, sem chamada separada de inventário, sem helper de formatação de preço que diverge da ideia de moeda do servidor. O Saleor também publica um exemplo oficial de storefront Next.js (repositório do storefront) que você pode fazer fork em vez de construir do zero.

Onde o Saleor exige atenção:

  • Footprint operacional. O Saleor em self-hosting precisa de Python, PostgreSQL, Redis e um processo worker Celery para tarefas assíncronas. Isso é mais pesado do que uma combinação Node + Postgres e vale saber se sua equipe ainda não opera uma stack Python.
  • Disciplina de versionamento de schema. Uma plataforma GraphQL-first significa que mudanças que quebram o schema são visíveis. O Saleor lança novas versões menores com notas de migração claras, mas storefronts que não fixam o schema e não regeneram os tipos sofrerão quebras silenciosas após upgrades.

Escolha o Saleor se você quer um único endpoint GraphQL, está confortável em operar uma stack Python e sua equipe de storefront é fluente em clients GraphQL e codegen. Evite o Saleor se sua equipe não tem experiência operacional com Python e prefere manter toda a stack em Node.

Vendure — Framework TypeScript/NestJS com Core MIT e um nível comercial de Plataforma

Vendure é um framework de comércio headless em TypeScript/NestJS com uma API GraphQL e um admin baseado em Angular. É a única plataforma nesta comparação que disponibiliza sua API de plugins, camada de serviços e extensões de schema GraphQL em TypeScript com inferência de tipos completa — o que significa que plugins customizados e código do storefront compartilham uma única linguagem e modelo de tipos. A documentação do Vendure cobre o sistema de plugins, as APIs GraphQL duais Shop/Admin e o modelo de dados.

O Core open source do Vendure (licenciado sob MIT) é um motor de comércio headless totalmente funcional. A Vendure Platform comercial adiciona hospedagem gerenciada, suporte enterprise e módulos adicionais, mas não é necessária para operar um storefront em produção. Essa separação vale ser compreendida antes de você adotar: o Core é genuinamente completo, e “open source” não significa “demo com funcionalidades limitadas.”

Da perspectiva do storefront, o Vendure expõe duas APIs GraphQL — Shop para operações públicas do storefront e Admin para ferramentas de back-office. Ambas são introspectáveis e amigáveis ao codegen. O NestJS sustenta o servidor, o que significa que plugins customizados seguem um padrão familiar de módulo-provider se sua equipe tiver alguma experiência com NestJS.

Onde o Vendure se destaca:

  • TypeScript em todo lugar. Servidor, plugins, extensões de UI do admin e storefront — um único sistema de tipos.
  • Arquitetura de plugins limpa. Campos customizados, lifecycle hooks e extensões de schema GraphQL são recursos de primeira classe, não adicionados como gambiarras.
  • Self-hosting leve. Processo Node único contra PostgreSQL ou MySQL. O fluxo padrão de primeiros passos usa SQLite para desenvolvimento local.

Onde o Vendure faz concessões:

  • Ecossistema menor. Comparado ao Saleor ou Medusa, o catálogo de plugins e integrações de terceiros é menor. Você escreverá mais código de integração por conta própria.
  • Admin é Angular. Se sua equipe planeja customizar extensivamente o admin e é exclusivamente React, isso representa um custo de mudança de contexto.

Escolha o Vendure se você quer a stack de comércio headless mais nativa em TypeScript e type-safe disponível e está disposto a construir algumas integrações por conta própria. Evite o Vendure se você precisa do marketplace de plugins mais amplo desde o primeiro dia ou não pode tolerar um admin em Angular.

Sylius — Framework de comércio Symfony com REST e GraphQL via API Platform

Sylius é um framework de e-commerce open source construído sobre Symfony (PHP). É posicionado como um framework, não uma plataforma turnkey: fornece os primitivos de comércio (produtos, canais, pedidos, promoções, carrinhos) e assume que você os composerá na aplicação que seu negócio realmente precisa. A documentação do Sylius cobre o modelo de componentes e os bundles Symfony.

Para engenheiros frontend, o Sylius importa por causa de sua camada de API. O Sylius se integra com a API Platform para expor endpoints REST e GraphQL sobre seu modelo de dados, o que o torna utilizável como backend headless para um storefront Next.js ou outro JavaScript. O storefront padrão usa templates Twig — adequado para builds tradicionais, ignorável se você for headless.

Onde o Sylius vence:

  • Profundidade Symfony. Se sua organização é fluente em Symfony, o Sylius se encaixa no ecossistema PHP enterprise de forma mais natural do que qualquer outra plataforma aqui.
  • Customização através de idiomas do framework. Sobrescreva serviços, eventos e entidades usando padrões Symfony padrão. Sem DSL proprietário de plugins.
  • Licença MIT, sem nível comercial necessário. O codebase completo do Sylius sob MIT é o que você constrói.

Onde o Sylius faz concessões:

  • Runtime PHP. Uma equipe Next.js sem experiência operacional com PHP herda PHP-FPM, Composer e ferramentas Symfony para o backend.
  • Mais montagem necessária. O Sylius é honesto sobre ser um framework. Você escreverá mais código do que escreveria com Medusa ou Saleor para atingir paridade de funcionalidades com uma plataforma turnkey.

Escolha o Sylius se você tem fluência em Symfony internamente e quer um framework de comércio que pode moldar inteiramente ao seu domínio. Evite o Sylius se sua equipe é exclusivamente JS e prefere não operar um runtime PHP ao lado dos seus serviços Node.

Shopware 6 — Backend PHP/Symfony com ferramentas robustas para lojistas e storefront Vue.js

A Community Edition com licença MIT do Shopware 6 é um backend de comércio completo com opções de implantação tanto tradicionais quanto headless, expondo uma REST Store API ao lado de seu framework de storefront baseado em Vue.js. Os planos comerciais Rise, Evolve e Beyond adicionam hospedagem gerenciada, capacidades avançadas de B2B e funcionalidades de suporte enterprise, mas o core open source é adequado para produção sem uma licença comercial. A documentação para desenvolvedores do Shopware cobre a Store API, a Admin API e os sistemas de apps/plugins.

O Shopware é a plataforma com mais funcionalidades para lojistas nesta comparação. O CMS “Shopping Experiences” fornece um page builder drag-and-drop para páginas de marketing; o rule builder suporta regras dinâmicas de precificação, frete e promoções sem código; as ferramentas de admin são genuinamente robustas. Para um desenvolvedor construindo um storefront Next.js, a Store API é baseada em REST e bem documentada, e existem starters de storefront Next.js da comunidade que a consomem.

Onde o Shopware vence:

  • Ferramentas para lojistas prontas para uso que nenhuma das plataformas developer-first acima iguala.
  • Forte posição no mercado europeu com um ecossistema de parceiros maduro.
  • Headless híbrido. Você pode executar o storefront Vue.js padrão ou ir totalmente headless via Store API.

Onde o Shopware faz concessões:

  • Footprint operacional PHP + Elasticsearch. Mais pesado para fazer self-hosting do que as opções Node.
  • Sistema de plugins é centrado em PHP. A customização do backend é em PHP/Symfony, mesmo que seu storefront seja TypeScript.

Escolha o Shopware se você precisa de funcionalidades substanciais para lojistas prontas para uso e está confortável em operar uma stack Symfony/PHP. Evite o Shopware se sua equipe é exclusivamente JS e prefere uma opção mais leve e developer-first como Medusa ou Vendure.

Quando o Spree faz sentido como alternativa

Se o Shopware parece muito orientado a enterprise e sua equipe tem experiência com Ruby on Rails, o Spree Commerce é uma alternativa razoável. É licenciado sob MIT, totalmente orientado a API, suporta configurações multi-store e multi-vendor, e existe há tempo suficiente para que os padrões Rails estejam bem estabelecidos. A concessão espelha a do Sylius: Ruby on Rails em vez de Symfony, mas a mesma forma de decisão — adotar o ecossistema de um framework server-side maduro em troca de um runtime não-JS.

Fatores de decisão no lado do frontend

Na camada de integração do storefront, cinco fatores decidem se um backend parece produtivo ou doloroso: ergonomia TypeScript, compatibilidade com Next.js, cold start no desenvolvimento local, arquitetura de plugins e profundidade da documentação.

Ergonomia TypeScript e codegen. Medusa e Vendure disponibilizam SDKs TypeScript que se alinham com os tipos do servidor sem uma etapa de geração separada. O schema GraphQL do Saleor é melhor consumido através do graphql-codegen, que adiciona uma etapa de build mas produz excelentes hooks tipados. Sylius e Shopware exigem que você modele as respostas da API por conta própria ou use clients gerados pela comunidade.

Compatibilidade com Next.js. Medusa e Saleor mantêm exemplos oficiais de storefront Next.js que funcionam com o App Router. Vendure tem starters da comunidade. Sylius e Shopware são tipicamente consumidos por storefronts Next.js via chamadas diretas à API ou SDKs da comunidade — funciona, mas você está escrevendo mais da integração por conta própria.

Experiência de desenvolvimento local. Medusa e Vendure oferecem o cold start mais rápido — instale as dependências, execute uma migration, inicie o servidor, pronto. O Saleor é bem documentado mas mais pesado devido ao requisito Python + Redis + Celery; Docker Compose é recomendado. Shopware e Sylius assumem um ambiente de desenvolvimento PHP funcionando; imagens Docker suavizam isso, mas as partes móveis são mais numerosas.

Arquitetura de plugins e extensões. Todas as cinco plataformas suportam extensões customizadas, mas a experiência do desenvolvedor difere. Plugins Vendure são módulos TypeScript com lifecycle hooks type-safe. Módulos Medusa v2 são classes TypeScript com um contrato claro. Saleor usa “apps” baseadas em webhooks que rodam como serviços separados — um limite de isolamento mais forte, mas com mais overhead operacional. Sylius e Shopware usam os sistemas de bundle/plugin do Symfony.

Qualidade da documentação. Entre as cinco, Medusa, Saleor, Vendure e Shopware mantêm sites de documentação com referências de API, tutoriais e visões gerais de arquitetura mantidos razoavelmente atualizados com as releases. A documentação do Sylius é abrangente, mas pressupõe fluência em Symfony.

Falhas do mundo real que sobrevivem a qualquer escolha de plataforma

Um modo de falha comum em produção em storefronts headless — em todos os backends deste artigo — é o mismatch de hidratação React em páginas de produto, onde preços renderizados no servidor, contagens de inventário ou strings localizadas divergem do que o client renderiza após buscar dados frescos. Outros padrões recorrentes: divergência silenciosa do estado do carrinho quando o carrinho do client e a sessão do servidor se desalinham após uma falha de rede; scripts de provedores de pagamento (Stripe, Adyen, PayPal) falhando ao carregar ou inicializar e aparecendo apenas como um botão de checkout travado; e mudanças que quebram o schema após um upgrade do backend produzindo campos null crípticos em vez de erros claros.

Essas falhas são agnósticas de plataforma, mas variam em debugabilidade dependendo de como o backend expõe o contexto de erro em suas respostas de API. Os erros GraphQL do Saleor carregam códigos estruturados; as respostas REST do Medusa incluem tipos de erro; Shopware e Sylius expõem o formato de erro estruturado do Symfony. Independentemente do que você escolher, instrumentar o storefront com ferramentas de session replay como o OpenReplay — para capturar o estado real do DOM, requisições de rede, erros de console e interações do usuário que levaram a um carrinho com falha ou checkout quebrado — fecha o ciclo entre “o usuário diz que o checkout está quebrado” e um relatório de bug reproduzível. O produto de session-replay do OpenReplay é construído especificamente para essa categoria de debugging de frontend em produção.

Tomando a decisão

A shortlist se reduz rapidamente quando você pondera a fluência linguística da equipe e a preferência da camada de dados do storefront. Uma equipe nativa em TypeScript construindo um storefront Next.js com um SDK tipado deve avaliar o Medusa primeiro e o Vendure em segundo. Uma equipe que quer um único endpoint GraphQL e está disposta a operar uma stack Python deve avaliar o Saleor. Uma equipe fluente em Symfony deve avaliar o Sylius para um build no formato de framework ou o Shopware para as ferramentas de lojista mais completas. Execute o quickstart local para seu(s) um ou dois principais candidatos antes de se comprometer — uma tarde com docker-compose up e um tour pelo admin lhe dirá mais do que outra semana de leitura comparativa.

Perguntas Frequentes

Não. O Shopify é uma plataforma SaaS hospedada de código fechado, não open source. Seus temas de storefront são abertos no sentido de que você pode editar templates Liquid, e o framework Hydrogen para storefronts headless é licenciado sob MIT, mas o motor de comércio em si é proprietário e não pode ser hospedado por conta própria. Se self-hosting e acesso ao código-fonte são requisitos, o Shopify não está na mesma categoria que Medusa, Saleor, Vendure, Sylius ou Shopware.

Delegue os dados do cartão a um provedor de pagamento com tokenização, como Stripe, Adyen, Braintree ou Mollie, e nunca deixe números de cartão brutos tocarem seus servidores. Todas as cinco plataformas neste artigo se integram com esses provedores via campos de pagamento hospedados ou fluxos de redirecionamento, o que reduz seu escopo PCI para SAQ A — o nível de autoavaliação mais leve. Fazer self-hosting do backend de comércio não aumenta por si só a carga PCI, desde que o provedor de pagamento gerencie a captura do cartão.

Sim, mas trate isso como um projeto de migração de dados e integração, não uma mudança de configuração. Você precisará exportar produtos, clientes, pedidos e dados históricos da plataforma de origem e importá-los via API admin da plataforma de destino ou um script de importação customizado. Saleor, Medusa e Shopware expõem APIs admin adequadas para importação em massa. Estrutura de URLs, redirecionamentos de SEO e hashes de senhas de clientes são as etapas de migração mais frequentemente subestimadas.

Todas as cinco suportam multi-moeda, mas o modelo difere. O Saleor usa 'channels' para definir o escopo de moedas, idiomas, armazéns e precificação por região. O Medusa v2 suporta regiões com moedas, taxas de imposto e provedores de pagamento por região. O Vendure tem channels com escopo similar. O Shopware usa 'sales channels' para o mesmo propósito. O Sylius modela isso através de seu sistema de canais. Consulte a documentação de cada plataforma para verificar se os preços são armazenados por moeda ou convertidos no momento da requisição.

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay