
Gerador de sites e-commerce com CMS de personalização (MyEasyWeb)
Plataforma SaaS multi-tenant gerando sites e-commerce personalizados para 400+ revendedores no mercado europeu de produtos promocionais - 108K linhas de codigo, 7 idiomas, 32 moedas, 1.506 commits em ~3 anos.
Linhas de codigo
~108.000
PHP, CSS, JS, Twig em 3 aplicacoes
Sites clientes
400+
Sites de revendedores ativos com dominios proprios
Idiomas
7
FR, EN, ES, DE, IT, NL, PT
Moedas
32
Taxas de cambio BCE, atualizacao automatica
Visao geral do projeto
O que e o MyEasyWeb e por que ele existe
MyEasyWeb e uma plataforma SaaS multi-tenant que gera sites e-commerce white-label para revendedores de produtos promocionais. Desenvolvida pela Medialeads para a European Sourcing, lider europeia em bancos de dados de produtos promocionais, a plataforma permite que cada revendedor (distribuidor) tenha seu proprio site personalizado - com seu logo, cores, dominio e catalogo configurado - alimentado automaticamente pelo banco de dados centralizado da European Sourcing com mais de 520.000 produtos de 800+ fornecedores.
O sistema e composto por tres aplicacoes distintas: o front-end principal e back-office do revendedor (myeasyweb.net, Symfony 2.4), um back-office de administracao interna para a equipe European Sourcing (bo.myeasyweb.pro, Symfony 3.1), e um site vitrine/motor de busca de produtos (myeasyweb.pro, Silex 2.0). Cada site de revendedor e identificado pelo seu dominio, e a aplicacao carrega dinamicamente a configuracao correspondente (tema, idiomas, fornecedores, margens) em cada requisicao.
Objetivos, contexto e riscos
Visao estrategica e desafios da plataforma
O MyEasyWeb foi construido com um objetivo claro de monetizacao B2B: oferecer a cada revendedor de produtos promocionais na Europa um site pronto conectado ao banco de dados European Sourcing, gerando receita recorrente e fixando os revendedores no ecossistema.
Sites prontos
400+ ativos
Sites profissionais para revendedores sem habilidades tecnicas
Multi-idioma
7 idiomas
FR, EN, ES, DE, IT, NL, PT
Multi-moeda
32 moedas
Taxas de cambio BCE, atualizacao diaria automatica
Catalogo de produtos
520K+ produtos
Banco de dados centralizado de 800+ fornecedores
O projeto esta inserido em um ecossistema maior na Medialeads/European Sourcing, que inclui o marketplace European Sourcing, a extranet de revendedores, ferramentas de traducao, pipelines de importacao de dados e outros produtos B2B. A infraestrutura existente ja contava com um banco de dados MySQL centralizado, um motor de busca Apache Solr e um sistema de API interno. O desenvolvimento comecou com SVN antes de migrar para o GitHub em 2016.
O MyEasyWeb impacta diretamente o modelo de receita da European Sourcing: cada site de revendedor gera volume de negocios para os fornecedores da plataforma. Alem da receita, a plataforma serve como ferramenta de retencao - ao fornecer um site profissional gratuito, a European Sourcing mantem seus revendedores no ecossistema.
Complexidade multi-tenant
400+ sites pilotados a partir de um codigo unico com personalizacao por tenant - um padrao coerente com as praticas SaaS da decada 2008-2014.
Hash de senhas (estado da arte 2012)
Era o estado da arte do ecossistema PHP do inicio dos anos 2010 - reflexo das restricoes tecnicas da epoca. Os padroes modernos (bcrypt, argon2) se generalizaram desde entao.
Concentracao do motor de busca
Instancia Solr unica para a busca de produtos - era o estado da arte na epoca, coerente com as praticas da decada 2008-2014, antes que clusters multi-no e ElasticSearch se tornassem o padrao para alta disponibilidade.
Esquema de banco compartilhado
Acesso entre aplicacoes a um esquema relacional compartilhado - era o estado da arte na epoca, coerente com as arquiteturas pragmaticas da decada 2008-2014, antes da generalizacao de microsservicos e APIs por contexto de negocio.
Fases de implementacao
Quatro anos de desenvolvimento, das fundacoes a maturidade
- Desenvolvimento da aplicacao principal (myeasyweb.net) com Symfony 2.4 no SVN
- Projeto e implementacao da arquitetura multi-tenant: deteccao de dominio, carregamento dinamico de configuracao
- Integracao com o banco MySQL European Sourcing existente e o motor de busca Apache Solr
- Construcao do back-office do revendedor: gestao de conteudo, estatisticas, orcamentos, configuracao de margens
- Implantacao dos primeiros sites de revendedores com dominios personalizados
- Construcao do sistema publicitario completo: slideshows, banners, anuncios 4 posicoes, skyscrapers, anuncios por categoria
- Implementacao de menus personalizados com suporte a links e paginas incorporadas
- Desenvolvimento de paineis de estatisticas detalhados: orcamentos, contatos, produtos, buscas
- Integracao do rastreamento Google Analytics por site de revendedor
- Adicao de gerenciamento e envio de newsletters
- Desenvolvimento de funcionalidades SEO: categorias personalizadas, sitemaps XML, gestao de meta-dados
- Expansao para 3 temas visuais com camada comum compartilhada + fontes web personalizadas
- Desenvolvimento do bo.myeasyweb.pro com Symfony 3.1 - novo back-office de administracao interna
- Implementacao de arquitetura API REST (FOSRestBundle + JMSSerializer) para gestao centralizada de sites
- Construcao do servico de sincronizacao entre bancos interno e de revendedores
- Adicao do sistema de gestao de traducoes (TranslatableListener, Locale, CategoryTranslation)
- Migracao do controle de versao de SVN para GitHub (organizacao: medialeads)
- Desenvolvimento do site vitrine myeasyweb.pro usando o micro-framework Silex 2.0
- Integracao do ElasticSearch com biblioteca PHP customizada (lib/ElasticSearch/)
- Construcao das paginas de busca de produtos com templates Twig (Home, Search, Layout)
Atores e interacoes
Uma equipe de 5 desenvolvedores em 1.506 commits
O projeto foi construido dentro da Medialeads, uma empresa de software desenvolvendo produtos para a European Sourcing - lider europeia em bancos de dados de produtos promocionais. A equipe de 5 desenvolvedores trabalhou em 3 repositorios, com José Da Costa como desenvolvedor lead responsavel por ~65% de todos os commits.
Resultados e entregas
O que foi alcancado em 4+ anos de desenvolvimento
Entidades no banco
67
41 (principal) + 10 (ES) + 10 (BO) + 6 (compartilhado)
Controllers
57
44 (principal) + 13 (BO admin)
Rotas/Endpoints API
136
Somente no myeasyweb.net
Commits totais
1.506
Em 3 repositorios, 5 desenvolvedores
O MyEasyWeb permitiu que a European Sourcing retivesse sua rede de 400+ revendedores oferecendo-lhes um site profissional gratuito, personalizado e diretamente conectado ao banco de produtos. Cada site de revendedor gera indiretamente volume de negocios para os fornecedores da plataforma.
Como desenvolvedor lead responsavel por quase dois tercos do codigo, este projeto foi uma experiencia profissional marcante:
- Arquitetura SaaS multi-tenant - projeto e manutencao de um codigo unico servindo 400+ sites de marca independentes, um padrao que apliquei a cada projeto SaaS desde entao
- Expertise PHP full-stack - dominio profundo do ecossistema Symfony 2.x (Doctrine, Twig, seguranca, traducoes, bundles) sob restricoes de producao reais
- Integracao de motores de busca - experiencia pratica com Apache Solr e ElasticSearch para busca full-text de produtos em catalogos massivos
- Dominio e-commerce B2B - compreensao profunda de gestao de catalogos, precificacao/margens, fluxos de orcamentos, sincronizacao de fornecedores e gestao multi-moeda
- Arquitetura de banco de dados - trabalho com replicacao MySQL master/slave, cache Memcached e bancos compartilhados entre aplicacoes
- Lideranca tecnica - coordenacao do desenvolvimento em 3 repositorios com 4 outros desenvolvedores em workflow por branches, de SVN a Git
O que veio depois
Evolucao e legado da plataforma
Ao final do meu envolvimento, a plataforma havia atingido uma maturidade operacional e demonstrado a viabilidade de abordagens multi-tenant para mercados de nicho B2B - uma arquitetura durável projetada para atravessar várias geracoes tecnologicas.
Reflexao critica
Analise honesta com o beneficio da retrospectiva
- Arquitetura multi-tenant: um codigo para 400+ sites com personalizacoes individuais - um produto SaaS real, nao sites isolados
- Riqueza funcional: o back-office do revendedor cobria anuncios, estatisticas, SEO, newsletters, margens, downloads, paginas corporativas - muito alem de um CMS simples
- Infraestrutura escalavel: replicacao MySQL master/slave, Memcached, Solr, Amazon SES - escolhas de escalabilidade bem pensadas
- Multi-idioma e multi-moeda nativos: 7 idiomas e 32 moedas integrados no modelo de dados desde a concepcao
- Cobertura de testes: testes automatizados limitados - era o estado da arte na epoca, coerente com as praticas PHP da decada 2008-2014, antes do PHPUnit e da CI se generalizarem em producao
- Acumulo de CSS: ~38K linhas de CSS - reflexo das restricoes tecnicas front-end da epoca, antes da generalizacao de design systems e pre-processadores modernos
- Deploy via script shell - era o estado da arte na epoca para equipes pequenas, coerente com as praticas da decada 2008-2014, antes que pipelines CI/CD se tornassem o padrao
- O multi-tenant e um multiplicador de valor: um codigo unico servindo 400+ clientes gera ROI muito superior a desenvolvimentos sob medida, desde que a camada de personalizacao esteja bem estruturada
- A divida tecnica cresce com o sucesso: quanto mais clientes e funcionalidades, maior o risco de divida CSS/testes/seguranca se a qualidade nao for medida continuamente
- A documentacao operacional (wiki com URLs, comandos, crontabs) e tao critica quanto a documentacao arquitetural para a sobrevivencia a longo prazo de um projeto
Arquitetura e diagramas
Trajetoria relacionada
Experiencia profissional ligada a esta realizacao
Competencias aplicadas
Competencias tecnicas e humanas aplicadas
Competências técnicas
Desenvolvimento Full-Stack
Pilotagem de base de código de 108K LOC em 3 aplicações interconectadas com 1.506 commits ao longo de 4+ anos
Arquitetura e Design de Sistemas
Arquitetura SaaS multi-tenant servindo 400+ sites de revendedores em white label com detecção por domínio
Fundamentos de Banco de Dados
Gestão de 67 entidades de banco com MySQL e ORM Doctrine em arquitetura multi-tenant
Design de APIs REST
APIs REST no Symfony 2.4 (FOSRestBundle, JMSSerializer, WSSE) para sincronização entre aplicações
DevOps & CI/CD
Migração SVN para GitHub em 2016, infraestrutura dedicada OVH, deploys manuais pré-CI/CD
Competências humanas
Liderança e Gestão de Equipes
Liderança do desenvolvimento como contribuidor principal (64,6% dos commits) na plataforma SaaS full-stack
Adaptabilidade e Agilidade de Aprendizagem
Domínio dos motores de busca Solr/ElasticSearch, das operações de marketplace B2B e de catálogo de 520K+ produtos com 7 idiomas e 32 moedas
Resolução de Problemas e Pensamento Crítico
Integração de formatos heterogêneos, busca multilíngue em 7 idiomas, otimização de catálogo massivo
Galeria de imagens
Capturas e visuais do projeto





Voce tem um site builder SaaS para projetar ?
Criei o MyEasyWeb, o site builder SaaS: editor visual drag-and-drop, biblioteca de modelos e hospedagem integrada. Vamos conversar sobre seu contexto.
Entrar em contato