OpenSource and SaaS: Our challenging journey 2019

Monday Dec 30

If you have subscribed to a newsletter of another startup you have very likely received an email with a summary about the year 2019. It was all exciting and awesome. New features have been developed, people have been hired and sales have gone up. But honestly this is boring. There are so many challenges you have to face as a new company and in this article I would like to talk about ours.

It starts with Squidex being Open Source. Don't take me wrong, I love Open Source projects and I think it was a good decision. There is no better way to showcase the quality of your product and to gain trust and it is wonderful when other people share your vision and contribute to the project. But there are also major challenges, from the technical and business perspective.

Open Source and SaaS

Let's talk about coding first. Software as a Service (SaaS) is an extremely successful business model for many small and big startups and companies. The idea is that you buy a license to use the software which is usually operated and hosted by the same company that also builds it. We use this model for the Squidex Cloud and so do most of our competitors. I think one important factor why this model is so successful is that your source code can be “crap”. When you start a project you choose a cloud provider and then you start hacking and you focus on getting things done just to acquire your first customers. As long as you can generate value for your customers, your solution works and the performance is not too bad, nobody cares about test coverage, code quality, performance, maintainability and the overall software architecture. It is more important that the user interface and user experience is good and that everything looks nice, modern and shiny because a good user interface communicates that you care about the product and your users will assume that when the UI is great everything else is state of the art as well. But your users cannot get an insight about the quality and they have to trust you. If your startup is funded or if you are profitable you can integrate third party cloud services into your product and with relatively low effort you can even provide more value to your customer. It does not matter if your setup with all these external services is very complicated now, because it is very likely that you will never deploy it again.

In the Open Source world this is different. Everybody can read your code and you have to focus on code quality from day one. Your software is also installed in different environments like Linux, Windows, MacOS, Docker and Kubernetes. So it must be easy to install. Furthermore you don’t want your users to install dozens of other services. Therefore we ended up building a custom full text solution based on Lucene, instead of just using ElasticSearch.

But the combination of Open Source and SaaS also has advantages, because you are running an instance of your Software in production as well and you can feel all the pain your users might have. This is called dogfooding and in my opinion it is essential for the success of a (software) product. Furthermore the Open Source principle has helped us to establish cooperation with big companies that use Squidex for their internal products. Some of them also pay and support as to integrate new features into Squidex. An example is the workflow system that has been integrated into Squidex in 2019 and was built to help organizations with dozens of content editors to implement their processes and business rules.

But the combination of Open Source and SaaS also has business challenges, especially if you want to bootstrap your company as we do:

The free alternative?

If you want to use Squidex you have two options. You can install it on your own or you can use our cloud service, where you pay as per your subscription. The product is similar, but you have a few more options than when you use the Open Source version. So why people decide to use the Open Source version instead of the cloud?

  1. It is free, isn’t it? When you compare the pricing for Squidex you see 100€ per month on one side and a free alternative on the other side. The big problem is: Open Source is not free. You have to pay for your servers, but they are very cheap today, especially if you use a solution like vultr, where you can get a VM for Squidex for just 20€ a month. But you also have to pay for developer hours. If you have your own team inhouse you should have an internal number to decide what one hour of development time is worth. 50€ might be a good value in Germany and countries with similar living costs. So your developer can only invest 2 hours a month on average to setup and maintain Squidex. This includes reading the setup instructions, the first installations, setting up a backup structure, installing new versions, troubleshooting and so on. And in this time your developer is not able to do other things. This means that when you can charge your customer because your project queue is full you loose money.
  2. The cloud has downtimes! Yes, that’s correct. We had a few downtimes this year. We try to be very transparent about them and usually document them in our support forum. But I think the list is not complete and I cannot provide detailed statistics. From what I can remember and from the emails I have checked one of our downtime was caused by Google Cloud and two other downtimes were caused by issues with Cloudflare. Two services that are known to be very stable. None of our downtimes which were caused by us were longer than 1 hour and in totally they were not longer than 5 hours. We also have done a lot to keep them as short as possible including health checks, uptime monitoring, performance analysis, internal sms, email and slack alerts and a new public status page. If you install Squidex by your own you need to be better and I think it will not be that easy. In my opinion, the big difference is that you have the feeling of being in control of everything when you host a software on your own. When something goes wrong, you can do something or you can tell somebody to do something. This person gets paid for that, so he or she should hurry. We understand that, because when we had the issues with cloudflare and Google Cloud our hands were tied as well. The only thing we could do was to send out Emails to our customers and to refresh the cloudflare status page every 5 seconds. But this does not mean that we could do a better job than Google or Cloudflare.
  3. The team is so small. Our core team is very small right now and this is a challenge. Of course we cannot provide support 24/7 and even though we have downtime alerts we cannot handle cases as fast as we would like. We have to sleep from time to time. A bigger team means better service and more clients, and more clients give us the opportunity to grow our team. A dependency cycle that is hard to solve without external money.

What can we do to make the cloud version more attractive? Our plan is that we will think about premium features that are only available for the cloud version and for a paid on-premise solutions. We will use features that are easy to implement on top of Squidex, and do not need tight coupling with other modules, so that we can keep the differences to the cloud version as small as possible. An example could be a global search that will use ElasticSearch to search for content across all apps and schemas. Furthermore we think about looking for investors. So far we tried to bootstrap our company and we like the idea to be free from the pressure that is coming from external shareholders, but we might give the idea to have a seed investment a chance in 2020.

There is an additional challenge we would like to talk about:

Privacy and Data Ownership

In 2018 the General Data Protection Regulation (GDPR) has been introduced in Europe. More and more companies are very sensitive about data privacy. Especially bigger organizations take it very seriously. They also store very sensitive and business critical information in Squidex and want to have full control of their data. Squidex is like a database with additional services and a user interface on top of it and many companies would never use a SaaS model for their database. It is all about security and performance and you want to have your database as close to your servers as possible. If you use a SQL database server you often do not want to have all the hustle around maintenance and configuration and therefore many developers choose a cloud offer from Amazon or Google or Microsoft or something like MongoDB Atlas.

From the product side this will be one of our main challenges and we will see how we can provide you a solution that gives you more control over the system, hosting and data where we will take care about the boring side such as maintenance and availability for our customers.

Besides all these challenges we are very proud of what we have achieved in 2019. I think from the product side we can compete with many big competitors already and we will work hard to be even better. We have also established a software architecture that is stable enough and easy to change and extend so that we can build new features very efficiently. Announcing new beta versions is a sign that you have failed and not a success in my opinion.