My adventure with Sylius and Open Source - part 1

Mikołaj Król, Sep 22, 2017

Introduction

In this blog post, I will describe how I founded BitBag on top of Sylius and Open Source. This is more-less everything I talked about during the Sylius meetup in Madrid at The Cocktail. It's split into two parts. The first one concerns on my use-case as CTO & developer, the second one will be more about being a CEO at the company which does Open Source and great projects on top of Sylius.

Sit down, relax and enjoy the post ;)

$(whoami)

My name is Mikołaj Król and I am from Poland. Because my primary language is weird, you can just call me Nick. I am 21 years old and I'm the CEO & Co-founder of BitBag - the eCommerce development company which does its software based on Sylius platform and components. I am also the CTO of Anqan's - growing fashion company with an eCommerce store based obviously on Sylius software which I will talk about more later. The first thing to notice - Although I am a business person, I do love coding, especially in Open Source way. That's why much of our work is Open Sourced and I am planning to lead a growing "Friends Of Sylius" organization. This is something you will read more about in the second part of the blog post :)

Why Sylius? How it all started?

Ok, so first things first. My adventure with Sylius has started more than a year ago when I was working on my startup product in Symfony. I was obsessed with this framework so much, that one day my colleague told me that I should check Sylius. He said that although it is under hard development, I should love it. I thought, ok, why not, tried to install it, saw a 500 and said it's a mess. This was one of the biggest mistakes I ever made in my entire life.

Moron exception

3 months later, after my startup failed, my friend from Germany told me that he's starting his business in Poland. After years of experience as sales director in the fashion industry, he thought it would be nice to make some profit for himself with the contacts he made in the past. He became a retailer. By the time I already had a strong eCommerce development background and I was still a developer with passion. Knowing that, he asked me to become a CTO of his business and lead an eCommerce website development which will have the potential to grow in incoming years. For some reason I thought that even having that much experience with Symfony, it would be nice to try Magento 2. Don't ask me why.

How I transformed 480 hours of work with Magento 2 into 160 hours in Sylius?

This topic looks like a byte-click. But actually, it's not. So here we are. Back in a year before. Great, new technology, new opportunities, new skills. I guess each developer knows that feeling.

But my enthusiasm started to fall down when I first had to wait a minute to load the page.

Magento performance

I thought ok, maybe it needs that much performance. I Googled for the best solution for Magento performance issues, turned on all the cache systems and it was at least ok.

The first step of the project was the implementation of a template. This is the second time my enthusiasm got a little bit lower. As a Symfony developer, I was used to a templating engine which does not mix directly PHP with HTML. As you probably guess, I am not a close friend to pHTML. But I thought - hey, just because you are not used to it, doesn't mean is bad. So ok, I told my employee to work with it, we integrated the template and got to the next step.

Here Magento had its last chance to make me fall in love with it. After 6 weeks of work it was the time to implement the ERP integration. Here's when I needed to go deeper into the documentation and the core code itself and I got frustrated. For me, the module development process was way much overengineered, and by the time Magento didn't even have a deployment process. I wanted to die. Luckily I reminded myself about Sylius. It was my last resort. I remember that evening. I was sitting on my sofa, installing it and praying for it to run. And I made it. The feeling was like driving for the whole life with VW Beetle, one of the slowest and ugliest cars on the earth and jumping into Ferrari Italia. I knew I couldn't drive it every day, I knew wasn't practical, I knew it was expensive. But I loved it and I wanted it in my garage. That's how I felt jumping from Magento into Sylius.

Sylius love developers

Here's what I did - I called Patrick, my employee, showed him Sylius and asked him what he thinks about it. He shared my vision. That's when my enthusiasm has grown twice compared to the one I had with Magento. I called the project CEO, told him about it and asked him if we can switch because I will die if I'd need to work one day longer with Magento. He said "Do what you want. I trust you.", which you can understand as "Do what you want, but once you fail, I will cut off your balls.". Although from the business perspective it was stupid and risky, I trusted Sylius. After 160 hours of work we integrated the template and started rapidly working on ERP integration. Thank you Sylius for saving my sausage.

Why Sylius has worked for me?

Ok, but here's the key thing - I'm not saying Magento is a bad tool at all. Undoubtedly it has many advantages that proves its current success. There are many use-cases where Magento is a perfect tool to use, but for me, Sylius was just a better option. The other important thing to note is that I made the progress so fast mostly because I knew Symfony quite well before. Many of hours I spent while working with Magento were consumed by learning this technology.

But here's the exact answer for "why" question - I needed something for modern eCommerce development that can grow with the business. I didn't want my platform to be packed with average quality plugins and transform it into B2B in one week. I wanted to start with the MVP and develop it in the future for my needs. In the world of SaaS, PaaS and microservices, I wanted my platform to flexible rather than plug'n playable. I also knew that having a good code architecture I can control matters in a long term and is hard to achieve with other platforms. With Sylius it was possible to write the business plan for incoming months without being afraid of some third part software breaking it or what's even worse - causing the regression in the whole process. This is the case I faced with more than once while working with popular eCommerce software in the past.

Conclusion

Sylius is a great tool for modern eCommerce projects. Nowadays eCommerce has changed since the date other popular solutions were developed and its flexibility is its attitude to become the one we would love to work with in the future.

So what's the exact use-case?

Let's go back to the motor word for a second. Imagine you are an engineer and you're having a Fiat Panda and want to have a Maserati GranTurismo. Would you like to try transforming Fiat into the Maserati or get right tools, materials and build it from scratch in an enjoyable way? Trying to change Panda into a sport car wouldn't probably end the way you expect it, unless you expect it to fail.

But why would you like to have a Maserati? Maybe you're ok with your small practical car, and hey, there's nothing wrong with it. See the point?

So here's the key thing:

Sylius is not a platform. It's a framework.

It will provide you the right tools to build your Maserati starting from the prototype. It will probably take some time, but at the end you will end up with something you really wanted and you won't be surprised.

Summary

("rapid" != "quick") && "rapid" == "fast". From the developer's point of view, for me Sylius was the best option and now I can sleep being calm and ready for my business to grow. From the business perspective, giving so much trust to Sylius was risky, but it was worth it. I'm now building two brands on top of this technology and I'm sure this was the right choice my employees, clients and I enjoy now.

ShippingExportPlugin, Jul 17, 2017 My adventure with Sylius, part 2, Sep 24, 2017