I have seen many projects come and go. Some have been astounding successes, others... well, let's just say they've left a bit of bitterness. Today I want to share with you the experience of a project that, unfortunately, did not achieve the hoped-for results.

The Context: An Ambitious E-commerce

It was an established business, with over six thousand products and the desire to create a unique e-commerce platform. The goal was clear: a modern, customized website that took care of the brand's image and also appealed to younger generations. The sector? Natural remedies, a growing market with a discerning and informed clientele. Corporate Image studies, logos, colors.

My Solution: A SaaS Approach with Drupal and React

I decided to propose the project as Software as a Service (SaaS), a model that allowed me to offer not only development but also ongoing consultancy. I leveraged my skills in Php, Node.js, and React.js, technologies I had been working with for some time, to create a reactive and high-performance structure. I even personally uploaded all the products, taking care of translations and presentations.

The Mistakes (and Lessons) Not to Repeat

Here’s where things started to get complicated:

  • The Transfer Clause: I included in the contract a clause that allowed the client to transfer the project to their own server after two years. The clause aimed to protect the client's investment. The transfer was, however, contractually bound to a cost. A mistake, in hindsight. This created an expectation which then turned into a demand when the client decided to close the e-commerce and requested a copy of the site.
  • The Unnecessary Dispute: The client did not want to pay the amount due for the transfer, triggering a dispute that I decided to end by releasing the code. The reason is that the client operates abroad and these disputes overseas are complex and quite risky. A compromise, certainly, but one that left me with a lot of frustration.
  • The Temptation of Offering a "Guarantee" to the Client: I gave in to the temptation to offer an additional guarantee that turned out to be a boomerang. Releasing the source code is never a good idea, especially in complex custom projects.
  • The Lack of Clarity in Negotiation: You should never be too “friendly” with clients, especially when it comes to defining costs and responsibilities. A penalty for early termination of the contract is essential, as is the clause that prohibits the release of the source code.

The Reality of Costs and Expectations

A project of this kind, with six thousand products in four languages and a custom architecture, can easily range between 40,000 and 70,000 euros. A cost that many clients are not prepared to face, especially if they do not have a clear understanding of the added value of a customized e-commerce.

The Paradox of Free Platforms

It’s easy to be tempted by free or seemingly free platforms, but the result is often disappointing. I have seen websites built with these solutions that look like they came from a bygone era, unappealing and unprofessional. Although all this is visible in the results in terms of ROI on investment, the client is confused about the real costs of information technologies. In this “muddle,” providers of free (in appearance) platforms make huge revenues by operating on a large scale. 

Final Advice for Freelance Developers

  • Be Clear and Direct: Don’t get caught up by clients. Better to be clear and precise
  • Solid Contracts: Avoid clauses that can backfire on you.
  • Don't Give in to Temptation: Never release the source code.
  • Assess Expectations: If a client is not prepared to face the real costs of a custom project, better to walk away.

Conclusion: Disappointments and Professional Growth

This suspended project has been a bitter experience but also a valuable lesson. It taught me the importance of being clear, direct, and not giving in to temptations that can compromise your professionalism. And, above all, it confirmed that success in the world of freelance development is certainly based on transparency, expertise, but most importantly, a good dose of realism.