
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.
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.
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
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.
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.
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
- 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
- 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
- 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)
- 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.
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
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.
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
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
- 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
- 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
- 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
- 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
- Operational documentation (wiki with URLs, commands, crontabs) is just as critical as architectural documentation for a project's long-term survival
Architecture & Diagrams
Related journey
Professional experience linked to this achievement
Skills applied
Technical and soft skills applied
Hard Skills
Full-Stack Development
Led 108K LOC codebase across 3 interconnected apps with 1,506 commits over 4+ years
System Architecture & Design
Designed multi-tenant SaaS architecture serving 400+ branded reseller sites with domain-based detection
Database Fundamentals
Managed 67 database entities with MySQL and Doctrine ORM across multi-tenant architecture
REST API Design
Built REST APIs on Symfony 2.4 (FOSRestBundle, JMSSerializer, WSSE) for cross-application synchronization
DevOps & CI/CD
Led SVN to GitHub migration in 2016, OVH dedicated infrastructure, pre-CI/CD manual deployments
Soft Skills
Leadership & Team Management
Led development as primary contributor (64.6% of commits) across full-stack SaaS platform
Adaptability & Learning Agility
Mastered Solr/ElasticSearch search engines, B2B marketplace operations, and 520K+ product catalog with 7 languages and 32 currencies
Problem Solving & Critical Thinking
Integrated heterogeneous supplier formats, multilingual search across 7 languages, massive catalog optimization
Image gallery
Project screenshots and visuals





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