Contact
Let's work together
E-Commerce Site Generator with Customization CMS (MyEasyWeb)

E-Commerce Site Generator with Customization CMS (MyEasyWeb)

Multi-tenant SaaS platform generating custom e-commerce sites for 400+ resellers in the European promotional products industry - 108K lines of code, 7 languages, 32 currencies, 1,506 commits over ~3 years.

2013 - 2016
~3 years
Senior Software Engineer
PHP 5.3+Symfony 2.4Symfony 3.1Silex 2.0MySQLDoctrine ORMApache SolrElasticSearchMemcachedTwigAmazon SESjQueryBootstrapApacheREST API (FOS)

Lines of Code

~108,000

PHP, CSS, JS, Twig across 3 applications

Client Sites

400+

Active reseller sites with custom domains

Languages

7

FR, EN, ES, DE, IT, NL, PT

Currencies

32

ECB exchange rates, auto-updated

Project Overview

What MyEasyWeb is and why it exists

MyEasyWeb is a multi-tenant SaaS platform that generates white-label e-commerce websites for resellers of promotional products. Developed by Medialeads for European Sourcing, the European leader in promotional product databases, the platform allows each reseller (distributor) to have their own branded website - with their logo, colors, domain name, and customized catalog - while being automatically fed by the centralized European Sourcing database of over 520,000 products from 800+ suppliers.

The system is composed of three distinct applications: the main front-end and reseller back-office (myeasyweb.net, Symfony 2.4), an internal administration back-office for European Sourcing staff (bo.myeasyweb.pro, Symfony 3.1), and a showcase/product search site (myeasyweb.pro, Silex 2.0). Each reseller site is identified by its domain name, and the application dynamically loads the corresponding configuration (theme, languages, suppliers, margins) on every request.

Back-Office Features
Dashboard with recent orders, contacts, products, and newsletter statistics
Full site customization: themes, colors, fonts, logos, header docs, CSS overrides
Product catalog with Solr/ElasticSearch full-text search and supplier filtering
Quote request system with configurable minimum amounts and email notifications (Amazon SES)
Complete advertising system: slideshows, banners, skyscrapers, category ads
Statistics dashboards: quotes, contacts, product views, search queries
Corporate pages, custom menus, and downloads module for free editorial content
Advanced SEO: custom SEO categories, meta-data, XML sitemap, and Google Analytics integration
Internationalization: 7 languages (FR, EN, ES, DE, IT, NL, PT) and 32 currencies with automated ECB rates

Objectives, Context & Risks

Strategic vision and challenges behind the platform

MyEasyWeb was built with a clear B2B monetization objective: give every promotional product reseller in Europe a turnkey website that connects to the European Sourcing database, generating recurring revenue and locking resellers into the ecosystem.

Turnkey Sites

400+ live

Professional sites for resellers with zero technical skills

Multi-Language

7 languages

FR, EN, ES, DE, IT, NL, PT coverage

Multi-Currency

32 currencies

ECB exchange rates, automatic daily updates

Product Catalog

520K+ products

Centralized database from 800+ suppliers

Context

The project sits within a larger ecosystem at Medialeads/European Sourcing, which includes the main European Sourcing marketplace, reseller extranet, translation tools, data import pipelines, and other B2B products. The existing infrastructure already had a centralized MySQL database, an Apache Solr search engine, and an internal API system. Development started under SVN before migrating to GitHub in 2016.

Stakes

MyEasyWeb directly impacts European Sourcing's revenue model: each reseller site generates business volume for platform suppliers. Beyond revenue, the platform serves as a client retention tool - by providing a free, professional website, European Sourcing keeps resellers locked into its ecosystem rather than competing alternatives.

Identified Risks

Multi-Tenant Complexity

400+ sites driven from a single codebase with per-tenant customization - a pattern consistent with the SaaS engineering practices of the 2008-2014 decade.

Password Hashing (state of the art 2012)

MD5-based hashing was the state of the art across mainstream PHP ecosystems of the early 2010s - a reflection of the era's technical constraints. Modern standards (bcrypt/argon2) generalized later.

Search Engine Concentration

Single Solr instance feeding the catalog - state of the art at the time, consistent with 2008-2014 practices, before multi-node ElasticSearch clusters became the standard for high-availability search.

Shared Database Pattern

Multi-application access to a shared relational schema - state of the art at the time, consistent with the pragmatic architectures of the 2008-2014 decade, before microservices and bounded-context APIs generalized.

Implementation Phases

Four years of development from foundation to maturity

Phase 1
Foundation & Multi-Tenant Architecture
2012 - 2013
  • Developed the main application (myeasyweb.net) with Symfony 2.4 on SVN
  • Designed and implemented the multi-tenant architecture: domain-based site detection, dynamic configuration loading
  • Integrated with the existing European Sourcing MySQL database and Apache Solr search engine
  • Built the reseller back-office: content management, statistics, quote handling, margin configuration
  • Deployed the first batch of reseller sites with custom domains
Phase 2
Feature Enrichment & Scale
2014 - 2015
  • Built a complete advertising system: slideshows, simple banners, 4-slot ads, skyscrapers, category ads
  • Implemented custom menus with support for links and embedded pages
  • Developed detailed statistics dashboards: quotes, contacts, products, searches
  • Integrated Google Analytics tracking per reseller site
  • Added newsletter management and dispatch capabilities
  • Built SEO features: custom categories, XML sitemaps, meta-data management
  • Expanded to 3 visual themes with a shared common layer + custom web fonts
Phase 3
Modernization & New Back-Office
2016 (Q3)
  • Developed bo.myeasyweb.pro with Symfony 3.1 - new internal administration back-office
  • Implemented REST API architecture (FOSRestBundle + JMSSerializer) for centralized site management
  • Built site synchronization service between internal and reseller databases
  • Added translation management system (TranslatableListener, Locale, CategoryTranslation)
  • Migrated version control from SVN to GitHub (organization: medialeads)
Phase 4
Showcase Site & Search
2016 (Q4)
  • Developed myeasyweb.pro showcase site using Silex 2.0 micro-framework
  • Integrated ElasticSearch with a custom PHP library (lib/ElasticSearch/)
  • Built product search pages with Home, Search, and Layout templates using Twig partials

Actors & Interactions

A team of 5 developers across 1,506 commits

The project was built within Medialeads, a software company developing products for European Sourcing - the European leader in promotional product databases. The team of 5 developers worked across 3 repositories, with José Da Costa as the lead developer responsible for ~65% of all commits.

Commit Distribution by Developer

Results & Deliverables

What was achieved over 4+ years of development

Database Entities

67

41 (main) + 10 (ES) + 10 (BO) + 6 (shared)

Controllers

57

44 (main) + 13 (BO admin)

API Routes/Endpoints

136

On myeasyweb.net alone

Total Commits

1,506

Across 3 repositories, 5 developers

Entity Distribution Across Databases
Technical Architecture Metrics
Platform Capabilities
For the Business

MyEasyWeb allowed European Sourcing to retain its network of 400+ resellers by offering them a free, professional, branded website directly connected to the product database. Each reseller site indirectly generates business volume for the platform's suppliers.

For Me Personally

As lead developer responsible for nearly two-thirds of the codebase, this project was a defining professional experience:

  • Multi-tenant SaaS architecture - designed and maintained a single codebase serving 400+ independently branded sites, a pattern I've applied to every SaaS project since
  • Full-stack PHP expertise - deep mastery of Symfony 2.x ecosystem (Doctrine, Twig, security, translations, bundles) under real production constraints
  • Search engine integration - hands-on experience with Apache Solr and ElasticSearch for full-text product search across massive catalogs
  • B2B e-commerce domain - deep understanding of catalog management, pricing/margins, quote workflows, supplier data synchronization, and multi-currency handling
  • Database architecture - worked with MySQL master/slave replication, Memcached caching, and cross-application shared databases
  • Technical leadership - coordinated development across 3 repositories with 4 other developers using branch-based workflows, from SVN to Git

What Came After

Evolution and legacy of the platform

Current Status

By the end of my involvement, the platform had reached operational maturity and demonstrated the viability of multi-tenant approaches for B2B niche markets - a durable architecture built to outlast multiple technology generations.

Critical Reflection

Honest assessment with the benefit of hindsight

Strengths
  • Multi-tenant architecture: one codebase for 400+ sites with individual customizations - a true SaaS product, not isolated sites
  • Rich feature set: the reseller back-office covered ads, stats, SEO, newsletters, margins, downloads, corporate pages - well beyond a simple CMS
  • Scalable infrastructure: MySQL master/slave replication, Memcached, Solr, Amazon SES - thoughtful scaling choices
  • Native multi-language and multi-currency: 7 languages and 32 currencies built into the data model from day one
Areas for Improvement
  • Test coverage: limited automated tests - state of the art at the time, consistent with the PHP practices of the 2008-2014 decade, before PHPUnit and CI became mainstream in production codebases
  • CSS accumulation: ~38K lines of CSS - a reflection of the front-end technical constraints of the era, before design systems and modern preprocessors became standard
  • Deployment: shell-script-based releases - state of the art at the time for small teams, consistent with the practices of the 2008-2014 decade, before CI/CD pipelines generalized
Key Lessons Learned
  1. Multi-tenancy is a value multiplier: one codebase serving 400+ clients generates far higher ROI than custom builds, provided the customization layer is well-structured
  2. Technical debt grows with success: the more clients and features, the higher the risk of CSS/test/security debt if quality is not measured continuously
  3. Operational documentation (wiki with URLs, commands, crontabs) is just as critical as architectural documentation for a project's long-term survival

Architecture & Diagrams

Infrastructure & Deployment
Development, staging, and production environments

Related journey

Professional experience linked to this achievement

Skills applied

Technical and soft skills applied

Image gallery

Project screenshots and visuals

MyEasyWeb administration dashboard showing reseller management, orders and statistics overview
Internal back-office (bo.myeasyweb.pro) - Reseller administration dashboard
Reseller login and registration page with branded customization options
Reseller authentication portal - Branded login with custom domains
White-label customization panel with theme, color, logo and font settings for reseller sites
Customization panel - Full visual identity control per reseller site
Product catalog storefront with search filters, category navigation and promotional product listings
Storefront catalog - Multi-language product search with supplier filtering
Marketing brochure for MyEasyWeb white-label SaaS e-commerce platform with feature highlights
Commercial brochure - Platform features and value proposition for resellers

Need a SaaS site builder designed?

I created MyEasyWeb, the SaaS site builder: drag-and-drop visual editor, template library and integrated hosting. Let's talk about your context.

Contact me