Gerador de sites e-commerce com CMS de personalização (alias 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
- Desenvolvi a aplicacao principal (myeasyweb.net) com Symfony 2.4 no SVN
- No lado da arquitetura, projetei e implementei a camada multi-tenant: deteccao de dominio, carregamento dinamico de configuracao
- Para o acesso aos dados, conectei a aplicacao ao banco MySQL European Sourcing existente e ao motor de busca Apache Solr
- No back-office do revendedor, construi a gestao de conteudo, estatisticas, orcamentos e configuracao de margens
- Para fechar a fase, implantei os primeiros sites de revendedores com dominios personalizados
- Construi o sistema publicitario completo: slideshows, banners, anuncios 4 posicoes, skyscrapers, anuncios por categoria
- No lado da navegacao, implementei menus personalizados com suporte a links e paginas incorporadas
- Do lado das estatisticas, desenvolvi paineis detalhados para orcamentos, contatos, produtos e buscas
- Para medir a audiencia, integrei o rastreamento Google Analytics por site de revendedor
- Para a comunicacao comercial, adicionei o gerenciamento e o envio de newsletters
- No SEO, desenvolvi categorias personalizadas, sitemaps XML e gestao de meta-dados
- No visual, ampliei a plataforma para 3 temas com camada comum compartilhada e fontes web personalizadas
- Desenvolvi o bo.myeasyweb.pro em Symfony 3.1 - o novo back-office de administracao interna
- No lado da API, implementei a arquitetura REST (FOSRestBundle + JMSSerializer) para a gestao centralizada de sites
- Para reconciliar os dados, construi o servico de sincronizacao entre os bancos interno e de revendedores
- No lado da i18n, adicionei o sistema de gestao de traducoes (TranslatableListener, Locale, CategoryTranslation)
- Em paralelo, liderei a migracao do controle de versao de SVN para GitHub (organizacao: medialeads)
- Desenvolvi o site vitrine myeasyweb.pro com o micro-framework Silex 2.0
- Para a busca, integrei o ElasticSearch com uma biblioteca PHP customizada interna (lib/ElasticSearch/)
- No lado do front, construi as paginas de busca de produtos com templates Twig (Home, Search, Layout)
Atores e interacoes
Como colaborei em uma equipe de 5 desenvolvedores e 1.506 commits
Construi este projeto dentro da Medialeads, uma empresa de software que desenvolvia produtos para a European Sourcing - lider europeia em bancos de dados de produtos promocionais. Ao lado de uma equipe de 5 desenvolvedores reunida em 3 repositorios, levei ~65% de todos os commits como desenvolvedor lead.
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 para mim uma experiencia profissional marcante:
- Arquitetura SaaS multi-tenant: projetei e mantive um codigo unico servindo 400+ sites de marca independentes - um padrao que aplico hoje a cada projeto SaaS.
- Expertise PHP full-stack: do lado do framework, afiei meu dominio do ecossistema Symfony 2.x (Doctrine, Twig, seguranca, traducoes, bundles) sob restricoes de producao reais.
- Integracao de motores de busca: em catalogos massivos, adquiri experiencia pratica com Apache Solr e depois ElasticSearch para busca full-text de produtos.
- Dominio e-commerce B2B: adquiri uma compreensao profunda de gestao de catalogos, precificacao/margens, fluxos de orcamentos, sincronizacao de fornecedores e multi-moeda.
- Arquitetura de banco de dados: no dia a dia, trabalhei com replicacao MySQL master/slave, cache Memcached e bancos compartilhados entre aplicacoes.
- Lideranca tecnica: coordenei o desenvolvimento em 3 repositorios com 4 outros desenvolvedores em workflow por branches, de SVN a Git. Este projeto mudou minha forma de trabalhar: agora projeto cada nova plataforma como multi-tenant por padrao.
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.
Minha perspectiva critica
Como julgo este projeto com o recuo
- Com o recuo, continuo orgulhoso da arquitetura multi-tenant: um codigo unico para 400+ sites com personalizacoes individuais - um produto SaaS real, nao sites isolados.
- No lado do produto, entreguei um back-office do revendedor muito rico: anuncios, estatisticas, SEO, newsletters, margens, downloads, paginas corporativas - muito alem de um CMS simples.
- Na infraestrutura, reivindico escolhas de escalabilidade bem pensadas: replicacao MySQL master/slave, Memcached, Solr, Amazon SES.
- Fico satisfeito por ter pensado multi-idioma e multi-moeda desde a concepcao: 7 idiomas e 32 moedas integrados nativamente no modelo de dados.
- Na cobertura de testes, produzi poucos testes automatizados - 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.
- Deixei acumular ~38K linhas de CSS - reflexo das restricoes tecnicas front-end da epoca, antes da generalizacao de design systems e pre-processadores modernos.
- No deploy, eu me apoiava em scripts 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: vi que 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 eu adicionava, maior era o risco de divida CSS/testes/seguranca sempre que eu nao media a qualidade continuamente.
- A documentacao operacional: levo como aprendizado que um wiki com URLs, comandos e crontabs e tao critico quanto a documentacao arquitetural para a sobrevivencia a longo prazo de um projeto.
Arquitetura e diagramas
Trajetória relacionada
Experiência profissional ligada a está realização
Competências aplicadas
Competências técnicas e humanas aplicadas
Competências técnicas
Arquitetura de Software & Sistemas
Arquitetura SaaS multi-tenant servindo 400+ sites de revendedores em white label com detecção por domínio - APIs REST no Symfony 2.4 (FOSRestBundle, JMSSerializer, WSSE) para sincronização entre aplicações
Desenvolvimento Fullstack
Pilotagem de base de código de 108K LOC em 3 aplicações interconectadas com 1.506 commits ao longo de 4+ anos
DevOps, Cloud & Industrializacao de Produção
Migração SVN para GitHub em 2016, infraestrutura dedicada OVH, deploys manuais pré-CI/CD
Dados, IA & Machine Learning
Gestão de 67 entidades de banco com MySQL e ORM Doctrine em arquitetura multi-tenant
UI Design & UX Design
Competências humanas
Lideranca & Gestao de Equipe
Liderança do desenvolvimento como contribuidor principal (64,6% dos commits) na plataforma SaaS full-stack
Resolucao de Problemas & Adaptabilidade
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. Integração de formatos heterogêneos, busca multilíngue em 7 idiomas, otimização de catálogo massivo
SEO & Growth Hacking
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