What is this article about?
As both a father and an entrepeneur, I couldn't help but notice the similarities between building a company and raising a child. Both will demand time, love, attention, money, and fill you with pride and accomplishment when they give their first unattended steps. It will also break your heart to see them fall or fail.
In this three-part series, I'll be sharing my experiences building a tech start-up, exploring the challenges and successes I encountered along the way, and reflecting on the lessons I learned about entrepreneurship and life
In this first article, I'll talk about the idea and how the partnership started (or how it shouldn't have started) and the first steps. If you're looking to start your own tech business, consider reading this.
The idea
It was early 2020. WHO had recently officially announced COVID-19 to be a global pandemic. Everyone was anxious, many were isolated in their homes, and no one knew what to do. In this context I met my ex-associate, who shared with me a noble idea.
People were going to be locked in their homes. Some unable to work. At the same time, people would be buying more stuff from the internet, since they couldn't go out much. We reasoned that we could help a lot of people by providing them a way to quickly and easily set up an online store to sell stuff they could make at home. Artisanal candles, decorative art, you name it.
We knew services like this already existed, but we figured it wasn't simple enough for the average person to just get in and do it. It needed to be simpler in order to be more inclusive. It would help people rise above the financial hardships caused by the pandemic. It would help them flit.
Thus Flitcommerce was born. A multi-tenant platform for e-commerce for the underdogs.
The offer
My ex-associate invited me to build this idea with him. We briefly discussed shares and responsibilities: I would get 20% of the company, and when it started making money, I'd get the position of CTO and be paid accordingly. I was already on board because I believed this was something the world needed.
The contract
We signed one contract where he hired me to build the app. Since Flit wasn't making any money yet, he placed a small symbolic value on this contract. Later, he explained, when the company began making money, he would properly hire me as CTO, and we would sign a new contract. At that point I had a full-time well-paying job and was going to do that as a side project, so I signed.
Stock Option
The other contract we signed was a stock option with cliff and vesting clauses. A stock option is a contract between two parties that gives the buyer (me) the right to buy or sell underlying stocks at a predetermined price and within a specified time period.
Cliff
Cliff is the clause that defines the time interval in which the partner must maintain the contractual relationship with the company without effectively having the right to acquire part of the company. It is basically a time you have to work before vesting begins. The contract said I had to work for one year.
Vesting
A vesting clause regulates the acquisition of a certain percentage of the company over time and subject to the provision of a service, defining timeframes for the third party (me) to gradually acquire the right to purchase the combined percentage. My contract said I could buy 5% every year after cliff.
That means I could gradually buy my 20% in shares, at a fixed price, 5% a year, after an initial period of one year without any shares, so it would take me 5 years to complete this process. These are useful clauses to prevent people from joining a company, contributing almost nothing, and then leaving with a significant portion of the shares, but it was a long-term commitment.
You see, I understand these terms now. But I didn't really back then. In my head, the word "buy" didn't compute properly in how I understood this offer. I thought that by simply working in the app for five years I would end up owning 20% of the company, as "payment" for not being paid. Bad mistake. And it gets worse.
What does "owning shares" actually mean?
Since it was my first dive into all this business terminology, I wasn't really sure what "owning shares" actually meant. A common (and naïve) way of thinking about it (and sadly, the way I understood it at the time) is: "if I have 20% of the shares, then I am entitled to 20% of the profits (or losses)". I thought: "we will calculate our profits each month, and whatever the company made after we discounted costs, I would have 20% of that, be it positive or negative". Turns out it can mean lots of things, and this is not what it meant.
What it did mean, and I only "discovered" it much later, is that in the occasion of some company buying out Flitcommerce, I would get 20% of the sale price. So the only way of ever making money out of this ownership was either selling the company (which could never happen), or selling the shares to someone else (if they ever become valuable). In startups it is very rare that profits are shared, it is usually reinvested whole into the company to make it grow. This is something you MUST take into consideration: your company might start making money WAY before you do.
The division of labor
My ex-associate was not a programmer, he studied and worked with digital marketing, so he would play the roles of product owner, marketing manager, and sales representative (the biz side), while I was going to play the roles of architect, engineer, and developer (the tech side).
Initial planning
We knew that it had to be built fast. Each day we lingered was a day our future users were struggling. So we had to use existing open-source technologies as a starting point. I was in love with Laravel at the time, so I went after something based on it, and found Bagisto.
However, after playing with it for a couple of days, we concluded that their panel was everything we didn't want ours to be, their storefront didn't look quite right, and their checkout process wasn't really "familiar" to a brazillian audience (our target clients and our clients' target customers).
Bagisto has lots of options, but setting everything up can be hard and confusing (just like every other e-commerce service out there). Flitcommerce had to be SIMPLE, we wanted to rely on effective convenctions and predetermined setups, that could be modified if needed, but worked well out of the box.
We would have to build our own panel, based on a Vue template my ex-partner chose (can't remember the name, though), and then build a custom interfacing layer in the API, between this panel and Bagisto, where all our custom logic would be handled. This is what it looked like in the end:
For the storefront we chose to build a NextJS app (for SEO and other reasons) based on Lezada.
We also needed a custom checkout experience tailored to brazillians. We decided to make this a separate React app, to keep the whole solution headless (it was useful later).
Finally, Bagisto also didn't support multi-tenancy out of the box, so we had to deal with that. They have a multi-tenancy feature you could buy, but it was quite expensive, so we decided to build our own solution.
The attentive reader should already have noticed the problem. Each piece of system was built using a different technology. PHP, Laravel, Bagisto, Javascript, NextJS, Lezada, VueJS, ReactJS... this was already looking like a salad. I knew how to use them, so it wasn't really a problem to begin with, but it later became one when hiring people to help maintain it proved to be extremely difficult. If I could turn back time, I would choose one tech and stick to it. The attentive reader might also have noticed how I refer to the company as "Flitcommerce", but prints show the name "Flitshop". This will be important later.
Outro
Remember the comparison I made between building a company and raising a child? Well, this was like the pregnancy: this planning took almost 9 months to execute. But instead of the labor coming only in the end, it was labor from start to finish.
And this is where I'll leave it for now. The part 2 will come soon, and there I'll explain more about the technology, the challenges, the solutions, and the disagreements... and how Flitcommerce was beginning to take flight.
Top comments (2)
Thank you for sharing your experience and giving your valuable feedback on Bagisto. At Bagisto, we do understand that we cannot fulfill everyone needs and we did not make that also targeting a specific region. Bagisto is for everyone and is made by people around the world. Here are the few updates I would like to give to you:
The reason bagisto is opensource so anyone can make use of it and customise as per needs. We always strive to present to our community what's best for them. We will taken not of your feedback and will try to improvise more on the same
Please do not take this article as an attack on your tech.
The problems we had with Bagisto were not because it was a bad technology, you guys did great. Our problem was because, as you said, Bagisto is for everyone, it is highly customizable, but we needed it to be specifically for brazillian entrepeneurs with little to none tech and e-commerce experience.
Bagisto helped a lot, because it's modular features allowed us to easily implement an API to interface with it's inner logic.
Also, remember this was happening at early 2020, I have no doubt you guys improved it a lot since then.