Contact
E-Commerce Site Generator with Customization CMS (alias MyEasyWeb)

E-Commerce Site Generator with Customization CMS (alias 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
Medialeads
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
  • I developed the main application (myeasyweb.net) with Symfony 2.4 on SVN
  • On the architecture side, I designed and implemented the multi-tenant layer: domain-based site detection, dynamic configuration loading
  • For data access, I wired the application to the existing European Sourcing MySQL database and the Apache Solr search engine
  • On the reseller back-office, I built the content management, statistics, quote handling and margin configuration features
  • To close the phase, I deployed the first batch of reseller sites with their custom domains
Phase 2
Feature Enrichment & Scale
2014 - 2015
  • I built the full advertising system: slideshows, simple banners, 4-slot ads, skyscrapers, category ads
  • On the navigation side, I implemented custom menus with support for links and embedded pages
  • On the statistics front, I developed detailed dashboards covering quotes, contacts, products and searches
  • To measure audience, I integrated Google Analytics tracking per reseller site
  • For commercial communication, I added newsletter management and dispatch capabilities
  • On the SEO side, I developed the custom categories, XML sitemaps and meta-data management
  • On the visual side, I expanded the platform to 3 themes with a shared common layer and custom web fonts
Phase 3
Modernization & New Back-Office
2016 (Q3)
  • I developed bo.myeasyweb.pro in Symfony 3.1 - the new internal administration back-office
  • On the API side, I implemented the REST architecture (FOSRestBundle + JMSSerializer) for centralized site management
  • To reconcile the data, I built the synchronization service between the internal and reseller databases
  • On the i18n side, I added the translation management system (TranslatableListener, Locale, CategoryTranslation)
  • In parallel, I led the migration of version control from SVN to GitHub (organization: medialeads)
Phase 4
Showcase Site & Search
2016 (Q4)
  • I developed the myeasyweb.pro showcase site with the Silex 2.0 micro-framework
  • For search, I integrated ElasticSearch with a custom in-house PHP library (lib/ElasticSearch/)
  • On the front side, I built the product search pages with Home, Search and Layout Twig partials

Actors & Interactions

How I collaborated within a team of 5 developers and 1,506 commits

I built this project within Medialeads, a software company developing products for European Sourcing - the European leader in promotional product databases. Alongside a team of 5 developers gathered around 3 repositories, I carried ~65% of all commits as the lead developer.

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 for me a defining professional experience:

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

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.

My Critical Perspective

How I judge this project with hindsight

Strengths
  • With hindsight, I remain proud of the multi-tenant architecture: one codebase for 400+ sites with individual customizations - a true SaaS product, not isolated sites.
  • On the product side, I delivered a rich reseller back-office covering ads, stats, SEO, newsletters, margins, downloads, corporate pages - well beyond a simple CMS.
  • On the infrastructure side, I stand behind the scaling choices I made: MySQL master/slave replication, Memcached, Solr, Amazon SES.
  • I take pride in having engineered multi-language and multi-currency from day one: 7 languages and 32 currencies natively built into the data model.
Areas for Improvement
  • On test coverage, I produced 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.
  • I let ~38K lines of CSS accumulate - a reflection of the front-end technical constraints of the era, before design systems and modern preprocessors became standard.
  • On deployment, I relied on shell scripts - state of the art at the time for small teams, consistent with the practices of the 2008-2014 decade, before CI/CD pipelines generalized.
The lasting lessons this project brought me
  1. Multi-tenancy is a value multiplier: I saw that 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 I added, the higher the risk of CSS/test/security debt became whenever I was not measuring quality continuously.
  3. Operational documentation: I take away that a wiki with URLs, commands and 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