Lessons learnt running a custom e-commerce for 3 years
The adventure dansmaculotte.com is now over. It's sad because we used to sell good products to improve the way people live with their periods. It's time for lessons.
We built our own e-commerce
Dans Ma Culotte started powered by Prestashop. I've been hired to help them to build a custom platform as a replacement.
So it's been decided to build the website from scratch, involving 3 tiers:
- A frontend server that would run nuxtjs and rely on SSR to provide a good user experience without sacrificing SEO.
- A backend in PHP Laravel, has it provides a lot of tooling to build a full featured backend
- A logistics back office also built in PHP Laravel
The key expectations were:
- More flexibility: some expected features was not provided by plugins, so the Prestashop engine was directly modified. That needs a good knowledge of the CMS and complicates its updates. There also was a need to handle specific catalogs and invoicing processes per category of customers (B2C, B2B),
- Better level of performance: the initial website was slow.
- Being able to integrate with an external shipper
To do so, the team had to grow to 3 developers and a product owner first, to reach the size of 7 people later.
In march 2020, the new site was live and we were able to take orders.
Then along the years, competition got more intense, margins decreased and we faced internal difficulties with lay offs. In the end of January 2023, the e-shop has been shut down.
Should you do the same?
Regarding our story, it's hard to say. You should consider:
- business potential growth
- if your e-shop can provide a very specific user experience
- if you need features that no off the shelf e-commerce engine can provide
Building an e-commerce site from scratch is a hard work and you need a tech team to go faster. You must have plans to outgrow the competition, and to use your tech team to make something differentiating. Using a whole team to build a platform you can have for almost free, without having to pay a developer fulltime, is waste.
In the long run, all features that are provided with plugins in popular e-commerce platforms have also to be built from scratch.
Regarding performances, it was globally OK except for the last sales period. The objective of scalability was not meet (also, not measured) though we did not suffer from it.
Deciding to build your own e-commerce engine is a tough business decision that I won't recommend in most of the cases.
What technologies should we use?
Using a SPA framework with SSR like Nuxtjs is trendy. These frameworks promise to provide great user and developer experience without sacrificing SEO.
That's not that simple and SEO remained an unsolved issue.
With the rollout of Core Web Vitals, these frameworks are penalized by the amount of javascript that the browser has to load. I tried lazy hydration, but faced other issues without seeing improvement.
On the second hand the Laravel backend did not offer a great level of performance, which I kind of mitigate by using Varnish cache.
SEO is vital. Every place gained on the search engine result page means less to spend on ads. A good Lighthouse score can give you a boost on SERP, but other parameters are very important though (content, crawlability, backlink, etc.)
Finally, be mobile first. If you are an Android user, buy an iPhone. Our conversion rate was better on mobile device than on desktop, which is incredible for an old developer like me!
My advice: back to the basics, prefer multiple page applications, like Wordpress and Woocommerce. Look at lighthouse score for woocommerce sites: they are very good and simple to achieve. I was evolving the site to make Laravel serve the HTML, but did not had time to make it live.
A shiny website is not enough
We should have used an existing engine, be it Prestashop, Woocommerce or even Shopify. It delays the need of an internal development team. The custom features, like having a catalog per user group, were perhaps not mandatory (globally, B2B users did not order on the eshop).
However, if it could have been better, the website was not catastrophic. Even if our search engine ranking was bad on some product categories (menstrual panties), others like washable pads remained in the top results. Hosting cost were not so high (about 1000 € monthly).
But the competition, acquisition costs, the increasing price of fabrics and some bad business choices made us quit.
Working forthis ecommerce has been a great experience, I learnt a lot and I'm ready for the next project.